Alpha feature. Adaptive translation is not intended for production use. The
example_translations parameter has a higher rate of change than production features, and its name and structure may change without notice. Reliability and error rate thresholds are lower than for production features. See Alpha and beta features, and report anything that looks wrong to your DeepL representative.About adaptive translation
Adaptive translation applies your preferred style, tone, and terminology by learning from translations you have already approved. You send example translations, each a source text paired with its accepted translation, alongside the text you want translated. The model infers your preferences from the examples and generalizes to sentences the examples do not cover. Unlike a glossary or a style rule, you do not describe what you want. You show it. Examples are supplied inline with each request and are not stored by DeepL, so every request that should benefit from them has to carry them again. For preferences you want stored and reused, see Using translation memories.What you’ll learn
In this tutorial, we’ll adapt a translation to preferred terminology, adapt another to a preferred style, and then see what it looks like when adaptation does not take effect.Before you begin
You’ll need:- A DeepL API authentication key for an account with adaptive translation enabled. Access is granted per account, so ask your DeepL representative to enable it.
- A terminal or HTTP client that can send a JSON request body
- Approximately 10 minutes
Language support
Adaptation is validated for English paired with German, Spanish, French, or Italian, in either direction. Coverage will be extended in a future update.Request format
example_translations is supported on POST /v2/translate only, and must be sent in a JSON body. It is ignored in form-encoded requests.
Step 1: Adapt terminology
Let’s say your organization always translates the German “Kunde” as “client” rather than “customer”. Send a few segments where you have already made that choice, using theexample_translations parameter on the text translation endpoint.
example_translations and you’ll get “customers” instead, which is DeepL’s default choice for this text.
Notice that none of the examples contain the sentence we translated. The examples establish the preference, and the model applies it to new text.
Step 2: Adapt style and tone
Adaptation is not limited to individual terms. These examples establish gender-neutral German forms, without saying anything about which nouns they apply to.Step 3: Recognize when adaptation does not take effect
Adaptation is best effort, and nothing in the response tells you whether it happened. Send the terminology request from Step 1 again, this time with only the first example:200 with an unadapted translation: “customers”, not “clients”. Adaptation is best effort, so it will sometimes leave a translation unchanged. Here, one example was not enough to establish the preference.
To make a preference more likely to be picked up:
- Send several examples that cover the same preference, not one
- Send whole segments rather than term pairs. For individual terms that must always be translated the same way, use a glossary instead.
- Keep the examples consistent. Examples that translate the same term differently give the model conflicting signals.
example_translations and include both results. That tells us whether the model declined to adapt or the examples never reached it, which is the difference between a quality issue and an integration issue.
Limits and errors
What you’ve accomplished
You’ve learned how to:- Adapt a translation to your preferred terminology with example translations
- Adapt style and tone, including for wording the examples don’t cover
- Recognize when adaptation didn’t take effect, and verify results against a baseline request
See also
- Text translation endpoint: parameter reference
- Alpha and beta features: what alpha means for stability and support
- Using translation memories: reuse stored translations instead of sending examples per request
- Supported languages: all languages DeepL translates