Transcribe with word timestamps

by OpenAI

openai/whisper-1

Turn a recording into text with the start and end of every word.

Billed per
second
Price
Price: $0.0001
Provider
OpenAI
Timeout
5 min

Overview

Takes an audio recording and returns what was said with a start and end time for every word, plus the segments the speech falls into. This is the endpoint for aligning a script to a recording: captions, word-level highlights, or cutting on a spoken word. The audio is sent as base64 and the gateway builds the upload; recordings are limited to 25 MB, so long material should be split first. A language code skips detection and improves accuracy; a short prompt can spell unusual names the way they should appear. Billing counts the seconds of audio the transcriber reports.

The transcript text, the language, the duration in seconds, every word with its start and end in seconds, and the segments.

Input

These go in the input object of the run request.

FieldTypeRequiredDescription
audio_base64base64YesThe recording, base64-encoded.
filenamestringNoA name for the uploaded file, which sets its extension.
content_typestringNoMedia type of the recording.
duration_secondsnumberNoLength of the recording, used for billing when the audio carries no readable header.
languagestringNoThe spoken language as an ISO 639-1 code, such as en or ko.
promptstringNoOptional text that guides spelling and style, such as names that appear in the recording.

Requests up to 35 MB, audio up to 25 MB.

Example

Use your own API key and a saved idempotency key for each new job. Replace image or media placeholders with your own publicly reachable HTTPS URLs. Keep the same key and request body when recovering a timeout.

# Set once per job; reuse this key and the identical body after a timeout.
: "${AGENTSKY_IDEMPOTENCY_KEY:?Set a unique, saved key for this job}"
curl --fail-with-body https://gateway.agentsky.dev/v1/run \
  -H "authorization: Bearer $AGENTSKY_API_KEY" \
  -H "content-type: application/json" \
  -H "Idempotency-Key: $AGENTSKY_IDEMPOTENCY_KEY" \
  -d '{"provider":"openai","endpoint":"whisper-1","input":{"audio_base64":"UklGRiQAAABXQVZFZm10IBAAAAABAAEA...","filename":"take.wav","content_type":"audio/wav","language":"en"}}'
# If status is READY/RUNNING, poll GET /v1/runs/{runId} with the same API key.

Pricing

$0.0001 per second using your plan when signed in. Read the final customer charge from price.amount.value after the run finishes. A RUNNING response is not the final bill.

Questions