The
/v3/languages endpoints provide a single source of truth for language and feature support across all DeepL
API products. They replace the /v2/languages and /v2/glossary-language-pairs endpoints.If you’re currently using /v2/languages or /v2/glossary-language-pairs, see the
migration guide
for a full list of differences and code examples.These endpoints are available for testing in BETA. Breaking changes may be pushed with little or no advance
notice, and we provide no guarantees of stability. Please do not use /v3/languages in production. See the
changelog for planned changes.Products list
To retrieve language support, decide which DeepL product you’re building for, then callGET /v3/languages with
the appropriate product value. The product parameter is required and identifies which DeepL API product you
are querying language support for:
| Value | Description |
|---|---|
translate_text | Text translation via the /v2/translate endpoint |
translate_document | Document translation via the /v2/document endpoint |
voice | Speech transcription and translation via the /v3/voice endpoints |
write | Text improvement via the /v2/write endpoints |
glossary | Glossary management via the /v2/ and /v3/glossaries endpoints |
glossary is a product value indicating glossaries can be created for that language, and managed via the glossary
management endpoints.Support for glossaries within specific products (for example text translation) is indicated by the glossary
feature value, explained in a later section.Basic example
Each language in the response includes afeatures array indicating which optional capabilities are available for that
language — see the Product features section below for details.
The examples below use our API Pro endpoint https://api.deepl.com. If you’re an API Free user, remember to update
your requests to use https://api-free.deepl.com instead.
The following example responses are truncated; the full API responses can include over 100 languages.
- cURL
- HTTP Request
Example request: languages for text translation
Example response
Language codes
Language codes in thelang field follow BCP 47. The base language
subtag is always present; script, region, and variant subtags are included where needed to distinguish variants. See Language codes follow BCP 47 for details.
Product features
Each language object includes afeatures array indicating which optional capabilities are supported for that language
with the requested product.
To use a feature, one or both languages in the pair must support it. For example, for text translation:
- Target-only:
formalityonly needs to be supported by the target language. Check that"formality"is present in the target language’sfeaturesarray. - Source-and-target:
tag_handlingandglossarymust be supported by both languages. Check that the feature is present in both the source and target language’sfeaturesarrays.
Retrieving products programmatically
Use the/v3/languages/products endpoint to retrieve the list of products and their features programmatically.
For each feature, the response indicates which languages must support it for the feature to be available —
source only, target only, or both — allowing clients to determine feature availability for a language pair
by checking the appropriate features arrays.
Example response (truncated)
API stability
The v3 language endpoints are designed to be forward-compatible:- New features may be added to the
featuresarray - New languages will be added as DeepL support expands
- Existing fields will not be removed or changed in backwards-incompatible ways
Build your integration to gracefully handle new BCP 47
lang codes and new values in the features array. Do not hardcode assumptions about the format of language codes — see Language codes follow BCP 47 for details.Best practices
- Cache responses: Language support changes infrequently. Consider caching responses for up to 1 hour.
-
Check features: Always check the
featuresarray on language objects rather than assuming support (e.g. for formality, glossary use, or writing style). -
Handle forward compatibility: New languages and features may be added at any time. Build your integration to dynamically accept new
langcodes andfeaturesvalues instead of maintaining a hardcoded allowlist. -
Use specific variants: For target languages, prefer specific regional variants (e.g.,
"en-US","en-GB") when the distinction matters to your users.