DeepL Bulk Text Translator
Pricing
from $0.80 / 1,000 unit charges
DeepL Bulk Text Translator
Translate a list of texts with DeepL, no API key needed. Set the source and target language once, translate hundreds of strings in one run. Auto-detects source language, trims free-tier text at sentence breaks, and returns original text, translation, and language pair per item.
Pricing
from $0.80 / 1,000 unit charges
Rating
0.0
(0)
Developer
Vladimir Efimenco
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
๐ DeepL Bulk Text Translator
Batch translate text with DeepL, no API key needed. Give it a list of texts, pick a source and target language once, get every translation back as clean structured data.
๐ค What this does
This actor is a bulk text translator built on DeepL, so you don't need your own DeepL API key or subscription to translate text in bulk. Send a list of strings, choose the language to translate from (or let it auto detect), choose the language to translate to, and it returns each item translated and paired with the original.
No DeepL account to set up, no character limits to track yourself, no separate billing. You pay per character translated through your existing Apify account.
๐ฏ Who this is for
- Developers who need to batch translate scraped content, product descriptions, or reviews without wiring up the DeepL API directly
- Teams translating support tickets, user generated content, or datasets for NLP and localization work
- Anyone building an automation pipeline (Make, Zapier, n8n, custom scripts) who wants DeepL quality translation without managing API credentials
- People who want to try DeepL bulk translation before committing to a DeepL Pro plan
โ Why use this instead of the raw DeepL API
- No API key setup. Skip creating a DeepL account, generating a key, and handling auth headers just to translate a batch of strings.
- Pay only for what you translate. No monthly base fee. You're charged per 100 characters, only when a translation succeeds.
- Built in language list. Over 30 languages selectable by name, not by looking up ISO codes.
- Sentence aware trimming on the free tier. If your text goes over the free limit, it gets cut at a sentence boundary instead of mid word.
- Runs anywhere Apify runs. Trigger it from the Apify API, schedule it, or chain it with other actors in your workflow.
๐ป Usage examples
Python (apify-client)
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run_input = {"queries": ["Hello, how are you?","Where is the nearest train station?",],"fromLang": "Auto Detect","toLang": "German",}run = client.actor("mof1re/deepl-bulk-text-translator").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["original"], "->", item["translated"])
Python (async, apify-client)
import asynciofrom apify_client import ApifyClientAsyncasync def main():client = ApifyClientAsync("<YOUR_API_TOKEN>")run_input = {"queries": ["Good morning", "See you tomorrow"],"fromLang": "English (American)","toLang": "Spanish",}run = await client.actor("mof1re/deepl-bulk-text-translator").call(run_input=run_input)items = await client.dataset(run["defaultDatasetId"]).list_items()for item in items.items:print(item["original"], "->", item["translated"])asyncio.run(main())
cURL
curl "https://api.apify.com/v2/acts/mof1re~deepl-bulk-text-translator/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"queries": ["Hello world", "Thank you very much"],"fromLang": "Auto Detect","toLang": "French"}'
๐ฆ Input
| Field | Type | Description |
|---|---|---|
queries | array of strings | The texts to translate, one item each |
fromLang | string | Source language, or Auto Detect (default) |
toLang | string | Target language (default: English (American)) |
๐ Dataset output
This actor produces a dataset of translated text, one row per item:
| Field | Description |
|---|---|
original | The text you submitted |
translated | The translated text |
from_lang | Source language used |
to_lang | Target language used |
units | Billing units charged for this item (1 unit = 100 characters, rounded up) |
Export the translated dataset as JSON, CSV, Excel, or XML directly from Apify Console, or pull it through the API into your own app.
๐ฐ Pricing
This actor uses Apify's pay-per-event pricing:
- $0.0008 per unit, where 1 unit = 100 characters translated
- Units are calculated per query, not per run. For each text: 1-100 characters = 1 unit, 101-200 characters = 2 units, and so on, rounding up.
- That works out to roughly $8 per million characters translated, well under most standalone translation API rates
- You're only charged for items that translate successfully. Failed or skipped items cost nothing
- No subscription, no monthly minimum, no DeepL account required on your side
๐ Free tier limits
Try the bulk translator before you commit to paid usage:
- 3 runs per day
- Up to 5 texts per run
- Up to roughly 1,000 characters per text (trimmed at the nearest sentence end, so you may get slightly more or less than exactly 1,000)
That's enough to confirm translation quality and check the output format fits your use case. For higher volume batch translation, run it under a paid Apify plan. No input changes needed, the actor detects your plan automatically and switches to full speed.
โก Performance
Paid runs translate through a pool of 5 concurrent workers pulling from a shared queue. As soon as one worker finishes a translation, it picks up the next item immediately, so throughput doesn't wait on the slowest item in a batch. Free tier runs process one text at a time.
๐ง Notes
- Auto detect works well for clearly single language text. For short or ambiguous strings, setting
fromLangexplicitly gives more consistent translation results. - Whitespace and punctuation count toward character totals, same as DeepL's own billing rules.
- The actor never fails a whole run over a single bad item. Any translation error is logged and skipped so the rest of your batch still completes and gets pushed to the dataset.
Built for anyone who needs a DeepL bulk translator, batch text translation, or a no code way to translate a list of strings without touching the DeepL API directly.
๐ See also
Need a scraper for another platform? Check out: