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.
The Sandbox specification covers 53 operations. WhatsApp operations are Production only and are not simulated. 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 |
| Find previous uploads for a sender | Production only |
| Upload a WhatsApp attachment | Production only |
| Read WhatsApp media status | Production only |
| Read messages in a WhatsApp conversation | Production only |
| Read an owned template and its current status | Production only |
| List approved templates for a number | Production only |
| Read recipient permission state | Production only |
| Record actual recipient consent or an opt-out | Production only |
| List connected sending numbers | Production only |
| List conversations | Production only |
| List message activity | Production only |
| Send a WhatsApp message | Production only |
| Read one message | Production only |
| Read usage and fee totals | Production only |
| Get a message-specific fee quote | Production only |
| Download an owned message attachment | Production only |
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.