API Reference
The VoiceLabs /v1 REST API, operation by operation — generated from the published OpenAPI 3.1 document, with a request builder on every page.
Every operation of the VoiceLabs public API, generated from the same OpenAPI 3.1 document the server publishes at app.voicelabs.now/openapi.json — which is itself generated from the schemas the handlers validate with. Each page carries the parameters, the request and response schemas, the statuses it can return, and a builder that sends a real request.
New to the API? Start at the Developer API overview: base URL, x-api-key
authentication, scopes, rate limits, and idempotency apply to every operation below.
Generation
Creating audio and text. Both operations require a key with the voice:generate scope.
- Create speech —
POST /v1/speech - Create a transcription —
POST /v1/transcriptions
Voices and history
Reading what is on the account. These need only voice:read, and never draw on the plan
allowance.
- List voices —
GET /v1/voices - Get a generation —
GET /v1/generations/{generationId} - Download generated audio —
GET /v1/audio/{generationId} - List captures —
GET /v1/captures
Errors are documented per code
Every error is an RFC 9457 problem document whose type URI resolves to a page for that exact
code at app.voicelabs.now/errors.
Developer API
The VoiceLabs /v1 REST API — API keys and scopes, text-to-speech and transcription endpoints, RFC 9457 errors, rate limits, idempotency, and the official @voicelabs/sdk TypeScript SDK.
Create speech POST
Generate speech from text in one of this account's voice profiles. Returns immediately with a generation id and status "generating" — poll GET /v1/generations/{id} to retrieve the audio URL once it completes. Send an Idempotency-Key header to make a retried request safe: the same key with the same body replays the original response instead of generating a second time. Requires the `voice:generate` scope.