Reference
API reference
Everything on /v1/. Key management is session-only on purpose — an API key can never mint another API key, so a leaked key cannot issue its own replacement.
| Endpoint | Auth | Notes |
|---|---|---|
GET /healthz | None | Liveness. Does not touch the database. |
GET /v1/auth/csrf | None | Sets the csrftoken cookie and returns the token. |
POST /v1/auth/register | None | User + organization + owner membership + wallet. Signs you in. |
POST /v1/auth/login | None | Same message for a wrong email and a wrong password. |
POST /v1/auth/logout | Session | Ends the session. 204. |
GET /v1/auth/me | Session | The signed-in user and every org they belong to, with roles. |
GET /v1/keys | Session | Secrets are never included. ?organization= to scope, ?include_revoked=true. |
POST /v1/keys | Session | Returns the plaintext exactly once. |
GET /v1/keys/{id} | Session | One key. Still no secret. |
POST /v1/keys/{id}/revoke | Session | Irreversible, effective on the next request. |
GET /v1/models | API key | Servable versions with aliases. Filter by modality, tier, channel, family. |
GET /v1/models/{ref}/card | API key | Accepts an alias or an exact version. Retired versions answer 410. |
GET /v1/voices | API key | Public library plus your organization's own voices. |
GET /v1/voices/{voice_id} | API key | One voice by slug. |
POST /v1/tts | API key | Returns audio bytes, not JSON. |
POST /v1/audio/speech | API key | The OpenAI-compatible request shape. Same gateway, same billing. |
GET /v1/usage | API key | Totals, by_day and by_model, plus the wallet. ?days= up to 365. |
GET /v1/usage/requests | API key | The request log. Filter by meter, cache_hit, billable. |
Headers on every synthesis response
| X-Vocalix-Request-Id | Correlates with the request log |
| X-Vocalix-Model-Version | The resolved version, even when you sent an alias |
| X-Vocalix-Chars-Billed | Characters counted after normalisation |
| X-Vocalix-Ttfb-Ms | Time to first byte |
| X-Vocalix-Cache | hit or miss |
| Deprecation / Sunset | Present only on a deprecated version |
✓ money is integer micros — $1.00 = 1 000 000✓ errors are RFC 7807 problem+json✓ pagination is limit / offset