/v3/languages endpoint tells you which languages are available for a given DeepL API resource, and which optional features (formality, glossary support, tag handling, and more) each language supports. Call it at startup or on a schedule to populate language dropdowns and feature toggles in your integration, rather than hardcoding lists that go stale when DeepL adds new languages.
GET /v3/languages replaces the deprecated GET /v2/languages endpoint. If you’re still using v2, see the migration guide.- Fetch all languages for the
translate_textresource - Separate languages that are valid as source vs. target
- Check whether a specific feature (formality) is available for a language
Prerequisites
- A DeepL API key. Find yours at your account page.
curlor any HTTP client.
https://api.deepl.com with https://api-free.deepl.com in every request below.
Step 1: Fetch languages for a resource
CallGET /v3/languages with the resource parameter set to the DeepL product you’re building for. This example uses translate_text.
The resource parameter is required — pass the value that matches the DeepL product you are integrating (for example, translate_text for text translation). For all supported values, see the GET /v3/languages reference.
en (English as a base code) is only valid as a source language, while en-US (the regional variant) is only valid as a target language. Some languages like de are valid in both directions.
Step 2: Build source and target language lists
Filter the response byusable_as_source and usable_as_target to populate the appropriate selectors in your UI.
Step 3: Check feature availability for a language pair
Before enabling a feature in your UI (for example, a formality selector), check that the target language supports it. Features appear as keys in thefeatures object.
GET /v3/languages/resources. See Using the Languages API for details on that endpoint.
Step 4: Include beta languages (optional)
By default, the endpoint returns only stable languages. To also include beta languages, addinclude=beta to your request:
"status": "beta" are functional but not yet stable. Check the status field before displaying them to end users, since beta languages may change.
Next steps
- Using the Languages API covers the full
GET /v3/languagesandGET /v3/languages/resourcesendpoint reference, including all response fields and feature semantics - Supported languages lists the currently supported languages as a static reference table
- Migrating from v2/languages if you’re updating an existing integration