Ask for SIP trunking to be enabled
Starts a request a human reviews. Refused 409 sip_trunking_request_pending while one is already waiting, and 409 sip_trunking_already_enabled if the organization can already create trunks. A rejected request may be resubmitted — read the reason from GET /v1/sip-trunks/entitlement first, since resubmitting unchanged wastes both sides.
Requires the admin scope. A key with less gets 403 insufficient_scope.
Authorization: Bearer tone_live_… or tone_test_…. The prefix IS the environment: a test key reaches only the sandbox, and no request field bridges the two.
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/sip-trunks/access-request" \ -H "Content-Type: application/json" \ -d '{ "message": "We have an Airtel SIP trunk terminating at our Mumbai office PBX and want to bring 4 DIDs across." }'{ "data": { "enabled": false, "organizationVerified": true, "request": { "id": "c0a8012e-1f2b-4c3d-9e4f-5a6b7c8d9e0f", "rejectionReason": "Carrier is outside India — see the cross-border note in the docs.", "requestedAt": "2026-09-15T09:30:00.000Z", "reviewedAt": null, "status": "pending" } }}Delete a trunk
Refused with 409 sip_trunk_has_numbers while imported numbers still ride it — release them first. Live calls on the trunk are hung up.
Issue a new digest password — shown once
🔴 The previous password stops working within seconds. Update your PBX first if it registers, then rotate. The new password appears in this response only.