Getting started
Sandbox & environments
Test API scenarios with Sandbox credentials before using your live account.
Choose your environment
| Environment | Base URL | Use |
|---|---|---|
| Production | https://api.illyvoip.com | Live account operations; charges and account changes can apply. |
| Sandbox | https://sandbox-api.illyvoip.com | Scenario-based testing. The portal labels this environment “No charges”. |
Credentials and requests
Select Sandbox in the portal and use your Sandbox API key in X-Api-Key. Keep it in a server environment variable such as ILLYVOIP_SANDBOX_API_KEY. Do not substitute your production key. Browser-bootstrap operations use the short-lived Bearer authentication defined in their contract.
All 53 main production method/path pairs are present in the sandbox specification. Reuse the documented method and path with the sandbox base URL, but consult its separate specification for exact sandbox request and response schemas. Simulated results do not prove live carrier behavior, delivery, billing or resource persistence.
Select a scenario
Choose a scenario in the portal playground, or send X-Illyvoip-Sandbox-Scenario from your own HTTP client. The supported values depend on the endpoint. The default is success; common alternatives are not-found, rate-limited, forbidden and service-unavailable.
curl "https://sandbox-api.illyvoip.com/api/v1/rates/countries" \
-H "X-Api-Key: ${ILLYVOIP_SANDBOX_API_KEY:?Set ILLYVOIP_SANDBOX_API_KEY}" \
-H "X-Illyvoip-Sandbox-Scenario: rate-limited"Scenarios by endpoint
Values below come from the sandbox specification reviewed on 9 October 2026. Select the endpoint first; its available scenarios may differ from the previous selection.
| Operation | Available scenarios |
|---|---|
| Send SMS | success, not-found, rate-limited, forbidden, service-unavailable, insufficient-credit, idempotency-conflict |
| Get SMS status | success, not-found, rate-limited, forbidden, service-unavailable, delivered, failed, queued |
| List STT languages | success, not-found, rate-limited, forbidden, service-unavailable |
| Transcribe audio | success, not-found, rate-limited, forbidden, service-unavailable, insufficient-credit, unavailable |
| List TTS languages | success, not-found, rate-limited, forbidden, service-unavailable |
| List TTS voices | success, not-found, rate-limited, forbidden, service-unavailable |
| Generate speech | success, not-found, rate-limited, forbidden, service-unavailable, insufficient-credit, unavailable |
| List contacts | success, not-found, rate-limited, forbidden, service-unavailable |
| Create or update contact | success, not-found, rate-limited, forbidden, service-unavailable |
| Get contact workspace metadata | success, not-found, rate-limited, forbidden, service-unavailable |
| List companies | success, not-found, rate-limited, forbidden, service-unavailable |
| Create or update company | success, not-found, rate-limited, forbidden, service-unavailable |
| Archive company | success, not-found, rate-limited, forbidden, service-unavailable |
| Delete contact | success, not-found, rate-limited, forbidden, service-unavailable |
| List calls | success, not-found, rate-limited, forbidden, service-unavailable |
| List active calls | success, not-found, rate-limited, forbidden, service-unavailable |
| Get Voice API status | success, not-found, rate-limited, forbidden, service-unavailable |
| Create call | success, not-found, rate-limited, forbidden, service-unavailable, insufficient-credit, idempotency-conflict |
| Execute action chain | success, not-found, rate-limited, forbidden, service-unavailable, insufficient-credit, idempotency-conflict |
| Answer inbound Voice API call | success, not-found, rate-limited, forbidden, service-unavailable |
| Play audio | success, not-found, rate-limited, forbidden, service-unavailable |
| Speak text | success, not-found, rate-limited, forbidden, service-unavailable, insufficient-credit, idempotency-conflict |
| Gather DTMF or speech | success, not-found, rate-limited, forbidden, service-unavailable, insufficient-credit, idempotency-conflict |
| Get call status | success, not-found, rate-limited, forbidden, service-unavailable, answered, busy, no-answer, completed, failed |
| Wait | success, not-found, rate-limited, forbidden, service-unavailable |
| Transfer call | success, not-found, rate-limited, forbidden, service-unavailable, failed |
| Get transfer status | success, not-found, rate-limited, forbidden, service-unavailable, failed |
| Cancel transfer | success, not-found, rate-limited, forbidden, service-unavailable |
| Hold call | success, not-found, rate-limited, forbidden, service-unavailable |
| Unhold call | success, not-found, rate-limited, forbidden, service-unavailable |
| Send DTMF | success, not-found, rate-limited, forbidden, service-unavailable |
| End call | success, not-found, rate-limited, forbidden, service-unavailable |
| Play or download recording | success, not-found, rate-limited, forbidden, service-unavailable, processing, unavailable |
| Look up phone number | success, not-found, rate-limited, forbidden, service-unavailable, unknown, unavailable |
| Live HLR lookup | success, not-found, rate-limited, forbidden, service-unavailable, unknown, ported, unavailable, insufficient-credit |
| List priced countries | success, not-found, rate-limited, forbidden, service-unavailable |
| Search rates by prefix | success, not-found, rate-limited, forbidden, service-unavailable |
| Quick quote | success, not-found, rate-limited, forbidden, service-unavailable |
| List SIP identities | success, not-found, rate-limited, forbidden, service-unavailable |
| Get SIP bootstrap data | success, not-found, rate-limited, forbidden, service-unavailable |
| Create browser token | success, not-found, rate-limited, forbidden, service-unavailable |
| Get browser bootstrap from token | success, not-found, rate-limited, forbidden, service-unavailable |
| List DID countries | success, not-found, rate-limited, forbidden, service-unavailable |
| List DID regions | success, not-found, rate-limited, forbidden, service-unavailable |
| Search DID numbers | success, not-found, rate-limited, forbidden, service-unavailable, unavailable |
| Get DID routing config | success, not-found, rate-limited, forbidden, service-unavailable |
| Save DID routing config | success, not-found, rate-limited, forbidden, service-unavailable |
| List DID orders | success, not-found, rate-limited, forbidden, service-unavailable, completed, pending-documents, rejected |
| Create DID order | success, not-found, rate-limited, forbidden, service-unavailable, unavailable, completed, pending-documents, rejected, quote-changed, insufficient-credit |
| Quote DID order | success, not-found, rate-limited, forbidden, service-unavailable, unavailable |
| Cancel DID number | success, not-found, rate-limited, forbidden, service-unavailable |
| Upload DID documents | success, not-found, rate-limited, forbidden, service-unavailable |
| Resubmit regulation | success, not-found, rate-limited, forbidden, service-unavailable |
Compatibility operations
The sandbox specification also lists the following five compatibility operations, beyond the 53 main reference operations. They are not evidence of production support and are not added to the production playground menu. Their exact schemas are available in the sandbox specification.
POST /api/v1/voice/calls— Create call (compatibility)POST /api/v1/voice/calls/hangup— End call (compatibility)POST /api/v1/voice/calls/dtmf— Send DTMF (compatibility)POST /api/v1/voice/calls/transfer— Transfer call (compatibility)POST /api/v1/voice/call-control/send-dtmf— Send DTMF
Separate environment specifications
Download Sandbox OpenAPI JSON · Download Production OpenAPI YAML
Moving to production
Change the base URL and credentials together, remove the sandbox scenario header, and review the live endpoint’s requirements. Re-check inputs and resource IDs; sandbox identifiers are not production identifiers. Confirm production behavior through your approved integration testing before enabling real customer activity.
The HTTP sandbox is separate from the Webphone SDK’s live browser-calling playground. Selecting an HTTP scenario is not proof that browser calls, webhook delivery or external carrier operations are simulated.