Start a new topic

DeepL API Free

 In the latest build:

- Access to API Free plan

But, I've just read this on the DeepL website:

A subscription to DeepL API Free does not offer access to DeepL Translator (both web and desktop apps) or an integration with CAT tools.

With CTE I've always used DeepL as a resource without paying a cent. (It works very well except when it stops working, and to make it work again I have to restart CTE, but I'm not complaining since it's a free service.) 

So, can DeepL API Free actually integrate with CTE for free, as opposed to what DeepL says?


Modules are installed into Python using pip or pip3 . About schowek, yeah, I usually don't pay much attention to the language I use to name my variables. :-)

And you can ignore this part in the python script:

# wynik = re.findall(r'\"(.+?)\"', schowek)

# tekst = wynik[0]

It is commented out and is a relic of an earlier version of the script used for a specific purpose.

I'll see if I can remove it from my earlier post.

Wow, that looks interesting. I already googled for the three modules you mention and it looks like they are easy to be found :).

Although there are solutions for macOS too, I'll certainly dive into your solution at some point.

Thank you!

(And I already learned that "schowek" means clipboard.)

There you go. Please note that modules like pyperclip, deepl and polyglot must be installed in Python first. I use polyglot to determine the language of text, though deepl api can do it on its own.

How to install stuff in Python, you figure out yourself. The AHK script at the end binds to right_alt_i on windows and calls the python script. On other systems there are other ways of interacting with the system clipboard, also for you to figure out.

import pyperclip

import deepl

from polyglot.text import Text, Word

auth_key = 'your_auth_key_here'

schowek = pyperclip.paste()

# wynik = re.findall(r'\"(.+?)\"', schowek)

# tekst = wynik[0]

text = Text(schowek)

srclng = text.language.code

if srclng == "en":

    tgl = "PL"


    tgl = "EN-US"

translator = deepl.Translator(auth_key)

result = translator.translate_text(schowek, target_lang=tgl)






Send ^c

RunWait D:\your_path_to\,, Hide

Send ^v











Can you share this Python script, Piotr?

My solution to using the Deepl API (free or otherwise) on Windows is to use an AHK keyboard macro on selected text that calls a little python script, and pastes the result over the selection.

In some Linux distros, for example MX Linux, you can bind scripts to keyboard shortcuts directly.

About MacOS, I have no idea.

 Advantage of my solution - work everywhere, where you can type/edit text.

Hello Igor,

That would be a pity, because the free API works well and better than the Web resource. But why disable it if it works? When I subscribed to the free API account, DeepL clearly said that I can switch to the pro version at any time, so this should imply that you were correct in your interpretation and the link I provided is perhaps an information ran out of control.

Hello Mario,

For now, I have decided to disable the DeepL API Free leaving only their paid API. The information about a given API usage terms which they provide at their website is very confusing. In the link you provided above, it says that a subscription to DeepL API Free does not offer an integration for CAT tools, so why on earth it works just fine?

 If I receive an indication that my initial interpretation about DeepL API free plan is correct, this free API will be restored. 

I got the free API to work, and I admit that it's cleaner and maybe somewhat faster than the DeepL Web resource.Many thanks for this additional implementation.

But I have a request: I see that in the DeepL pane there is the choice to "stop automatic MT service" so that the API doesn't work automatically at every segment switch. Plus, there is the "Translate" button which makes the MT service work for that segment only. This is very good to avoid that the API add up uselessly to the character count, but this implies having to right-click on the DeepL APi pane first to reach the "Translate" button, right?

Then, what about transferring the function of this "Translate" button to the "Translate" button that is always visible in the upper editor menu (and which works only with MT Web resources)? The result would be the same, but with one click less.

Then, again, enabling the "up" arrow to be clicked to insert the translation in the target editor?

Is this technically possible at all?

Hi Igor,

Please see here (this article is dated two months ago):

But, given the ambiguity I will register for the free account and see what happens.


I am puzzled by this ambiguity myself. My understanding is that with DeepL API Free you have a 500,000 characters per month free limit while the DeepL API Pro plan allows unlimited translation with usage-based pricing. Please check it here: So if you need to translate more than that limit, you need to switch to their DeepL API Pro plan. 

Login to post a comment