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.