Using DeepL API to translate text

The REST API is finally (commercially) available, see the API reference documentation.

A sample request would be

https://api.deepl.com/v1/translate?text=Hello%20World!&target_lang=EN&auth_key=XXX

where XXX is the authentication key you need to register with DeepL.


There is a POST call that allows you get the translations, I don't know how many time this will be supported or it's times limitations but here it is:

Url: https://www.deepl.com/jsonrpc

You should make a POST call with the next json:

{
        'jsonrpc': '2.0',
        'method': 'LMT_handle_jobs',
        'params': {
            'jobs': [
                {
                    'kind':'default',
                    'raw_en_sentence': TEXT_TO_TRANSLATE
                }
            ],
            'lang': {
                'user_preferred_langs': [
                    FROM_LANGUAGE,
                    TO_LANGUAGE
                ],
                'source_lang_user_selected': FROM_LANGUAGE,
                'target_lang': TO_LANGUAGE
            },
            'priority': -1
        },
}

The available languages are:

auto  Auto detect
DE    German
EN    English
FR    French
ES    Spanish
IT    Italian
NL    Dutch
PL    Polish

TO_LANGUAGE must be a valid language and FROM_LANGUAGE can be a valid language or auto

I wrote a python module that wraps this API: pydeepl There are currently also a node package and a php client that accomplish the same goal.