Create a transcription
Transcribe a base64-encoded audio clip to text. Returns the transcript along with the id of the capture it created, which stays retrievable through GET /v1/captures. Send an Idempotency-Key header to make a retried request safe. Requires the `voice:generate` scope.
Transcribe a base64-encoded audio clip to text. Returns the transcript along with the id of the capture it created, which stays retrievable through GET /v1/captures. Send an Idempotency-Key header to make a retried request safe.
Requires the voice:generate scope.
A VoiceLabs API key, sent in the x-api-key header. Keys begin with vl_sandbox_. This is the simplest way to authenticate and is what most callers should use.
Create one in the developer console at https://voicelabs.now/connections, on the API keys tab, choosing the scopes it carries. A key does exactly what its scopes allow: one without voice:generate is answered 403 insufficient_scope on the generation operations and cannot spend the account's allowance. The secret is shown once, at creation; revoking a key takes effect on its very next request.
In: header
Header Parameters
An optional client-generated key that makes a retry safe. Replaying the same key with the same body returns the ORIGINAL response byte-for-byte instead of doing the work a second time; replaying it with a different body is refused with idempotency_key_reused.
length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X POST "https://example.com/v1/transcriptions" \ -H "Content-Type: application/json" \ -d '{ "audio": "string" }'{ "id": "string", "text": "string", "language": "string", "duration_ms": 0}Create speech (OpenAI-compatible) POST
The OpenAI `POST /v1/audio/speech` contract, served by VoiceLabs. Point any OpenAI SDK at `https://app.voicelabs.now/v1` as its base URL and pass a VoiceLabs API key as the API key — no other change is needed. Unlike `POST /v1/speech` this endpoint is SYNCHRONOUS: it holds the response open until the audio is ready and returns the bytes, because that is the contract an OpenAI client is written against. Every parameter VoiceLabs cannot honour is refused with a 400 naming it rather than accepted and ignored. Errors on this endpoint use OpenAI's `{"error": {...}}` envelope instead of the RFC 9457 problem document the rest of /v1 returns, so an OpenAI SDK raises a typed exception with a readable message; the `code` member still carries this API's own stable error token. Requires the `voice:generate` scope.
List voices GET
List the voice profiles on this account — both cloned voices and built-in presets — with language, default engine, and usage counts. A new account has none until a voice is created. Requires the `voice:read` scope.