Skip to main content

Transcription API

The Transcription API uses AI to transcribe audio and video content. It converts spoken content into text that you can use for captions, subtitles, repurposing into text posts, or any other text-based workflow.

Transcribe Media

Submit an audio or video file for AI transcription.

Authentication

This endpoint uses API key authentication. Include your API key in the soku-api-key header. An active Soku subscription (trialing or active) is required.
Transcription consumes AI credits from your account balance. The number of credits debited depends on the duration of the media. Check your credit balance in the Soku dashboard under Account > Credits.

Headers

Rate Limit

10 requests per 60 seconds, in addition to the global tier limit. See Rate Limits.

Request Body

Response

Status: 200 OK The Idempotency-Key is returned as a response header, not in the JSON body.

Examples

Basic transcription

Response:

Transcription with idempotency

Use the Idempotency-Key header to prevent duplicate charges if you need to retry a request:
If you send the same request with the same Idempotency-Key, you receive the original result without being charged again.

Transcription with duration estimate

Providing durationSeconds helps the API estimate the credit cost:

Credit Costs

Transcription costs vary based on the duration of the media file. Credits are debited from your account balance when the transcription completes.
Monitor your credit balance in the Soku dashboard under Account > Credits. For information on credit pricing and how to purchase more credits, see Credits System.

Idempotency

The Idempotency-Key header is strongly recommended for transcription requests. Because transcription consumes credits, accidental duplicate requests can result in unnecessary charges. How it works:
  1. Include an Idempotency-Key header with a unique value (for example, a UUID) on your first request.
  2. If the request succeeds, the API caches the result keyed by your idempotency key.
  3. If you retry with the same Idempotency-Key, the API returns the cached result without processing the transcription again or charging additional credits.

Error Responses

Example error response (insufficient credits):

Next Steps