/v2/languages endpoint and the v3 endpoints, and how to update your integration.
What changed
Single endpoint for source and target
v2 uses a single endpoint with atype query parameter to distinguish source from target:
New resource identifiers
v2 languages are implicitly tied to text and document translation. v3 introduces an explicitresource parameter that applies across all DeepL API resources:
The v3 endpoints replace both
/v2/languages and /v2/glossary-language-pairs.
Features instead of supports_formality
v2 target languages include a boolean supports_formality field. v3 replaces this with a features object that covers additional capabilities per resource:
For example, querying languages for text translation:
Example response (truncated)
formality (key present in features), but English (American) does not (key absent).
See the overview for the full list of features per resource.
Response field names
Language code casing
v2 returned language codes in non-standard casing (e.g.EN-US, ZH-HANT). v3 returns codes compliant with BCP 47: lowercase base language (en, de), uppercase region subtag (en-US, pt-BR), and title-case script subtag (zh-Hant).
DeepL accepts language codes case-insensitively as input across all endpoints. However, if your integration stores or compares codes returned by /v2/languages, update those comparisons to be case-insensitive or to expect the new casing.
Migrating glossary language pair queries
If you currently use/v2/glossary-language-pairs to discover which language pairs are supported for glossaries, use one of the following:
GET /v3/languages?resource=glossaryto check which languages support glossary management (i.e. creating a glossary for that language). Filter byusable_as_sourceandusable_as_targetas needed. Any combination of a valid source and target language is a supported glossary language pair.GET /v3/languages?resource=translate_textto check which languages support using a glossary during text translation. Languages with a"glossary"key in theirfeaturesobject support theglossary_idparameter on the translate endpoint.- Similarly, use
resource=translate_documentto check glossary support for document translation.