NLLB-200 Website Translator avatar

NLLB-200 Website Translator

Pricing

from $2.00 / 1,000 results

Go to Apify Store
NLLB-200 Website Translator

NLLB-200 Website Translator

Translate any website into 50+ languages. No API key required. Scrapes page content and returns clean original + translated text. Supports English, Spanish, French, German, Portuguese, Chinese, Arabic, Japanese, Korean, and more.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Sheshinmcfly

Sheshinmcfly

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

1

Monthly active users

6 days ago

Last modified

Share

Website Translator — 200+ Languages, No API Key Required

Translate any website into 200+ languages using a multi-provider chain: DeepL (if you have a key) → Meta NLLB-200 via Hugging Face → LibreTranslateMyMemory. The actor automatically falls back to the next provider if one fails or isn't configured, so it works with zero credentials out of the box.

Provide URLs and target language — the actor scrapes the page content, translates it in chunks, and returns the original + translated text in a structured dataset.


What data does it extract?

FieldDescriptionExample
urlPage URLhttps://example.com/about
titlePage title"About us — Acme Corp"
sourceLangInput source language (or auto)auto
detectedSourceLangAuto-detected languageen
targetLangTarget language usedes
providerProvider that translated the contentlibretranslate
sectionsArray of translated sections (one per HTML block)[{tag, original, translated}]
stats.sectionsCountNumber of sections extracted4
stats.charsOriginalCharacters in original text1240
stats.charsTranslatedCharacters in translated text1310
stats.chunksCountAPI chunks sent to provider2
stats.durationMsTranslation time in ms3810
translatedAtISO timestamp"2026-04-21T12:00:00Z"

How to use

  1. Open the actor and paste one or more URLs to translate.
  2. Set Target language using an ISO 639-1 code (es, fr, de, pt, zh, ar, ja, ko, ru, hi, etc.)
  3. (Optional) Add a DeepL or HuggingFace token for higher quality. Leave blank to use free providers automatically.
  4. Run and download results as JSON or CSV.

Provider chain

ProviderQualityLanguagesRequires
DeepL⭐⭐⭐⭐⭐29Free API key (500k chars/month)
HuggingFace NLLB-200⭐⭐⭐⭐200+Free HF token
LibreTranslate⭐⭐⭐30+None (public instances)
MyMemory⭐⭐⭐60+None (1k words/day free)

Use cases

  • International expansion — Translate a competitor's site to understand their value proposition
  • Market research — Read foreign-language e-commerce sites, news portals, or government sources in your language
  • Content localization — Translate documentation, landing pages, or product descriptions at scale
  • SEO research — Analyze foreign-language keyword content without manual translation
  • Academic research — Access non-English sources at scale
  • Monitoring — Detect content changes on foreign-language sites in a readable language

Input parameters

ParameterTypeDefaultDescription
urlsarrayOne or more page URLs to translate (required)
targetLangstringesISO 639-1 target language code
sourceLangstringautoISO 639-1 source code, or auto to detect
providerselectautoPreferred provider (falls back automatically)
deeplApiKeystringDeepL API key (optional, 500k chars/month free)
huggingfaceTokenstringHuggingFace token for NLLB-200 (optional)
libretranslateUrlstringCustom LibreTranslate instance URL (optional)
libretranslateApiKeystringLibreTranslate API key (optional)
mymemoryEmailstringEmail to increase MyMemory quota to 10k words/day
maxCharsPerPageinteger5000Max characters translated per page (500–50,000)
maxPagesinteger10Max pages to translate across all URLs and depths
maxDepthinteger0Crawl depth: 0 = only given URLs, 1–2 = follow links
useSitemapbooleanfalseDiscover pages via sitemap.xml
proxyConfigurationobjectApify proxyProxy settings

Output format

{
"url": "https://example.com/about",
"title": "About us — Acme Corp",
"sourceLang": "auto",
"detectedSourceLang": "en",
"targetLang": "es",
"provider": "libretranslate",
"sections": [
{
"tag": "p",
"original": "Welcome to Acme Corp. We build great products for...",
"translated": "Bienvenido a Acme Corp. Construimos excelentes productos para..."
},
{
"tag": "h1",
"original": "Our Products",
"translated": "Nuestros Productos"
}
],
"stats": {
"sectionsCount": 2,
"charsOriginal": 980,
"charsTranslated": 1020,
"wordsOriginal": 140,
"chunksCount": 1,
"durationMs": 4210
},
"translatedAt": "2026-04-21T12:00:00.000Z"
}

Performance & limits

  • Speed: ~5–15 seconds per page (depends on text length and provider)
  • Concurrency: Sequential (1 page at a time) to respect free-tier rate limits
  • Free tier limits: LibreTranslate/MyMemory work without keys; for high-volume jobs add DeepL or HuggingFace
  • Text limit: Configurable up to 50,000 chars/page via maxCharsPerPage
  • Agent-ready: This actor is compatible with x402 micropayment protocol for autonomous agent use

Pricing

This actor uses Pay Per Event (PPE) pricing: $0.005 per page translated.

PagesEstimated cost
10 pages~$0.05
100 pages~$0.50
500 pages~$2.50

Provider API costs (HuggingFace, DeepL) are separate and billed by those services. The free tiers of all providers are sufficient for most workflows.


FAQ

Do I need API keys? No. LibreTranslate and MyMemory work without any credentials. Keys for DeepL or HuggingFace unlock higher quality and higher quotas.

What language codes do I use? Use standard ISO 639-1 codes: es (Spanish), fr (French), de (German), pt (Portuguese), zh (Chinese), ar (Arabic), ja (Japanese), ko (Korean), ru (Russian), hi (Hindi), etc.

How does the provider fallback work? The actor tries providers in order (DeepL if key provided → HuggingFace if token provided → LibreTranslate → MyMemory). If a provider fails or hits a quota limit, it automatically moves to the next one — transparently.

Can it translate entire sites? Yes. Use maxDepth: 1 or 2 to follow internal links, or enable useSitemap to auto-discover all URLs from the site's sitemap.xml.

What happens to untranslatable content? JavaScript-rendered content, paywalled pages, and very short pages (no meaningful text) are skipped with a warning in the logs.



This actor is designed to process publicly available content only, in compliance with Chilean Law 19.628 on the Protection of Private Life (Ley 19.628 sobre Protección de la Vida Privada) and general data protection principles.

What this actor does NOT collect:

  • Names of natural persons or private individuals
  • Personal identification numbers, private emails, or phone numbers
  • Any data that could identify or profile a specific private individual

What this actor does:

  • Extracts publicly accessible text from web pages (identical to what any browser user would see)
  • Sends that text to the selected translation provider for processing
  • Returns the translated content to the user who initiated the run

Users are solely responsible for ensuring their use of this actor complies with applicable laws, the terms of service of the websites they scrape, and any relevant copyright regulations in their jurisdiction.


Changelog

  • v1.0 — Multi-provider chain (DeepL → HuggingFace NLLB-200 → LibreTranslate → MyMemory), sitemap discovery, configurable crawl depth, PPE pricing