Image translation API

Translate text in images with an API call

Send an image and the languages you want. Get back the same image with its text translated. Fonts, colors and layout stay the same.

Empezar

Your own API key
  1. 1. Make a Proxylang account. It comes with 1 free credit to try. Sign up →
  2. 2. Buy a credit pack.
    • 10 credits: $10.00 ($1.00 each)
    • 50 credits: $45.00 ($0.90 each)
    • 100 credits: $85.00 ($0.85 each)
    Buy credits
  3. 3. Create an API key. On the Translate images page. You see the key once, so copy it. Create a key
  4. 4. Call the API. Send the key on every call. Examples below.
o11 Through o11.ai
$0.90 per credit

AI agents pay per call from their o11 wallet. No Proxylang account, key or credit pack needed.

Open o11
1. Quote

Find out what it costs. Free.

2. Translate

Start the job. Credits are charged only when the result is ready.

3. Get the result

Check every few seconds. Most images finish in under a minute. Free.

Authentication

Base URL https://proxylang.dev/api/v1. Send your secret key on every call:

Keep the key on your server. Anyone with it can spend your credits.

POST /images/quote

Prices the image for each language. Changes nothing and costs nothing. The quote is the charge: translate costs exactly what quote says.

POST /images/translate

Starts the translation and answers right away with HTTP 202. Your balance must cover every new language before anything starts. Each language is charged once, when its result is ready. Languages you already have cost 0.

GET /images/{image_id}?languages=ko,ja

Shows each language's status and, when done, the link to the translated image. Free.

Request fields

For quote and translate. Send one of image_url, image_id or image.

image_url
A public http(s) image address. Up to 15 MB.
image_id
The id from an earlier reply. Use it instead of sending the image again. Works for 30 days after the image was last sent.
image
A file upload, when you send multipart/form-data instead of JSON.
target_languages
Required. 1 to 20 language codes, as an array or "ko,ja".
source_language
Optional. The language of the text in the image. Default "en".
max_credits
Optional, translate only. Refuse the call if it would cost more.

Language status

new
Not started.
queued
Accepted and waiting.
processing
Being translated.
completed
Done. url holds the translated image. Kept 30 days.
no_text
The image has no text. Costs 0.
failed
Did not finish. Costs 0. Send it to translate again to retry.

Precios

  • 1 credit per image, per language.
  • 2 credits when the image is over 2000px on its long side.
  • Long images (over 3.5 times taller than wide, and 2000px or more) are cut into pieces. Each piece with text costs 1 credit, or 2 if it is over 2000px. Quote tells you the total first.
  • Images with no text, failed jobs and languages you already have cost 0.
  • A credit costs $0.90 through o11, or $0.85 to $1.00 with credit packs.

Errors and limits

400
A required field is missing or a language code is not valid.
401
The API key is missing, wrong, or revoked.
402
insufficient_credits: the balance does not cover the call. The reply has total_credits, balance and buy_url.
404
image not found: the image_id is unknown or older than 30 days. Send image_url again.
409
over_max_credits: the call costs more than max_credits. Nothing was charged.
413
The image is over 15 MB.
422
image_url could not be downloaded.
429
More than 200 quote and translate calls in one hour on this account.

The same image always gets the same image_id, so sending it again never charges twice for a language you already have.

Results are kept for 30 days. Download each translated image and store it yourself. After 30 days the file is deleted, the language reads as new, and translating it again costs credits. Signed-in users also see these images, with their delete dates, on the Translate images page.