DeepL Bulk Text Translator avatar

DeepL Bulk Text Translator

Pricing

from $0.80 / 1,000 unit charges

Go to Apify Store
DeepL Bulk Text Translator

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

Vladimir Efimenco

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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 ApifyClient
client = 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 asyncio
from apify_client import ApifyClientAsync
async 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

FieldTypeDescription
queriesarray of stringsThe texts to translate, one item each
fromLangstringSource language, or Auto Detect (default)
toLangstringTarget language (default: English (American))

๐Ÿ“Š Dataset output

This actor produces a dataset of translated text, one row per item:

FieldDescription
originalThe text you submitted
translatedThe translated text
from_langSource language used
to_langTarget language used
unitsBilling 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 fromLang explicitly 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: