Text Translator: 50 Languages, No API Key icon

AI & documents · Coming soon

Text Translator: 50 Languages, No API Key

Send a list of texts and get translations in 50 languages. The models run inside the Actor. You need no API key or Google or DeepL account.

Built and tested. Prices will be shown after release.

Coming soon to the Apify StoreFollow us on Apify

How it will work: 3 steps

  1. Follow us on ApifyThe tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: Hello world in Texts to translate. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Text Translator turns a list of texts into translations in 50 languages with open-source Argos Translate models that run inside the Actor. No API key, no login and no Google or DeepL account are needed. Each text becomes one Dataset row with the translation, the detected source language and a status.

  • 50 languages, from Albanian to Vietnamese. When there is no direct model for a pair, the text goes through English, and the row shows pivot: "en".
  • No API key and no login. The models are open source (MIT licence) and run on the Apify server. Your texts are not sent to any translation API.
  • Line breaks and HTML tags stay. <p>Free <b>shipping</b></p> becomes <p>Gratis <b>envío</b></p>.
  • Clear status per text. Texts already in the target language, empty texts and numbers are not translated and not billed by characters.

Good for

  • Bulk translation of short and medium texts: product data, reviews, tickets, survey answers.
  • Pipelines that need translation without managing an API key or quota.
  • Teams that do not want to send texts to Google, DeepL or another translation API.

Not a good fit

  • Legal, medical or marketing copy that needs human quality. Open-source models are less accurate than Google or DeepL on difficult texts.
  • Translating whole web pages or documents (PDF, DOCX). The input is plain text or simple HTML strings.
  • More than one target language in one run. Start one run per target language.

Who uses it

Online shops

Translate product data, such as titles and descriptions.

Support teams

Translate tickets, reviews and survey answers in bulk.

Developers

Add translation to a pipeline without an API key or quota.

Price

Prices will be shown after release.

Questions

Do I need an API key or a login?

No. It uses open-source models inside the run. You only need an Apify account.

Are my texts sent to Google or DeepL?

No. Texts are translated on the Apify server.

Can I translate into several languages at once?

Not in one run. Start one run for each target language.

How good is the quality?

It is good for everyday sentences and short product texts. It is lower than paid services on hard texts.

Details

Step by step on Apify
  1. Open the Input tab.
  2. In Texts to translate (texts), add one text per line item, for example Hello world.
  3. Keep Target language (targetLanguage) at the prefilled es (Spanish) or choose another language.
  4. Click Start.
  5. Open the Output tab, view Translations, and check the translation column.
Use cases
TaskInputYou getKey fieldsNext step
Translate product descriptions for a new markettexts, targetLanguageone row per descriptiontranslation, statusexport CSV or JSON, import into your shop
Read customer reviews in one languagetexts, sourceLanguage: "auto"one row per reviewsourceLanguage, translationsentiment or keyword analysis
Translate support tickets for an agent teamtexts from your helpdesk exportone row per ticketindex, translationmatch rows back by index
Tips for better results
  • Try a small sample first to check the quality.
  • Start one run for each target language.
  • Use simple HTML strings. Tags and line breaks stay in place.
Limits and good to know
  • Quality is lower than Google Translate or DeepL on long or difficult sentences. Check important texts
  • Single words and very short texts can be detected as the wrong language. Set sourceLanguage if you know it
  • A single Japanese word can get a wrong translation. Short sentences work better than single words
  • Repeated symbols can change, for example ★★★★★ can come back with a different number of stars
  • Inline HTML fragments are translated one by one, so word order around tags can be less natural
  • Pairs that go through English (pivot: "en") are slower and can lose some meaning

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
[
  {
    "index": 0,
    "text": "Hello world",
    "translation": "Hola mundo",
    "sourceLanguage": "en",
    "targetLanguage": "es",
    "pivot": null,
    "chars": 11,
    "status": "translated",
    "error": null
  },
  {
    "index": 1,
    "text": "<p>Free <b>shipping</b> on orders over $50.</p>",
    "translation": "<p>Gratis <b>envío</b> por órdenes de más de $50.</p>",
    "sourceLanguage": "en",
    "targetLanguage": "es",
    "pivot": null,
    "chars": 47,
    "status": "translated",
    "error": null
  },
  {
    "index": 2,
    "text": "Ce produit est arrivé cassé. Remboursement SVP !",
    "translation": "Este producto se rompió. ¡Reembolso por favor!",
    "sourceLanguage": "fr",
    "targetLanguage": "es",
    "pivot": "en",
    "chars": 48,
    "status": "translated",
    "error": null
  }
]
Data fields (14)
FieldTypeMeaning
indexintegerPosition of the text in the input list, starting at 0.
textstringOriginal text.
translationstringTranslated text with the original line breaks; the original text for unchanged and empty rows; null on errors.
sourceLanguagestringSource language code used (given or detected).
detectedLanguagestringLanguage detected automatically; null when sourceLanguage was set.
detectionConfidencenumberDetection confidence 0–1; low values are common for texts of a few words.
targetLanguagestringTarget language code.
enginestringTranslation engine: argos-translate (open-source models, run inside the Actor).
modelstringModel(s) used with versions, e.g. de→en 1.3 + en→es 1.0.
pivotstringen when the text was translated through English, otherwise null.
charsintegerCharacters in the original text; translated rows are billed by these characters.
statusstringtranslated, unchanged (already in the target language or no letters), empty, unsupported_language, skipped (cost limit, timeout or abort; free) or error (free). Only translated rows count characters.
errorobject{code, message} when the text was not translated.
translatedAtstringTime the row was finished, ISO 8601 UTC.
Input settings (3)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Texts to translate requiredtextsarray["Hello world"]
Target language requiredtargetLanguagestring"es"
Source languagesourceLanguagestring"auto"

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure