Bulk Text Translator — Translate Texts & Datasets
Pricing
from $0.005 / actor start
Bulk Text Translator — Translate Texts & Datasets
Translate thousands of texts, reviews, product titles or any Apify dataset into 100+ languages with automatic language detection. No API key, no character limit, several target languages per run. Cheaper alternative to Google Translate and DeepL APIs.
Pricing
from $0.005 / actor start
Rating
0.0
(0)
Developer
Istmobot
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
Share
Bulk Text Translator — translate texts & Apify datasets into 100+ languages
Translate thousands of texts at once: reviews, comments, product titles and descriptions, captions, articles or any field of an Apify dataset, into 100+ languages, with automatic language detection. No API key, no character limit, several target languages in one run. A cheap alternative to the Google Translate API and DeepL API.
Why use it?
- Translate other scrapers' results. Pass a
datasetIdfrom any Actor run (TikTok, Instagram, Google Maps reviews, Amazon, Google News, App Store reviews…) and the fields to translate. Every item comes back with<field>_<language>added, e.g.text_en,title_es. - Several languages at once:
["en", "es", "pt", "fr"]. - Auto-detects the source language of every text and returns it.
- Any length: long texts are split at sentence boundaries and stitched back.
- Fast: hundreds of texts per request batch. 6,000 translations take a few minutes.
- Fair billing: texts already in the target language are returned unchanged and not charged.
How much does it cost?
| Event | Price |
|---|---|
| Actor start | $0.005 per run |
translation | $0.001 per text per target language (per started 4,500 characters) |
That is about $0.25 per million characters of short texts, versus $20 per million on the Google Cloud Translation API. Errors are free. The free plan's $5 monthly credit covers about 5,000 translations.
Input
| Field | Default | Description |
|---|---|---|
texts | – | Texts to translate, one per line |
targetLanguages | ["en"] | Language codes: en, es, pt, fr, de, it, ja, ko, zh-CN, zh-TW, ar, hi, ru, tr, id, vi, th… |
sourceLanguage | auto | Source language code, or auto-detect |
datasetId | – | Translate an existing Apify dataset |
fields | – | Dataset fields to translate (dot paths allowed, e.g. author.bio) |
maxItems | 10000 | Max texts or dataset items |
Translate texts:
{ "texts": ["Great product, fast shipping!", "Llegó roto."], "targetLanguages": ["en", "de"] }
Translate the reviews from another run:
{ "datasetId": "<DATASET_ID_FROM_ANOTHER_RUN>", "fields": ["title", "text"], "targetLanguages": ["en"] }
Output
Text mode, one item per text and language:
{ "index": 1, "text": "Llegó roto.", "translatedText": "It arrived broken.", "sourceLanguage": "es", "targetLanguage": "en", "characters": 11 }
Dataset mode: the original item plus translated fields:
{ "rating": 1, "text": "Updated my iPad and now WhatsApp will not stay open", "text_es": "Actualicé mi iPad y ahora WhatsApp no se queda abierto", "text_sourceLanguage": "en", "_sourceIndex": 0 }
Chain it after any scraper
In Apify Console, add an integration on your scraper ("Run Actor" on success) that starts Bulk Text Translator with {"datasetId": "{{resource.defaultDatasetId}}", "fields": ["text"]}. Every new scrape is translated automatically. Works the same from Make, Zapier, n8n or the API:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("istmobot/bulk-text-translator").call(run_input={"texts": ["Bonjour tout le monde"], "targetLanguages": ["en", "es"]})for t in client.dataset(run["defaultDatasetId"]).iterate_items():print(t["targetLanguage"], t["translatedText"])
FAQ
Which translation engine? Google's neural machine translation, the same engine used for page translation in Chrome.
Is formatting kept? Line breaks are kept. Text is translated as plain text.