Translate Excel, CSV & Websites in Bulk with AI | No API Key
Pricing
from $1.80 / 1,000 translated items
Translate Excel, CSV & Websites in Bulk with AI | No API Key
Translate Excel, CSV and Google Sheets files, whole websites, PDFs and SRT/VTT subtitles into 42 languages in one run, and get the same file back translated. Brand terms, HTML and {{variables}} stay intact, and repeat runs only pay for what changed. No API key needed.
Pricing
from $1.80 / 1,000 translated items
Rating
0.0
(0)
Developer
Youssef Farhan
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
17 hours ago
Last modified
Categories
Share
Bulk AI Translator: Translate Excel, CSV, Websites, PDFs and Subtitles into 40+ Languages (No API Key)
Translate a whole Excel or CSV file, a product catalog, a website, PDFs or SRT subtitles into 40+ languages in one run, and get the same file back translated. No DeepL, Google Cloud or OpenAI API key and no monthly subscription. Brand names, HTML tags and {{variables}} survive intact, and repeat runs only pay for what changed.
What does Bulk AI Translator do?
Bulk AI Translator translates text at scale from four sources:
- a spreadsheet or file you upload or link: Excel (.xlsx), CSV, TSV, JSON, PDF, SRT, VTT, Markdown, TXT,
- a list of texts you paste,
- an Apify dataset produced by any other Actor,
- a crawled website.
It returns clean structured rows plus rebuilt, ready-to-download files in the same format you supplied.
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.
Translate an Excel or CSV file
Upload your spreadsheet and get it back with the same columns, in the same order, with the text translated.
- Upload the file in Or upload a file or spreadsheet, or paste its link in File URLs. Google Sheets and Google Drive links work if the file is shared as "Anyone with the link".
- Pick your target languages. You get one translated file per language.
- Click Start.
- The mode switches itself. Uploading a file or adding a file link runs File mode automatically.
- Text columns are found for you. IDs, SKUs, URLs and numbers are left untouched. To translate only some columns, list them in Fields to translate; if none of the listed fields exist in your file, the text columns are detected automatically instead.
- Your format is kept. A semicolon-separated CSV (the Excel default in much of Europe) comes back semicolon-separated, and an XLSX comes back as XLSX (its first sheet, without cell formatting).
| SKU | Product | Blurb |
|---|---|---|
| MUG-01 | Ceramic coffee mug | Keeps your coffee hot for hours. Dishwasher safe. |
becomes, in French:
| SKU | Product | Blurb |
|---|---|---|
| MUG-01 | Mug en céramique | Garde votre café chaud pendant des heures. Lavable au lave-vaisselle. |
Each translated file is saved in the run's storage and linked from its row through fileUrl.
Why use Bulk AI Translator?
- Translate a product catalog for a new market, with every column and SKU kept in place.
- 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.
- Translate SRT and VTT subtitles with timestamps untouched and cues re-wrapped so lines stay readable after they get longer.
- 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.
Ready-made examples
Open one, click Try it, and the whole setup is filled in for you:
How to use Bulk AI Translator
- Pick a mode: Text, Dataset, Website or File. Uploading a file picks File mode for you.
- Fill in the one field that mode needs: your texts, a dataset from your account, start URLs, or files.
- Pick your target languages from the dropdown. Select as many as you need.
- Optionally add glossary terms that must never be translated, and pick a tone (neutral, formal, casual, marketing or technical).
- 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 on your first run.
Input
Configure the run on the Input tab, or pass JSON through the API.
{"mode": "file","fileUrls": ["https://example.com/catalog.xlsx"],"targetLanguages": ["de", "fr", "es"],"tone": "marketing","glossary": ["Acme", "AirFlow Pro"]}
Dataset mode instead:
{"mode": "dataset","datasetId": "aBcD1234efGh5678","fields": ["title", "description"],"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.
Data fields
| Field | Description |
|---|---|
unitId | Stable identifier for the translated item |
kind | What was translated: text, record, page or file |
source | Page URL, file URL, dataset ID, or input |
targetLanguage | Language code for this row |
targetLanguageName | Human readable language name |
sourceText | The original text, or the item's leading field |
translatedText | The translation |
metaDescription | Translated meta description (Website mode) |
content | Translated page body text (Website mode) |
fileUrl | Download link for the rebuilt file or translated page |
wordCount | Approximate source word count |
segmentCount | How many separate strings the item held |
cacheHits | Segments reused from cache, so not re-sent to the model |
billedItems | How many translated-item events this row was charged |
error | Error message, or null on success |
Supported languages
42 languages in the dropdown, including English, German, French, Spanish, Italian, Portuguese, Brazilian Portuguese, Dutch, Polish, Swedish, Greek, Turkish, Russian, Ukrainian, Arabic, Hebrew, Hindi, Japanese, Korean, Chinese, Indonesian, Vietnamese and Thai. Translate into several languages in the same run.
Supported file formats
| Format | What you get back |
|---|---|
| Excel (.xlsx) | The first sheet's columns and rows, text columns translated (cell formatting is not kept) |
| CSV, TSV | The same columns and delimiter, text columns translated |
| JSON | The same records, text fields translated |
| SRT, VTT subtitles | Timestamps untouched, cues re-wrapped to a readable length |
| PDF (with a text layer) | Clean translated text with page markers |
| Markdown, TXT | Translated text, paragraph by paragraph |
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. There is no token meter and no word meter here. The current rates are shown on this Actor's Store page.
2. Model usage is billed separately, not by this Actor. The AI model runs through Apify's AI integration and is 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. A flash-class model keeps this small; a top-end model makes it 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 quickly. 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 runs translate at most 10 items into 1 language, crawl at most 2 pages and take 1 file, which is enough to check quality before committing.
Tips
- Use the glossary for every brand and product name. It costs nothing and prevents the most common localization mistake.
- Pick
marketingtone for ecommerce copy andtechnicalfor documentation. The defaultneutralis fine for data. - Name the columns in Fields to translate when a file has text columns you want to keep in the original language.
- 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
How do I translate an Excel or CSV file without breaking the columns? Upload it and pick your languages. The file comes back with the same columns, the same order and the same delimiter; only the text columns are translated, and IDs, SKUs, URLs and numbers stay as they were.
Can I translate a Google Sheet? Yes. Share it as "Anyone with the link" and paste the link into File URLs. It is downloaded as an Excel file and comes back translated.
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, 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? 42 languages in the dropdown (see the list above), and you can translate into several at once.
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, 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. Old .xls files need to be saved as .xlsx first.
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. 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 DeepL or Weglot 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 API and 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.
More AI Actors by the same author
- Bulk LLM Runner: run ChatGPT, Claude, Gemini and Perplexity prompts in bulk, or on every row of an Excel file.
- Bulk AI Image Generator: turn a list of prompts or a spreadsheet into images with Nano Banana and GPT Image.
- Bulk Text to Speech: turn texts or a spreadsheet into MP3 voiceovers with subtitles in 75 languages.
⚡ 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