Ollang API Reference
Create Order
Create a new translation order for your uploaded video projects
POST
Create a new translation order for your uploaded video projects. This endpoint allows you to request specific translation services such as closed captions, subtitles, dubbing, and more.
Authorizations
This endpoint requires API key authentication. Include your API key in the request header:- Header name:
X-Api-Key - Header value: Your API key from the Ollang dashboard
- Format:
X-Api-Key: your-api-key-here
Body Parameters
Type of the order. Available options: -
cc - Closed captions - subtitle -
Subtitles - aiDubbing - AI Dubbing - studioDubbing - Studio-produced
dubbing - document - Document translation (including Image to Image when the
source is a JPEG, JPG, or PNG from Direct Upload)Service level for the order. Level 0 means full AI generated and Level 1 is
Human Review added version.
Unique identifier of the project this order belongs to. This should be a
project ID from a previous video upload.
Array of target language configurations. At least one target language
configuration is required.
Subtype of the order, specific to closed captions or transcription types. Must
be one of:
closedCaption or timecodedTranscription.Style of dubbing for audio orders. Must be one of:
overdub, lipsync, or
audioDescription.Optional URL to receive a
POST request when the order completes. Must be a
valid URL (http or https). The callback payload includes the completed
order’s translated content (documents, subtitle files, etc.) so you can
process results immediately without a separate API call.
See Order completion callback.When set to
true, a QC evaluation will automatically run after the AI order
completes. Defaults to false. Auto-QC only applies to top-level orders
(child orders created as part of a parent order are excluded).Order completion callback
WhencallbackUrl is provided, Ollang sends a POST request to that URL after the
order reaches a completed state. The request uses Content-Type: application/json
and has a 10-second timeout. Callback failures do not affect the order itself.
Implement idempotent handling and validate payloads on your side; you can always
confirm status and outputs with Get Order by ID.
Callback payload
The callbackPOST body includes the completed order’s translated content, matching
the shape of the Get Order by ID response:
| Field | Type | Description |
|---|---|---|
orderId | string | The unique identifier of the completed order. |
status | string | Always "completed". |
orderType | string | The order type (e.g., cc, subtitle, document, aiDubbing). |
targetLanguage | string | Target language code (ISO 639-1). |
completedAt | string | Completion timestamp (ISO 8601). |
orderDocs | array | All documents associated with the order — source files, translated subtitles, embedded videos, dubbed audio, translated documents, images, etc. Each object includes id, name, url, type, size, duration, wordCount, sourceLanguage, createdAt, and updatedAt. |
vttUrl | string | Signed URL to download the VTT subtitle file (valid for 7 days). Empty string if not applicable to the order type. |
Example callback payload
Response
The endpoint returns an array of created orders — one pertargetLanguageConfigs entry. Each element is an object with a single
orderId field. If you pass three target languages, you get three order IDs
back in the same order you supplied them.
Array of created orders. Each entry corresponds to one
targetLanguageConfigs item, in the same order.