Ditto API Dev Test Console
Paste an API key below and use the endpoint panels to send test requests against the server's /api routes.
Dubbing
/api/dubbing/lRetrieve a paginated list of dubbing projects for the authenticated user.
Parameters dictionary4 items
Zero-based page number to retrieve. Must be a non-negative integer; invalid or NaN values are rejected.
Default: 0
Optional filters object. When using query strings, encode as JSON (e.g. filters={"state":"verified"}).
Scope results to a single workflow state such as `pending_upload`, `processing`, or `verified`.
Provide inside the `filters` object.
Filter projects that were created from a specific YouTube video ID.
Provide inside the `filters` object.
Example response
{
"projects": [
{
"project_id": "YOUR_PROJECT_ID_1",
"name": "OnePlus 15 Scratch Short",
"state": "draft_transcription",
"seconds": 59,
"created_at": "2025-11-13T03:14:52.607Z",
"validated_at": null,
"source_language": "en",
"folder_id": null,
"thumbnail": "https://dittorosetta.s3.amazonaws.com/projects/example/thumbnail.webp",
"automatic": false,
"priority": null,
"project_languages": [
{
"state": "draft",
"modified_at": "2025-11-13T03:14:52.717179+00:00",
"language": "tr",
"ditto_verified": false,
"ditto_verified_state": null
},
{
"state": "draft",
"modified_at": "2025-11-13T03:14:52.737763+00:00",
"language": "vi",
"ditto_verified": false,
"ditto_verified_state": null
}
]
},
{
"project_id": "YOUR_PROJECT_ID_2",
"name": "BillionDollarPlayground_720p",
"state": "verified",
"seconds": 121,
"created_at": "2025-11-11T07:25:49.416Z",
"validated_at": "2025-11-11T07:50:39.989Z",
"source_language": "en",
"folder_id": "YOUR_FOLDER_ID",
"thumbnail": "https://dittorosetta.s3.amazonaws.com/projects/example/thumbnail.webp",
"automatic": false,
"priority": null,
"project_languages": [
{
"state": "complete",
"modified_at": "2025-11-11T21:49:31.087961+00:00",
"language": "es_mx",
"ditto_verified": false,
"ditto_verified_state": null
}
]
}
],
"hasMore": true
}curl -X GET "https://babelfish.dittodub.com/api/dubbing/l?page=0" \
-H "x-api-key: $API_KEY"axios.paramsResponse and errors will appear below.
/api/dubbingFetch a single dubbing project by project_id.
Parameters dictionary1 item
Project identifier returned by /api/dubbing or /api/dubbing/l. Must belong to the authenticated user.
Example response
{
"project": {
"project_id": "YOUR_PROJECT_ID",
"name": "Things I Would NEVER Buy As A Lawyer",
"state": "verified",
"seconds": 64,
"created_at": "2025-10-27T17:11:48.880Z",
"validated_at": "2025-10-24T15:00:32.276Z",
"source_language": "en",
"folder_id": null,
"thumbnail": "https://dittorosetta.s3.amazonaws.com/projects/example/thumbnail.webp",
"automatic": false,
"priority": null,
"project_languages": [
{
"state": "complete",
"modified_at": "2025-10-27T17:14:12.405043+00:00",
"language": "ja"
}
],
"metadata": {
"youtube_video_id": "GZCW7pcXaJg",
"channel_id": "UCKmmERguliWTynG9OIoDhDw",
"source": "youtube"
}
}
}curl -X GET "https://babelfish.dittodub.com/api/dubbing?project_id=YOUR_PROJECT_ID" \
-H "x-api-key: $API_KEY"axios.paramsResponse and errors will appear below.
/api/dubbingCreate a new dubbing project from a YouTube video or direct media URL.
Parameters dictionary10 items
Array of Ditto language/locale codes (for example `es`, `fr`, `en_in`). Each value must be a supported locale.
11-character YouTube video ID for a public/accessible video. Ditto imports metadata directly from YouTube when this is present.
Required unless you provide `source_url`.
HTTPS/HTTP URL to a downloadable audio or video file you host. The server verifies that the URL is reachable, then runs ffprobe to determine the duration automatically.
Required unless you provide `youtube_video_id`.
Friendly title for the remote media when using `source_url`. Falls back to "Untitled" if omitted.
Optional description that will be stored with the project record when providing a custom media URL.
HTTPS URL for a thumbnail image that represents the uploaded media.
Optional array of tag strings. Only string values are stored; other types are ignored.
Optional override for the source media language (use Ditto locale codes such as `en` or `es_mx`). Values are validated and truncated to the base language internally.
Default: "detect"
Set to true to request Ditto's transcript verification workflow. This reserves extra seconds equal to the media duration.
Toggle Ditto's intelligent automatic settings (accepts true/false; string values are coerced).
curl -X POST "https://babelfish.dittodub.com/api/dubbing" \
-H "x-api-key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{ "languages": ["es"], "youtube_video_id": "dQw4w9WgXcQ", "automatic": true }'application/jsonResponse and errors will appear below.
/api/dubbing/languageAdd one or more languages to an existing dubbing project.
Parameters dictionary2 items
ID of the project you are extending. The authenticated user must own the project.
Also accepts: projectId
Array of target language codes to add. Values must be unique, valid, and not already present on the project.
Example response
{
"success": true,
"message": "Languages created successfully."
}curl -X POST "https://babelfish.dittodub.com/api/dubbing/language" \
-H "x-api-key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{ "project_id": "YOUR_PROJECT_ID", "languages": ["fr"] }'application/jsonResponse and errors will appear below.
/api/dubbing/downloadDownload audio or subtitle files for a verified dubbing project.
Parameters dictionary4 items
ID of the verified project. Also used by the server's project-validation middleware.
Also accepts: projectId
Resource type to download. Audio returns signed URLs for mp3 files; subtitles proxies through the transcript download path.
Default: "audio"
Allowed: audio, subtitles
Locale code (e.g., `es`, `fr_ca`) used to build the audio file path.
Required when `type` is "audio" (or omitted). Use one of the languages originally requested on the project.
Subtitle format. Only evaluated when `type=subtitles`; other values are rejected.
Default: "vtt" when type=subtitles
Allowed: vtt, srt
Example response
(Binary file data)
curl -X GET "https://babelfish.dittodub.com/api/dubbing/download?type=audio&project_id=YOUR_PROJECT_ID&language=es" \
-H "x-api-key: $API_KEY"axios.paramsResponse and errors will appear below.
/api/dubbing/download/subtitlesDownload subtitles for a verified project. Defaults to the source language when `language` is omitted. Returns VTT unless `format=srt` is provided.
Parameters dictionary3 items
ID of the verified project. The authenticated user must own the project.
Also accepts: projectId
Locale code for subtitles. When omitted, defaults to `es`; the server will fall back to the source language if that subtitle set is unavailable.
Default: "es"
Subtitle file format.
Default: "srt"
Allowed: vtt, srt
Example response
(VTT or SRT file data)
curl -X GET "https://babelfish.dittodub.com/api/dubbing/download/subtitles?project_id=YOUR_PROJECT_ID&language=es&format=srt" \
-H "x-api-key: $API_KEY"axios.paramsResponse and errors will appear below.
/api/dubbing/download/metadataReturn the project's metadata (title, description, tags) for a specific language. Falls back to source language when `language` is omitted or set to `Original`.
Parameters dictionary2 items
ID of the project to fetch metadata for. Must belong to the authenticated user.
Also accepts: projectId
Locale code to request metadata in. When omitted or set to `Original`, the source language metadata is returned.
Default: "Original"
Example response
{
"metadata": {
"title": "Sample Video",
"description": "A walkthrough of our latest features.",
"tags": [
"product",
"walkthrough"
],
"language": "es"
}
}curl -X GET "https://babelfish.dittodub.com/api/dubbing/download/metadata?project_id=YOUR_PROJECT_ID&language=es" \
-H "x-api-key: $API_KEY"axios.paramsResponse and errors will appear below.
Languages
/api/languagesList languages and dialects supported by Ditto for dubbing.
Parameters dictionaryNo request parameters
This endpoint does not accept any request parameters.
curl -X GET "https://babelfish.dittodub.com/api/languages" \
-H "x-api-key: $API_KEY"axios.paramsResponse and errors will appear below.
Account
/api/accountRetrieve basic account details for the authenticated API key.
Parameters dictionaryNo request parameters
This endpoint does not accept any request parameters.
curl -X GET "https://babelfish.dittodub.com/api/account" \
-H "x-api-key: $API_KEY"axios.paramsResponse and errors will appear below.