Get information about all currently supported languages across all DeepL API resources.Documentation Index
Fetch the complete documentation index at: https://deepl-c950b784-v3-langs-endpoint-doc-updates.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
These BETA endpoints replace
/v2/languages and /v2/glossary-language-pairs (see the migration guide). Do not use them in production; breaking changes may be pushed without advance notice (see the changelog).Resources list
To retrieve language support, decide which DeepL resource you’re building for, then callGET /v3/languages with
the appropriate resource value. The resource parameter is required and identifies which DeepL API resource 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 |
style_rules | Style rules management via the /v3/style_rules endpoints |
glossary is a resource value indicating glossaries can be created for that language, and managed via the glossary
management endpoints.Support for glossaries within specific resources (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 object indicating which optional capabilities are available for that
language — see the Resource 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.
Resource features
Each language object includes afeatures object indicating which optional capabilities are supported for that language
with the requested resource. Each key is a feature name; the value is an object with at least a status field.
To check whether a feature is supported, check that the key exists in the features object:
- Target-only:
formalityonly needs to be supported by the target language. Check that"formality"is a key in the target language’sfeaturesobject. - Source-and-target:
tag_handlingandglossarymust be supported by both languages. Check that the feature key is present in both the source and target language’sfeaturesobjects. - Source-only:
auto_detectiononly needs to be supported by the source language.
Resource feature reference
The table below lists all feature keys that can appear in a language’sfeatures object.
| Feature | Check language support on | Resources | Description |
|---|---|---|---|
auto_detection | source | translate_text, translate_document, voice, write | Language can be automatically detected as the source language. |
style_rules | target | translate_text | Language supports style rules that guide how DeepL translates text. Used with the custom_instructions and style_id parameters on the translate endpoint. |
formality | target | translate_text, translate_document | Language supports formality control — adjusting the output to use formal or informal register. |
glossary | source + target | translate_text, translate_document, voice | Language can be used with a glossary to enforce specific terminology. Both the source and target language must support this for a glossary to be usable with a given pair. |
tag_handling | source + target | translate_text, translate_document | Language supports tag-aware translation, preserving markup structure (e.g. HTML, XML) in the output. |
transcription | source | voice | Language supports transcription from audio to text. |
transcription_external | source | voice | Like transcription, but relies on external service providers. |
translated_speech | target | voice | Language supports conversion from translated text to audio output. |
translated_speech_external | target | voice | Like translated_speech, but relies on external service providers. |
tone | target | write | Language supports tone selection (e.g. confident, diplomatic, enthusiastic). |
writing_style | target | write | Language supports writing style selection (e.g. academic, casual, business). |
Filtering by availability
By default,GET /v3/languages returns only stable languages and features. Use the include query parameter
to request additional languages and features based on their availability status:
| Value | Effect |
|---|---|
beta | Includes languages and features in beta, in addition to stable |
external | Includes features that rely on third-party service providers |
?include=beta&include=external.
The status field on each language object and each feature object indicates its availability:
| Status | Meaning |
|---|---|
stable | Generally available |
beta | Available for testing; may change |
early_access | Limited availability; may change |
Retrieving resources programmatically
Use the/v3/languages/resources endpoint to retrieve the list of resources 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 objects.
Example response (truncated)
API stability
The v3 language endpoints are designed to be forward-compatible:- New feature keys may be added to the
featuresobject - New languages will be added as DeepL support expands
- Existing fields will not be removed or changed in backwards-incompatible ways
?include=beta. We aim to avoid this, but
build your integration to handle languages disappearing from the response gracefully.
Build your integration to gracefully handle new BCP 47
lang codes and new feature keys in the features object. 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
featuresobject 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 and new keys in thefeaturesobject 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.