Bulk AI Translator: Website, Files & Datasets (No API Key) avatar

Bulk AI Translator: Website, Files & Datasets (No API Key)

Pricing

from $2.00 / 1,000 translated items

Go to Apify Store
Bulk AI Translator: Website, Files & Datasets (No API Key)

Bulk AI Translator: Website, Files & Datasets (No API Key)

Translate product catalogs, websites, datasets, CSV/XLSX/JSON files and SRT/VTT subtitles into 40+ languages. AI translation with brand-term locking and HTML/placeholder safety. No API key, and repeat runs only pay for what changed.

Pricing

from $2.00 / 1,000 translated items

Rating

0.0

(0)

Developer

youssef farhan

youssef farhan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Translate websites, product catalogs, spreadsheets and subtitles into 40+ languages in bulk, with no API key and no subscription.

What does Bulk AI Translator do?

Bulk AI Translator translates text at scale from four different sources: a list of strings, an Apify dataset produced by any other Actor, a crawled website, or files you host anywhere (PDF, CSV, TSV, XLSX, JSON, SRT, VTT, Markdown, TXT). It returns clean structured rows plus rebuilt, ready-to-download files in the same format you supplied.

You do not need an OpenAI, DeepL, Google Cloud or Lingo API key. You do not need a monthly localization subscription. Billing runs through your Apify account on a pay-per-use basis, and you can call the Actor from the API, run it on a schedule, chain it into integrations, or invoke it from an AI agent through the Apify MCP server.

Two things make it safe for real production data. Brand terms and placeholders survive intact: HTML tags, {{variables}}, %s format strings, URLs, emails and any glossary terms you list are masked before translation and restored afterwards, and any segment that comes back corrupted is retried and then falls back to the source rather than shipping broken output. And repeat runs are cheap: every translated string is cached, so a scheduled re-run of a mostly unchanged catalog only pays for what actually changed.

Why use Bulk AI Translator?

  • Translate a product catalog for a new market without paying per-language subscription tiers.
  • Localize a website by crawling it and getting every page's title, meta description and body text back in your target languages, ready for your CMS.
  • Translate any scraper's output. Run a Store Actor, copy its dataset ID, and get the same rows back in another language. This is the fastest path from foreign-language web data to a dataset your team can actually read.
  • Translate SRT and VTT subtitles with timestamps untouched and cues re-wrapped so lines stay readable after they get longer.
  • Localize spreadsheets and data feeds by pointing it at a CSV or XLSX and getting the same file back, same columns, translated values.
  • Translate PDF documents such as manuals, guides and reports. Text is extracted per page and returned as clean translated text.
  • Build multilingual RAG and AI training corpora from scraped content.

How to use Bulk AI Translator

  1. Click Try for free.
  2. Pick a mode: Text, Dataset, Website or File.
  3. Fill in the one field that mode needs: your strings, a dataset picked from your account, start URLs, or file URLs. In File mode you can also upload a file straight from your computer.
  4. Pick your target languages from the dropdown. Select as many as you need.
  5. Optionally add glossary terms that must never be translated, and pick a tone.
  6. Click Start, then download the results as JSON, CSV, Excel or HTML.

Everything else already has a sensible default. You can ignore the Limits and advanced section entirely on your first run.

Input

Configure the run on the Input tab, or pass JSON through the API.

{
"mode": "dataset",
"datasetId": "aBcD1234efGh5678",
"fields": ["title", "description"],
"targetLanguages": ["de", "fr", "es"],
"tone": "marketing",
"glossary": ["Acme", "AirFlow Pro"],
"model": "google/gemini-2.5-flash"
}

Website mode instead:

{
"mode": "website",
"startUrls": ["https://example.com"],
"maxPages": 25,
"targetLanguages": ["de"]
}

Output

One row per item and target language. Dataset and file rows also carry the translated fields as extra columns, so a CSV export lands ready to use.

{
"unitId": "item-42",
"kind": "record",
"source": "aBcD1234efGh5678",
"targetLanguage": "de",
"targetLanguageName": "German",
"sourceText": "Hand-poured soy candle with a warm vanilla scent.",
"translatedText": "Handgegossene Sojakerze mit warmem Vanilleduft.",
"title": "Handgegossene Sojakerze mit warmem Vanilleduft.",
"description": "Brennt sauber fur bis zu 45 Stunden.",
"fileUrl": null,
"wordCount": 34,
"segmentCount": 2,
"cacheHits": 0,
"error": null
}

Rebuilt files and translated pages are written to the key-value store, and each row links to its own file through fileUrl. Download everything as JSON, HTML, CSV, or Excel.

Data fields

FieldDescription
unitIdStable identifier for the translated item
kindWhat was translated: text, record, page or file
sourcePage URL, file URL, dataset ID, or input
targetLanguageLanguage code for this row
targetLanguageNameHuman readable language name
sourceTextThe original text, or the item's leading field
translatedTextThe translation
metaDescriptionTranslated meta description (Website mode)
contentTranslated page body text (Website mode)
fileUrlDownload link for the rebuilt file or translated page
wordCountApproximate source word count
segmentCountHow many separate strings the item held
cacheHitsSegments reused from cache, so not re-sent to the model
billedItemsHow many translated-item events this row was charged
errorError message, or null on success

How much does it cost to translate in bulk?

There are two separate charges, and it is worth understanding both before your first big run.

1. This Actor charges for output. Pay-per-event: one event per translated item, one per translated page, and one per rebuilt file. Files also charge per record inside them, so a spreadsheet row, a subtitle cue or a PDF paragraph costs the same as a dataset record. Nothing else. There is no token meter and no word meter here.

2. Model usage is billed separately, not by this Actor. The AI model is run by Apify's OpenRouter integration and charged directly to your Apify account at the model's own rates. Every model in the dropdown shows its real per-million-token price so you can see what you are choosing. Pick a cheap flash-class model and this is a rounding error; pick a top-end model and it is the bulk of your bill.

Free Plan warning: the model integration charges roughly 10x on the Free Plan compared to paid plans, for exactly the same model. If you plan to translate at any volume, an Apify plan pays for itself almost immediately. Alternatively, supply your own OpenRouter API key and pay OpenRouter directly at their normal rates.

Two things keep the total down either way:

  • Cache hits cost no model tokens. Translations are remembered across runs on your account, so re-running a catalog where only 5% of descriptions changed sends only that 5% to the model. The Actor's own per-item fee still applies to every row it writes.
  • Failed segments are never re-sent. A string that could not be translated falls back to its source text rather than burning more tokens on retries.

Free Plan users can also translate at most 10 items into 1 language per run, with a 2 page crawl cap, which is enough to check quality before committing.

Tips

  • Set fields explicitly when translating datasets or spreadsheets. Auto-detection skips IDs, URLs and SKUs, but naming the columns you want is faster and cheaper.
  • Use the glossary for every brand and product name. It costs nothing and prevents the single most common localization embarrassment.
  • Pick marketing tone for ecommerce copy and technical for documentation. The default neutral is fine for data.
  • Schedule it. Because of the cache, a nightly or weekly run over a changing catalog stays cheap.
  • Lower concurrency if you see rate-limit warnings in the log, and raise it for large jobs.

FAQ

Do I need an API key? No. There is no OpenAI, Anthropic, Google, DeepL or Lingo key to create. Model usage is billed through your Apify account by Apify's OpenRouter integration, separately from this Actor's own output charges.

Can I bring my own API key? Yes, optionally. Paste an OpenRouter key into the OpenRouter API key field and translation calls go straight to OpenRouter, billed on your own OpenRouter account at their normal rates instead of through Apify. This is especially worth doing on the Free Plan, where the Apify model integration charges around 10x. Leave the field empty and everything works with no key at all.

Which languages are supported? Any language the underlying model handles, which covers 40+ common languages including German, French, Spanish, Italian, Portuguese, Brazilian Portuguese, Dutch, Polish, Japanese, Korean, Chinese, Arabic, Hindi and Turkish. Pass a standard language code.

Can it translate PDFs? Yes, PDFs with a real text layer. Text is extracted per page and the translation comes back as plain text with page markers, not as a rebuilt PDF: re-flowing translated text into a fixed layout produces worse output than clean text, since translations change length. Scanned or image-only PDFs are rejected with a clear message rather than silently charged, because they need OCR first.

What happens if I pass an unsupported file type? It is skipped with a warning naming the supported formats. The Actor will not read an unknown binary as text, so you are never charged for garbled output.

Will it break my HTML or template variables? No. Tags, {{variables}}, ${literals}, %s format strings, URLs and emails are masked before translation and restored afterwards. If a placeholder does not survive, that segment is retried and then left as the source text rather than shipped broken.

Can I translate the output of another Actor? Yes, and this is the fastest way to use it. Run any Store Actor, copy its dataset ID from the run's Storage tab, then run this Actor in Dataset mode against that ID.

Is this a Weglot or DeepL API alternative? It solves a similar problem without a monthly subscription or an API key. It translates data and files rather than serving a live translated site, so it fits catalog, dataset, subtitle and content workflows rather than real-time page serving.

Can an AI agent call this Actor? Yes. It is callable through the Apify MCP server, so agents can translate scraped content as a step in a larger workflow.

Is web scraping legal? Scraping publicly available data is generally legal. This Actor only reads pages you point it at, and you are responsible for complying with the terms of the sites you crawl and with copyright and data protection law in your jurisdiction. Do not translate and republish content you do not have the rights to.

Something is wrong or missing. Open a ticket on the Issues tab and it will be looked at.

Support

⚡ Unlock full limits by subscribing to an Apify plan. 💼 Need a custom solution? Reach out at youssefarhan24@gmail.com 🌐 Got a site in mind? Suggest it here