Документация по переводу изображения

Справочник API

Публичный REST API imagetranslate.ai. Bearer-авторизация, отправка изображения в base64, получение переведённого изображения.

Переводит текст на изображении с сохранением исходной вёрстки и отрисовывает результат поверх картинки.

Быстрый старт

Получите API-ключ

Создайте ключ на странице API Keys.

Отправьте первый запрос

curl -X POST https://api.imagetranslate.ai/translate/image \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "imageBase64": "iVBORw0KGgoAAAANSUhEUgAA...",
    "sourceLanguage": "ja",
    "targetLanguage": "en",
    "mode": "general",
    "translator": "Grok"
  }'

Обработайте ответ

response.resultImage — PNG в base64 с префиксом data:image/png;base64,, а не HTTP-URL. В браузере подставляется напрямую: <img src={response.resultImage} />. Чтобы сохранить в файл, отбросьте префикс и декодируйте base64.

Аутентификация

Передавайте API-ключ в каждом запросе через заголовок Authorization как Bearer-токен:

Authorization: Bearer YOUR_KEY

API-ключ — случайная 32-байтовая строка с префиксом sk_imagetranslate_. Относитесь к нему как к паролю: храните в серверном секрет-менеджере, не коммитьте в репозиторий и не раскрывайте во фронтенд-коде.

Идемпотентность

Если повторяете запрос после сетевого таймаута, отправьте тот же заголовок Idempotency-Key, чтобы избежать двойного списания кредитов:

Idempotency-Key: <your-uuid>
  • Первый вызов с указанным ключом: обрабатывается обычным образом.
  • Повторный вызов с тем же ключом (в рамках одного API-ключа): возвращает 409 Conflict и исходный recordId. Повтор не списывает кредит.
  • Разные ключи — разные вызовы.

Сгенерируйте ключ на клиенте (подойдёт UUIDv4). Без него каждый повтор списывает новый кредит и снова запускает Torii.

Перевод изображения

Синхронный эндпоинт. Возвращает переведённое изображение в base64 с префиксом data:image/png;base64,.

Base URL

https://api.imagetranslate.ai

Тело запроса

ПолеТипОбязательноОписание
imageBase64stringдаИзображение в base64. Принимается как чистая строка base64, так и полный data-URL (data:image/png;base64,...). До 20 МБ после декодирования.
sourceLanguagestringдаISO-код языка или auto для автоопределения. См. коды языков.
targetLanguagestringдаISO-код языка. См. коды языков.
modestringнетСтиль отрисовки. По умолчанию general. См. значения mode.
translatorstringнетМодель перевода. По умолчанию Grok. См. модели translator.
customPromptstringнетДополнительные указания модели. До 1000 символов.

Ответ

ПолеТипОписание
successbooleantrue при успешном переводе.
recordIdstringУникальный идентификатор записи о вызове. Передайте его в поддержку, если что-то пойдёт не так.
resultImagestringПереведённое изображение в base64 с префиксом data:image/png;base64, (не HTTP-URL). Подставляется напрямую через <img src={...} />. Чтобы сохранить в файл, отбросьте префикс и декодируйте base64.
remainingCreditnumberОстаток advanced credit после вызова.

Примеры

curl -X POST https://api.imagetranslate.ai/translate/image \
  -H "Authorization: Bearer $IMAGETRANSLATE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "imageBase64": "YOUR_BASE64_IMAGE",
    "sourceLanguage": "ja",
    "targetLanguage": "en",
    "mode": "general",
    "translator": "Grok"
  }'

Пример ответа

{
  "success": true,
  "recordId": "Z3l4abc...",
  "resultImage": "data:image/png;base64,iVBORw0KGgoAAAANSU...",
  "remainingCredit": 9990
}

Коды ошибок

StatusЗначение
400Неверный формат запроса или некорректный base64 в imageBase64.
401API-ключ отсутствует или недействителен. Создайте новый на странице API Keys.
402Не хватает advanced credit. Пополните на странице тарифов. Кредит за этот вызов не списан.
403Текущий тариф не даёт доступа к API. Перейдите на Professional или выше на странице тарифов.
409Idempotency-Key уже использовался. Возвращает { "error": "idempotency_replay", "recordId": "<id>" }. Кредит не списан.
413Размер изображения после декодирования превышает 20 МБ. Сожмите или уменьшите.
422Ошибка валидации тела запроса (отсутствует/некорректное поле). В теле возвращается массив detail с местоположением ошибки.
429Превышен лимит частоты вашего тарифа. Кредит не списан.
500Ошибка перевода. Кредит возвращён автоматически.

Формат ответа об ошибке

  • 4xx / 500: { "detail": "<message>" }
  • 422: { "detail": [{ "loc": [...], "msg": "...", "type": "..." }] }
  • 409: { "error": "idempotency_replay", "recordId": "<id>", "message": "..." }

Лимиты запросов

Считаются на каждый API-ключ в минуту и зависят от тарифа:

ТарифЛимит
Freeнедоступно
Starterнедоступно
Professional60 req/min
Enterprise300 req/min

Нужен лимит выше — напишите на [email protected].

Тарификация

10 advanced credit за вызов. Подробности о тарифах и пакетах — на странице тарифов.

Приложение

Коды языков

В sourceLanguage укажите код ISO 639-1 / BCP-47 либо auto для автоопределения. В targetLanguage — те же коды, кроме auto.

Часто используемые коды:

CodeЯзыкCodeЯзык
autoАвтоопределение (только sourceLanguage)ptПортугальский
enАнглийскийruРусский
zhКитайскийarАрабский
zh-cnКитайский упрощённыйhiХинди
zh-twКитайский традиционныйthТайский
jaЯпонскийviВьетнамский
koКорейскийidИндонезийский
esИспанскийtrТурецкий
frФранцузскийitИтальянский
deНемецкийnlНидерландский
Полный список — более 130 языков по регионам

Восточная Азия

CodeЯзык
zhКитайский
zh-cnКитайский упрощённый
zh-twКитайский традиционный
jaЯпонский
koКорейский
mnМонгольский
jvЯванский
suСунданский

Юго-Восточная Азия

CodeЯзык
viВьетнамский
thТайский
idИндонезийский
msМалайский
myБирманский
kmКхмерский
loЛаосский
filФилиппинский
cebСебуано
iloИлокано

Южная Азия

CodeЯзыкCodeЯзык
hiХиндиneНепальский
bnБенгальскийsiСингальский
urУрдуasАссамский
taТамильскийbhoБходжпури
teТелугуdvМальдивский
mlМалаяламdoiДогри
guГуджаратиgomКонкани
knКаннадаmaiМайтхили
mrМаратхиlusМизо
orОрияpaПанджаби
saСанскритsdСиндхи

Африка

CodeЯзыкCodeЯзык
amАмхарскийkriКрио
swСуахилиlnЛингала
haХаусаnsoСеверный сото
yoЙорубаomОромо
zuЗулуstСесото
xhКосаsnШона
afАфрикаансtiТигринья
mgМалагасийскийtsТсонга
soСомалийскийakТви
bmБамбараeeЭве
nyЧичеваlgЛуганда
igИгбоrwКиньяруанда

Европа

CodeЯзыкCodeЯзык
frФранцузскийltЛитовский
deНемецкийlvЛатышский
esИспанскийetЭстонский
itИтальянскийisИсландский
ruРусскийsqАлбанский
plПольскийhyАрмянский
ukУкраинскийazАзербайджанский
nlНидерландскийeuБаскский
ptПортугальскийbeБелорусский
elГреческийbsБоснийский
csЧешскийcaКаталонский
huВенгерскийcoКорсиканский
svШведскийfyФризский
daДатскийglГалисийский
fiФинскийkaГрузинский
noНорвежскийkkКазахский
roРумынскийkyКиргизский
bgБолгарскийlbЛюксембургский
hrХорватскийmkМакедонский
skСловацкийmtМальтийский
slСловенскийsrСербский
tgТаджикскийttТатарский
tkТуркменскийugУйгурский
uzУзбекский

Ближний Восток

CodeЯзык
arАрабский
faПерсидский
trТурецкий
heИврит
kuКурдский
ckbСорани-курдский
psПушту

Америки и Океания

CodeЯзык
ayАймара
gnГуарани
htГаитянский креольский
hawГавайский
quКечуа
smСамоанский
miМаори

Прочее

CodeЯзык
eoЭсперанто
laЛатынь
cyВаллийский
gaИрландский
gdШотландский гэльский
hmnХмонг
yiИдиш

Значения mode

Параметр mode задаёт стиль отрисовки. Подбирайте под содержимое изображения.

ValueОписание
general (по умолчанию)Базовый режим без специальной отрисовки.
mangaСохраняет исходную вёрстку, текст с обводкой.
e-commerceСохраняет исходную вёрстку, текст без обводки.
light-novelНакладывает переведённый текст поверх исходного изображения.

Модели translator

Параметр translator выбирает AI-модель, выполняющую перевод. Любая модель — 10 кредитов за вызов.

  • Grok (по умолчанию)
  • Gemini
  • Deepseek
  • ChatGPT
  • Claude

Начало работы

Готовы интегрировать? Создайте первый API-ключ →