Voice infrastructure behind a single API key.
Text to speech, transcription, speech recognition and voice cloning — production endpoints with usage tracking, request logs and a playground your engineers can try before they write a line of code.
Create an account, generate a key, and make your first call in a minute.
curl -X POST https://api.nexacalling.com/api/v1/text-to-speech \
-H "Authorization: Bearer $VOICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello from the Voice API Platform.","voice_id":"voice_xxxxx"}' \
--output speech.mp34
Voice endpoints
1
Bearer token
25 MB
Audio uploads
100%
Requests logged
From sign-up to first request
No procurement call to get started, and no SDK to install. The whole path is three steps.
Create an account
An organization is provisioned for you. Every key, voice, log and invoice belongs to it.
Generate an API key
One click. The secret is shown once and stored as a prefix plus a hash — never in plaintext.
Call the API
One bearer token across every endpoint, no SDK required. The playground shows the exact request.
# 1. List the voices available to you
curl https://api.nexacalling.com/api/v1/voices -H "Authorization: Bearer $VOICE_API_KEY"
# 2. Synthesize speech with one of them
curl -X POST https://api.nexacalling.com/api/v1/text-to-speech \
-H "Authorization: Bearer $VOICE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"My first request.","voice_id":"voice_xxxxx"}' \
--output speech.mp3Built to be debugged
The parts of an API that decide whether your team ships on Friday: predictable errors, traceable requests, keys you can rotate without a migration.
- A request ID on every response
- Every call returns X-Request-ID and every error repeats it in the body. It names one row in your log — quote it and support can find the call.
- One error envelope
- Same shape at 400, 429 and 502. Code, message, request ID. Provider failures are normalized before they reach you, never forwarded raw.
- Keys you can rotate
- Name a key per environment, see when it was last used, revoke it the moment it leaks. Revocation takes effect on the next request.
- Isolation by construction
- Every query is scoped to your organization. Another tenant's voice ID returns 404 — not 403, which would confirm it exists.
Every error, every status code
{
"error": {
"code": "INVALID_REQUEST",
"message": "text must not be empty.",
"request_id": "req_k3f9x2mQ7Lp0"
}
}Conventional status codes: 400 invalid, 401 bad key, 403 suspended, 404 not found, 413 too large, 429 rate limited, 502 provider failure.
Usage you can predict
One unit is one character of synthesized speech, one second of transcribed audio, or one voice clone. Failed requests are logged but never billed.
Ship voice this week.
Generate a key, run the sample, and put the request straight into your codebase. Volume pricing and procurement support are available for teams deploying at scale.