Skip to content
CloudVNO

Provision Phone Numbers

Buy and configure CloudVNO phone numbers via API.

Provision a Number

# Provision a local US number
number = client.incoming_phone_numbers.create(
    phone_number="+14155551234",  # From your search results
    friendly_name="SMS Support Line",
    sms_url="https://yourapp.com/sms-webhook",
    voice_url="https://yourapp.com/voice-webhook"
)

print(f"Provisioned: {number.phone_number}")
print(f"SID: {number.sid}")
const number = await client.incomingPhoneNumbers.create({
  phoneNumber: '+14155551234',
  friendlyName: 'Support Line',
  smsUrl: 'https://yourapp.com/sms-webhook',
  voiceUrl: 'https://yourapp.com/voice-webhook',
});
curl -X POST https://api.cloudvno.com/v1/incoming-phone-numbers \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d PhoneNumber="+14155551234" \
  -d SmsUrl="https://yourapp.com/sms-webhook"

List Your Numbers

numbers = client.incoming_phone_numbers.list()
for number in numbers:
    print(f"{number.phone_number} — {number.friendly_name}")

Update Number Configuration

number = client.incoming_phone_numbers("+14155551234").update(
    friendly_name="New Name",
    sms_url="https://yourapp.com/new-sms-webhook"
)

Release a Number

client.incoming_phone_numbers("+14155551234").delete()
print("Number released")

Releasing a number is immediate and irreversible. The number returns to the pool and may be provisioned by another customer.

Regulatory Compliance

Some countries require address verification before provisioning numbers. If a number requires an address:

  1. Submit your address in Dashboard → Settings → Addresses
  2. CloudVNO verifies the address (typically within 1 business day)
  3. Provision numbers in that country

Countries with regulatory requirements include Germany, France, Australia, and others. The API will return a regulatory_requirements error if documentation is needed.