Import extensions in bulk

Creates up to 200 extensions in one call, always on your own account. Run validate first — it is the only way to see row conflicts and license headroom before anything is written. commit is all-or-nothing on licensing, refused up front when seats fall short, but per-row on writes, so a partial failure still returns 200 with a result for each row. Every extension it creates gets toll_allow='domestic' (international dialing off), user_record='all', a 30-second ring timeout, a voicemail box and your account's outbound caller ID.

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

validate re-runs every row rule, checks conflicts and reports license headroom without writing anything; commit creates the rows that are ready. Any other value is 400.

string
required

1–200 row objects of {sheetRow?, extension, firstName, lastName, voicemailEmail, missedCallEmail}: the extension must be digits and unique within the file, firstName is required, a missing lastName is only a warning, and invalid email lists are errors. Numbers already used by an extension or a shared voicemail box are marked skip_exists rather than failing the import, and non-string values are read as empty strings.

Responses
200

The validation preview, or the per-row outcome of the commit — a row with voicemailFailed: true means the extension exists but its mailbox does not.

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