Skip to main content
POST
End To End Image Translation

Localizing Images and PDFs

Our image translation service localizes your images and PDFs by translating the text inside them while keeping the original design. It works on posters, signage, screenshots, menus, comics, and multi-page documents, in as many target languages as you need in a single call. This endpoint initiates an image translation task and returns a run_id and a task_id that allow you to track and retrieve your results.

Language Selection

Image translation needs source_language and target_languages in the form body:
  • source_language: the language of the text in your image. Locale tag (e.g. en-us) or numeric ID.
  • target_languages: one or more output languages as a comma-separated string, for example es-es or es-es,pt-br. The SDKs accept an array and join it for you.
For a complete list of supported languages and their locale tags, see source languages and target languages.

Supported Media Formats

Provide a publicly accessible media_url. For optimal results, we recommend using high-resolution images with clearly legible text. Our service accepts the following formats:
  • PNG (.png)
  • JPG / JPEG (.jpg, .jpeg)
  • WEBP (.webp)
  • PDF (.pdf)
  • ZIP of page images (.zip), for multi-page sources
PDF and ZIP inputs are split into pages automatically.

Export Format

The result is always delivered as a ZIP. The optional export_format field controls what is inside it:
  • ZIP (default): the translated page images.
  • PDF: one PDF per target language.
Omit the field to use ZIP. You can also change the format later with the export endpoint.

Request Example

Create an image translation task by sending a multipart form. Here’s how to request a Spanish translation of a hosted image using Python with the requests library:
Optional form fields include project_name, project_description, and folder_id.

Next Steps: Monitoring Your Image Translation Task

After submitting your request, you’ll want to monitor its progress and retrieve the results once processing completes:
  1. Use the /image-translation/{task_id} endpoint to check your task’s status
  2. Poll the status endpoint at reasonable intervals (we recommend 5-15 second intervals for most cases)
  3. Once the status shows as SUCCESS, retrieve your translated pages from /image-translation/result/{run_id}
Want to review individual text regions or adjust a translation? Use Get Image Translation Project to inspect the regions, then Fine-Tune Image Translation to refine one.

Authorizations

x-api-key
string
header
required

The x-api-key is a custom header required for authenticating requests to our API. Include this header in your request with the appropriate API key value to securely access our endpoints. You can find your API key(s) in the 'API' section of our studio website.

Body

multipart/form-data
source_language
string
required

Language of the text in the source image. Pass a locale tag (en-us) or a numeric language ID. See all source languages.

Example:

"en-us"

target_languages
string
required

Comma-separated target languages as locale tags or language IDs (e.g. es-es or es-es,pt-br). The SDKs take an array and join it. See all target languages.

Example:

"es-es"

media_url
string
required

URL of the image, PDF, or ZIP of page images.

Example:

null

project_name
string | null

Enter a distinctive name for your project that reflects its purpose or content. This name will be displayed in your CAMB.AI workspace dashboard and used to organize related assets, transcriptions, etc.. . Choose something memorable that helps you quickly identify this specific project among your other voice, audio and localization tasks.

Required string length: 3 - 255
Example:

null

project_description
string | null

Provide details about your project's goals and specifications. Include information such as the target languages for translation or dubbing, desired voice characteristics, emotional tones to capture, or specific audio processing requirements, outlining the workflow here can serve as valuable documentation for organizational purposes.

Required string length: 3 - 5000
Example:

null

export_format
enum<string>
default:ZIP

ZIP (default) is a ZIP of page images. PDF is a ZIP of per-language PDFs. The download is always a ZIP.

Available options:
ZIP,
PDF
folder_id
integer | null

Optional Studio folder to store the run in. Must belong to the API key's team.

Example:

null

Response

Successful Response

run_id
integer
required

Stable identifier for this image translation run. Use it with result, project, export, and fine-tune.

task_id
string
required

Poll GET /image-translation/{task_id} until status is SUCCESS or ERROR.

Last modified on November 11, 2026