Website Translator (Opus-MT)
Pricing
Pay per event
Website Translator (Opus-MT)
Translate entire webpages while preserving HTML structure using self-hosted Helsinki-NLP Opus-MT models. Supports 15+ languages including Spanish, French, German, Chinese, and Japanese. Fast, affordable, and perfect for content localization, multilingual site generation, and SEO workflows.
Pricing
Pay per event
Rating
0.0
(0)
Developer

Daniel Rosen
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Website Translator
Translates entire webpages while preserving HTML structure. Powered by self-hosted Helsinki-NLP Opus-MT models.
Overview
This Actor fetches a target URL, parses the HTML DOM, extracts visible text content, translates it through a private inference server, and returns the complete document with translated text in place. Scripts, styles, and layout remain intact.
Built for localization workflows, content migration, and multilingual site generation.
Supported Languages
| Code | Language | Code | Language |
|---|---|---|---|
| en | English | pl | Polish |
| es | Spanish | ru | Russian |
| fr | French | zh | Chinese |
| de | German | ja | Japanese |
| it | Italian | ar | Arabic |
| pt | Portuguese | he | Hebrew |
| pt_br | Portuguese (Brazil) | nl | Dutch |
| pt_pt | Portuguese (Portugal) |
Non-English language pairs route through English automatically.
Pricing
| Event | Rate | Description |
|---|---|---|
| page-translated | $0.01 | Per page processed |
| chars-1k | $0.001 | Per 1,000 characters |
Input
| Field | Type | Required | Description |
|---|---|---|---|
| url | String | Yes | Target webpage URL |
| source_language | String | Yes | Source language code |
| target_language | String | Yes | Target language code |
| timeout_seconds | Integer | No | Fetch timeout (default: 30, max: 120) |
{"url": "https://example.com/about","source_language": "en","target_language": "de"}
Output
{"url": "https://example.com/about","source_language": "en","target_language": "de","character_count": 4820,"segment_count": 47,"translated_html": "<!DOCTYPE html>...","status": "success","duration_ms": 1240,"timestamp": "2026-02-05T14:32:00Z"}
Technical Notes
Text is extracted from visible elements only. The following tags are excluded from translation:
<script>, <style>, <code>, <pre>, <noscript>, <svg>, <math>, <template>
Segments are processed in batches of 20. Failed segments retain original text.
Limits: 10 MB HTML, 50,000 characters, 120 second timeout.
API Usage
curl -X POST "https://api.apify.com/v2/acts/USERNAME~opus-mt-translator/runs?token=TOKEN" \-H "Content-Type: application/json" \-d '{"url": "https://example.com", "source_language": "en", "target_language": "fr"}'