Transcribe
Routes the request to the best STT provider for your `(language, region, optimizeFor)` intent, with automatic failover to runner-up providers. Body is binary audio. Routing intent goes in the `x-speko-intent` header (JSON).
Authorization
bearerAuth In: header
Header Parameters
JSON-encoded RoutingIntent. Example: {"language":"en-US","region":"global"}.
Optional JSON-encoded PipelineConstraints. Each allowedProviders entry is either "<vendor>" (any model from that vendor) or "<vendor>:<model>" (a specific model). Example: {"allowedProviders":{"stt":["deepgram:nova-3"]}}.
Optional JSON-encoded STT options. Example: {"keywords":["Speko","Ava Martinez"]}.
Audio MIME type, e.g. audio/wav, audio/mpeg, audio/pcm;rate=16000.
Binary audio. WAV, MP3, or raw PCM accepted.
TypeScript Definitions
Use the request body type in TypeScript.
binaryResponse Body
text/event-stream
application/json
application/json
application/json
"string"{
"error": "Audio body is empty.",
"code": "INVALID_AUDIO"
}{
"error": "Unauthorized",
"code": "UNAUTHORIZED"
}{
"error": "All providers failed",
"code": "TRANSCRIBE_FAILED"
}Create phone session
POST /v1/sessions/phone — place an outbound PSTN call backed by a Speko voice session.
Synthesize
Routes the request to the best TTS provider for your intent, with automatic failover. Returns binary audio. The `Content-Type` header (mirrored in `X-Speko-Audio-Format`) tells you the format.