API

JSON в стиле OpenAI, стриминг длинных текстов и ошибки, по которым удобно ветвиться.

API-ключи

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

Создайте ключ выше и передавайте его как Bearer-токен. Символы списываются с баланса за каждый запрос и возвращаются, если запрос не удался.

curl https://api.translay.app/v1/translate \
  -H "Authorization: Bearer tr_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Where meaning travels intact.",
    "source_language": "auto",
    "target_language": "ru",
    "mode": "quality"
  }'

Запрос

Ответ содержит перевод, использованную модель, расход токенов и число частей, на которые был разбит текст.

fieldtypenotes
textstringrequired, up to 100,000 characters
target_languagestringrequired, ISO code or language name
source_languagestringoptional, default auto
modefast | qualityoptional, default fast
streambooleanoptional, server-sent events
{
  "translation": {
    "text": "Там, где смысл доходит без потерь.",
    "model": "glm5.3-flash",
    "prompt_tokens": 61,
    "completion_tokens": 14,
    "chunks": 1
  },
  "remaining_chars": 4999971
}

Стриминг

Добавьте "stream": true или отправьте Accept: text/event-stream, чтобы получать server-sent events: событие chunk на каждую часть по порядку, затем done.

event: chunk
data: {"index":0,"total":3,"text":"Первая часть…"}

event: chunk
data: {"index":1,"total":3,"text":"Вторая часть…"}

event: done
data: {"translation":{"model":"qwen3.7-flash","chunks":3,"prompt_tokens":2410,"completion_tokens":2388},"remaining_chars":4988120}

Ошибки

Каждая ошибка — это JSON со стабильным кодом. Ветвитесь по коду, показывайте сообщение.

{
  "error": "Not enough characters on the balance",
  "code": "INSUFFICIENT_BALANCE",
  "details": { "required": 1834, "balance": 120 }
}
codestatus
INVALID_API_KEY401
INVALID_REQUEST400
INVALID_TRANSLATION400
INSUFFICIENT_BALANCE402
RATE_LIMITED429
TRANSLATION_FAILED503

Лимиты

До 100 000 символов за запрос и 300 запросов в минуту на ключ. Длинные тексты делятся по границам абзацев и переводятся параллельно.

Языки

Передавайте ISO-коды вроде en, de, zh-TW или название языка. Используйте auto для определения исходного языка.

GET https://api.translay.app/v1/languages
Authorization: Bearer tr_live_…