Documentation
Async Speech-to-Text Jobs
Use the async transcription flow for long audio files, subtitle generation, or any client behind a gateway with short connection limits. You submit the same multipart payload as POST /v1/audio/transcriptions, get a job ID immediately, poll status, then download the completed subtitle or transcription payload.
Step 1 — Submit a job
Set response_format to srt or vtt when you want subtitles.
1curl -X POST https://api.navy/v1/audio/transcriptions/jobs \
2 -H "Authorization: Bearer sk-navy-YOUR_KEY" \
3 -F file="@/path/to/video.mp4" \
4 -F model="whisper-1" \
5 -F response_format="srt"Step 2 — Poll status
Poll with the same API key until status is done or failed. Polling does not consume tokens.
1curl https://api.navy/v1/audio/transcriptions/jobs/job_a1b2c3d4e5f6/status \
2 -H "Authorization: Bearer sk-navy-YOUR_KEY"Step 3 — Download the subtitle
When the job is done, download the output. For srt, vtt, or text jobs this endpoint returns raw text. For json or verbose_json, it returns JSON.
Bash
1curl https://api.navy/v1/audio/transcriptions/jobs/job_a1b2c3d4e5f6/download \
2 -H "Authorization: Bearer sk-navy-YOUR_KEY" \
3 --output subtitles.srtStatus values
Pending— Accepted and waiting to startprocessing— A provider is actively transcribingdone— Transcription finished and can be downloadedfailed— Transcription failed, with details inerror
Errors
404 job_not_found— The job ID does not exist or has expired. Audio jobs are retained for one hour after creation.403 unauthorized_job_access— The job exists, but it was created with a different API key.409 job_not_ready— The job is stillPendingorprocessing; poll again before downloading.