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. Dropbox shared file links are normalized 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.