Create an extension

Creates an extension and, optionally, its voicemail box, device lines and follow-me setup in the same call; a failure in the voicemail step is logged but does not fail the request. The SIP password is always generated for you, and number_alias is always stored as null, whatever you send. Numbers in the reserved 10000–19999 range, and numbers already used by an extension or a shared voicemail box, are refused with 400. Success is 200, not 201; to create many extensions at once, use POST /api/v1/extensions/import instead.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
required

The extension number. It must not fall in the reserved 10000–19999 range (400, code reserved_extension_band), and must not already be in use by an extension or a shared voicemail box.

string
required

Caller-ID name shown on internal calls. Required and non-empty.

string
required

Caller-ID number presented on outbound calls. Required and non-empty.

string | null

Caller-ID name presented on outbound calls.

string

The account to create the extension on; defaults to your own, and any other value is rejected with 403.

string

The domain name the extension belongs to; defaults to your account's.

string | null

Free-text description.

string | null

Given name used in the dial-by-name directory.

string | null

Family name used in the dial-by-name directory.

boolean

Whether the extension appears in the dial-by-name directory.

boolean

Whether the extension's number is shown in the directory.

string | null

Calling permissions: null allows outbound and international calls, domestic allows outbound only, local blocks outbound calls. Requires an API key with the Admin role; it is ignored otherwise.

number | null

Seconds the extension rings before the call stops ringing.

string | null

Call recording mode, such as all. Requires an API key with the Admin role.

string | null

Hold music source used when this extension puts a caller on hold.

string | null

Account the message-waiting indicator follows.

string | null

Missed-call notifier, such as email. When you set it, missed_call_data is required or the create fails.

string | null

Where the missed-call notice goes — an email address when missed_call_app is email.

string

Extension type; stored as ext_type.

voicemail
object

Voicemail setup: {voicemail_action: 'create' | 'none', voicemail_id, voicemail_mail_to, voicemail_file, voicemail_local_after_email, …}. Only create provisions a mailbox, and a failure here is logged rather than failing the request.

string

Device and line assignments to provision alongside the extension. Requires an API key with the Admin role.

follow_me
object

Follow-me setup — {follow_me_enabled, destinations…} — applied after the extension itself is written.

string

Not settable through this API; ignored if sent.

string

Not settable through this API; ignored if sent.

string

Not settable through this API; ignored if sent — the SIP password is always generated for you on create.

string

Not settable through this API; ignored if sent.

Responses

401

Missing or invalid API key.

Language
Credentials
Bearer
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json