API reference
API v1RESTWebSocket

Speech to Text

POST audio, get a transcript with word-level timestamps. Stream live audio when you need partial results, and pay per character of output.

Preview The request and response shapes are confirmed; some fields and limits may change before general availability.

Endpoint

http
POST https://api.quickdial.ai/v1/stt

Send the file as multipart form data. WAV, MP3, M4A, FLAC and OGG are all accepted; anything ffmpeg can decode will generally work. Billing counts the characters of the returned transcript, not the length of the audio.

Request parameters

Proposed: not yet implemented Only the audio field is confirmed. language, timestamps and punctuate are proposed and may not be accepted by the API today.
FieldTypeDefaultDescription
audio file required Audio file, sent as multipart form data.
language string auto ISO code to force a language. Omit to auto-detect.
timestamps boolean true Include per-word start and end times in the response.
punctuate boolean true Restore punctuation and sentence casing.

Example

curl
curl https://api.quickdial.ai/v1/stt \
  -H "Authorization: Bearer $QUICKVOICE_KEY" \
  -F "audio=@meeting.wav" \
  -F "language=en"
python
import os, requests

with open("meeting.wav", "rb") as f:
    r = requests.post(
        "https://api.quickdial.ai/v1/stt",
        headers={"Authorization": f"Bearer {os.environ['QUICKVOICE_KEY']}"},
        files={"audio": f},
    )

data = r.json()
print(data["text"])

Response

Proposed: not yet implemented Only text and compute_ms are confirmed in the response. language, duration_ms, characters_billed and words are proposed.
200 ok
{
  "text": "I found three options that match your request.",
  "language": "en",
  "duration_ms": 2140,
  "compute_ms": 188,
  "characters_billed": 34,
  "words": [
    { "word": "Your",  "start_ms": 40,  "end_ms": 210 },
    { "word": "table", "start_ms": 210, "end_ms": 480 },
    { "word": "is",    "start_ms": 480, "end_ms": 610 }
  ]
}

Field notes

  • duration_ms: length of the submitted audio.
  • compute_ms: time spent transcribing, useful for capacity planning.
  • words: omitted entirely when timestamps is false.
  • characters_billed: matches what appears on your invoice for this request.

Languages

Transcription auto-detects the spoken language and handles several beyond English, including French, German, Spanish, Italian and Portuguese. Pass language explicitly when you already know it. Detection costs nothing, but a forced language is more reliable on short or noisy clips.

Long audio and live audio

The REST endpoint is intended for complete files. For a live microphone or a call in progress, open the WebSocket endpoint instead and receive partial transcripts as the speaker talks. See Streaming.