Virtual numbers use a production API key (
sk_live_) and the
virtual_numbers:write / virtual_numbers:read scopes. Ask your Wave contact to
enable the feature for your account.Allocate a number to a user
POST /v1/virtual-numbers. Identify the end-user with your own id
(external_user_id) — the call is idempotent on it, so a retry returns the
same number rather than allocating a second one.
Request
Response — 201 Created (or 200 OK on an idempotent retry)
Update a user’s instructions
PUT /v1/virtual-numbers/:id/instructions — edited in place, no re-allocation.
cURL
List & look up
GET /v1/virtual-numbers — filter by external_user_id, page with limit
(≤100) and offset. GET /v1/virtual-numbers/:id returns one.
Release a number
DELETE /v1/virtual-numbers/:id returns the DID to the pool and frees the user to
be assigned a different one later.
Next steps
How voice works
The call lifecycle behind a virtual number.
Webhooks
Get notified when a virtual number is dialed.

