Skip to content

Free Endpoint

The default DeepLX endpoint. Since v1.2.0, requests are routed through the oneshot endpoint that the official DeepL Chrome extension uses (oneshot-free.www.deepl.com/v1/translate) — a stateless REST endpoint that lives on a much looser rate-limit pool than the legacy JSON-RPC backend.

Anonymous access; no account, cookie, or session required.

/translate

Method: POST

Request Headers

HeaderDescriptionValue
Content-TypeThe content type of the request body.application/json
AuthorizationOptional. Access token to protect your own DeepLX instance, when DeepLX is started with -token.Bearer your_access_token

If you cannot pass Authorization, you can also use a URL parameter instead: /translate?token=your_access_token.

Request Parameters

ParameterTypeDescriptionRequired
textstringThe text you want to translate.true
target_langstringThe language code you want to translate to (e.g. DE, EN-US, ZH-HANS).true
source_langstringThe language code of the source text. Set to auto or omit entirely for server-side autodetection.false

Response

json
{
  "alternatives": null,
  "code": 200,
  "data": "Hallo Welt",
  "id": 1779423094485,
  "method": "Free",
  "source_lang": "EN",
  "target_lang": "DE"
}

TIP

alternatives is always null since v1.2.0 — the oneshot endpoint does not return alternative translations. The field is kept for backward compatibility with clients that still read it.

Error Responses

Since v1.2.1, source and target language codes are validated against the official supported list. Unsupported codes return HTTP 400:

json
{
  "code": 400,
  "message": "unsupported target_lang \"XX\"; valid codes: AR, BG, CS, DA, DE, EL, EN, EN-GB, EN-US, ES, ES-419, ET, FI, FR, HE, HU, ID, IT, JA, KO, LT, LV, NB, NL, PL, PT, PT-BR, PT-PT, RO, RU, SK, SL, SV, TR, UK, VI, ZH, ZH-HANS, ZH-HANT"
}
CodeMeaning
200Translation succeeded.
400target_lang or source_lang is invalid (unknown code, empty, or auto used as target).
404text is empty.
429DeepL rate-limited the upstream call. Rare on the oneshot pool; back off and retry.
503Upstream failure or unexpected non-200 response from DeepL.

Supported Languages

The 38 codes accepted by source_lang / target_lang mirror the language table the official Chrome extension bundles. Codes are case-insensitive.

Target-capable (36): AR, BG, CS, DA, DE, EL, EN-GB, EN-US, ES, ES-419, ET, FI, FR, HE, HU, ID, IT, JA, KO, LT, LV, NB, NL, PL, PT-BR, PT-PT, RO, RU, SK, SL, SV, TR, UK, VI, ZH (Simplified), ZH-HANT (Traditional)

Source-only aliases: EN (resolves to generic English when sent as source_lang, or to EN-US when sent as target_lang), PT (same pattern, defaults to PT-BR as target). ZH-HANS is accepted as an alias for ZH.

For source_lang, the value auto (or omitting the field entirely) lets DeepL autodetect the language; the detected code is echoed back as source_lang in the response.

Released under the MIT License.