Utilities & AI

Translate API

The Translate API returns machine translation as clean JSON.

7 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary translate endpoint returns translated text with the detected source language and confidence, and you can translate to multiple targets, detect a language, look up a dictionary, list languages and get speech. It is built for localization, chat apps and content pipelines that need translation from one endpoint. One ReefAPI key, one shared credit pool, the standard envelope.

Live example

Real request and response JSON

Captured from the indexed primary action, translate, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/translate/v1/translate",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "text": "Hello, how are you?",
    "target": "es"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "translate",
    "endpoint": "translate",
    "mode": "live",
    "latency_ms": 286.5,
    "record_count": 1,
    "bytes": 135,
    "cache_hit": false,
    "method": "gtx_web_endpoint",
    "source": "google_translate",
    "truncated": false
  },
  "data": {
    "text": "¿Hola, cómo estás?",
    "source_text": "Hello, how are you?",
    "source": "en",
    "target": "es",
    "detected_source": "en",
    "detection_confidence": 0.9896,
    "source_language_name": "English",
    "target_language_name": "Spanish"
  }
}
Actions

What the Translate API does

ActionDescriptionConcrete use caseKey params
translateTranslate text into a single target language. Auto-detects the source by default and returns the detected language + confidence. Supports every script.Ops teams call translate to get translate text into a single target language.text, target, source
translate_multiTranslate the SAME text into MANY target languages in a single call — the multi-target differentiator. Pass up to 60 target codes; returns a translation for each, fanned out concurrently (≈15× faster than calling translate per language).Developer tools call translate_multi to get translate the SAME text into MANY target languages in a single call.text, targets, source
translate_batchTranslate MANY strings into ONE target language in a single call — built for catalogue work (product titles, spec values, category names). Send up to 500 strings as an array and get an array back in the SAME order, index for index. Costs ONE upstream call regardless of how many strings you send, so a 500-title page is one request instead of 500. Items the upstream could not translate are listed in `failed[]` with a reason and come back as text:null — never as an empty string and never silently dropped.Validation workflows call translate_batch to get translate MANY strings into ONE target language in a single call.texts, target, source
detectDetect the language of a piece of text. Returns the detected language code, its name and a confidence score (0-1). Works on any script.Data-quality teams call detect to detect the language of a piece of text.text
dictionaryWord-level dictionary lookup: translate a word/short phrase and get its meanings grouped by part of speech, synonyms, back-translations and transliteration (romanization). Best for single words or short phrases.Ops teams call dictionary to get word-level dictionary lookup.text, target, source
languagesList all supported languages (code → English name). Useful to populate a language picker or validate a code before translating.Developer tools call languages to list all supported languages (code → English name).none
speakText-to-speech: turn text into spoken audio (MP3). Pronounces the text in the chosen language's voice/accent — works with every script (Chinese, Japanese, Arabic, Cyrillic, Turkish…). Long text is split and joined into a single MP3. Returns the audio base64-encoded inline (audio/mpeg), so no second download is needed. Pair it with 'translate' to get spoken translations.Validation workflows call speak to get text-to-speech.text, lang, slow
Code samples

Call translate from your stack

curl -X POST https://api.reefapi.com/translate/v1/translate \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"text":"Hello, how are you?","target":"es"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.translate.translate with {"text":"Hello, how are you?","target":"es"}.
Use cases

Who uses this API and why

  • Chat apps call translate to render messages in a user's language in real time.
  • Localization pipelines use translate_multi to produce many locales at once.
  • Apps use detect and dictionary for language handling and definitions.
FAQ

Questions developers ask before integrating

What is the Translate API?

Translate API is a ReefAPI endpoint group for translate It returns live JSON through POST requests under /translate/v1.

Is the Translate API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Translate calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Translate login or account?

No login to Translate is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Translate data?

The page example is captured from a live translate call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Translate API use?

Translate actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Translate from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call translate actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Translate API a Translate scraper?

It is the managed alternative to a DIY Translate scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same translate back as clean JSON.

Why does my Translate scraper keep getting blocked?

Most Translate scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / translate

Translate

Translate

base /translate/v17 endpoints
post/translate/v1/translate1 credit

Translate text into a single target language. Auto-detects the source by default and returns the detected language + confidence. Supports every script.

ParameterAllowed / rangeDescription
textrequiredThe text to translate. Plain UTF-8 — any script works (Latin, Chinese, Japanese, Arabic, Cyrillic…). Up to 5000 characters per call; longer input is truncated and flagged in meta.truncated.
targetrequiredaf · sq · am · ar · hy · as · ay · az · bm · eu · be · bn · bho · bs · bg · ca · ceb · ny · zh-CN · zh-TW · co · hr · cs · da · dv · doi · nl · en · eo · et · ee · tl · fi · fr · fy · gl · ka · de · el · gn · gu · ht · ha · haw · iw · hi · hmn · hu · is · ig · ilo · id · ga · it · ja · jw · kn · kk · km · rw · gom · ko · kri · ku · ckb · ky · lo · la · lv · ln · lt · lg · lb · mk · mai · mg · ms · ml · mt · mi · mr · mni-Mtei · lus · mn · my · ne · no · or · om · ps · fa · pl · pt · pa · qu · ro · ru · sm · sa · gd · nso · sr · st · sn · sd · si · sk · sl · so · es · su · sw · sv · tg · ta · tt · te · th · ti · ts · tr · tk · ak · uk · ur · ug · uz · vi · cy · xh · yi · yo · zuTarget language code to translate INTO (e.g. 'es', 'fr', 'ja', 'ar'). Must be one of the supported codes (see the 'languages' action). Friendly aliases like 'zh' or 'he' are accepted.
source = autooptionalSource language code (ISO-639-style, e.g. 'en', 'de', 'zh-CN'). Defaults to 'auto' — the language is detected automatically and returned as detected_source. See the 'languages' action for codes.
Try in playground →
post/translate/v1/translate_multi1 credit

Translate the SAME text into MANY target languages in a single call — the multi-target differentiator. Pass up to 60 target codes; returns a translation for each, fanned out concurrently (≈15× faster than calling translate per language).

ParameterAllowed / rangeDescription
textrequiredThe text to translate. Plain UTF-8 — any script works (Latin, Chinese, Japanese, Arabic, Cyrillic…). Up to 5000 characters per call; longer input is truncated and flagged in meta.truncated.
targetsrequiredList of target language codes to translate the SAME text into, in ONE call (e.g. ['es','fr','de','ja','ar']). Accepts a JSON array or a comma-separated string. Up to 60 targets; unknown codes are rejected (never silently skipped).
source = autooptionalSource language code (ISO-639-style, e.g. 'en', 'de', 'zh-CN'). Defaults to 'auto' — the language is detected automatically and returned as detected_source. See the 'languages' action for codes.
Try in playground →
post/translate/v1/translate_batch1 credit

Translate MANY strings into ONE target language in a single call — built for catalogue work (product titles, spec values, category names). Send up to 500 strings as an array and get an array back in the SAME order, index for index. Costs ONE upstream call regardless of how many strings you send, so a 500-title page is one request instead of 500. Items the upstream could not translate are listed in `failed[]` with a reason and come back as text:null — never as an empty string and never silently dropped.

ParameterAllowed / rangeDescription
textsrequiredThe strings to translate, as a JSON array — e.g. a page of product titles or spec values. Order is preserved: result[i] always corresponds to texts[i]. Up to 500 items and 100000 characters total per call, 5000 characters per item. NOTE: pass a real JSON array. A bare string is split on commas (gateway-wide behaviour for array parameters), which would cut a title like 'Trainers, size 42' into two items.
targetrequiredaf · sq · am · ar · hy · as · ay · az · bm · eu · be · bn · bho · bs · bg · ca · ceb · ny · zh-CN · zh-TW · co · hr · cs · da · dv · doi · nl · en · eo · et · ee · tl · fi · fr · fy · gl · ka · de · el · gn · gu · ht · ha · haw · iw · hi · hmn · hu · is · ig · ilo · id · ga · it · ja · jw · kn · kk · km · rw · gom · ko · kri · ku · ckb · ky · lo · la · lv · ln · lt · lg · lb · mk · mai · mg · ms · ml · mt · mi · mr · mni-Mtei · lus · mn · my · ne · no · or · om · ps · fa · pl · pt · pa · qu · ro · ru · sm · sa · gd · nso · sr · st · sn · sd · si · sk · sl · so · es · su · sw · sv · tg · ta · tt · te · th · ti · ts · tr · tk · ak · uk · ur · ug · uz · vi · cy · xh · yi · yo · zuTarget language code to translate INTO (e.g. 'es', 'fr', 'ja', 'ar'). Must be one of the supported codes (see the 'languages' action). Friendly aliases like 'zh' or 'he' are accepted.
source = autooptionalSource language code (ISO-639-style, e.g. 'en', 'de', 'zh-CN'). Defaults to 'auto' — the language is detected automatically and returned as detected_source. See the 'languages' action for codes.
Try in playground →
post/translate/v1/detect1 credit

Detect the language of a piece of text. Returns the detected language code, its name and a confidence score (0-1). Works on any script.

ParameterAllowed / rangeDescription
textrequiredThe text to translate. Plain UTF-8 — any script works (Latin, Chinese, Japanese, Arabic, Cyrillic…). Up to 5000 characters per call; longer input is truncated and flagged in meta.truncated.
Try in playground →
post/translate/v1/dictionary1 credit

Word-level dictionary lookup: translate a word/short phrase and get its meanings grouped by part of speech, synonyms, back-translations and transliteration (romanization). Best for single words or short phrases.

ParameterAllowed / rangeDescription
textrequiredA word or short phrase to look up.
targetrequiredaf · sq · am · ar · hy · as · ay · az · bm · eu · be · bn · bho · bs · bg · ca · ceb · ny · zh-CN · zh-TW · co · hr · cs · da · dv · doi · nl · en · eo · et · ee · tl · fi · fr · fy · gl · ka · de · el · gn · gu · ht · ha · haw · iw · hi · hmn · hu · is · ig · ilo · id · ga · it · ja · jw · kn · kk · km · rw · gom · ko · kri · ku · ckb · ky · lo · la · lv · ln · lt · lg · lb · mk · mai · mg · ms · ml · mt · mi · mr · mni-Mtei · lus · mn · my · ne · no · or · om · ps · fa · pl · pt · pa · qu · ro · ru · sm · sa · gd · nso · sr · st · sn · sd · si · sk · sl · so · es · su · sw · sv · tg · ta · tt · te · th · ti · ts · tr · tk · ak · uk · ur · ug · uz · vi · cy · xh · yi · yo · zuTarget language code to translate INTO (e.g. 'es', 'fr', 'ja', 'ar'). Must be one of the supported codes (see the 'languages' action). Friendly aliases like 'zh' or 'he' are accepted.
source = autooptionalSource language code (ISO-639-style, e.g. 'en', 'de', 'zh-CN'). Defaults to 'auto' — the language is detected automatically and returned as detected_source. See the 'languages' action for codes.
Try in playground →
post/translate/v1/languagesfree

List all supported languages (code → English name). Useful to populate a language picker or validate a code before translating.

Try in playground →
post/translate/v1/speak1 credit

Text-to-speech: turn text into spoken audio (MP3). Pronounces the text in the chosen language's voice/accent — works with every script (Chinese, Japanese, Arabic, Cyrillic, Turkish…). Long text is split and joined into a single MP3. Returns the audio base64-encoded inline (audio/mpeg), so no second download is needed. Pair it with 'translate' to get spoken translations.

ParameterAllowed / rangeDescription
textrequiredThe text to speak aloud. Plain UTF-8 — any script works (Latin, Chinese, Japanese, Arabic, Cyrillic…). Up to 3000 characters; longer text is split into chunks and the audio is joined into one MP3. Longer input than that is truncated and flagged in meta.truncated.
langrequiredaf · sq · am · ar · hy · as · ay · az · bm · eu · be · bn · bho · bs · bg · ca · ceb · ny · zh-CN · zh-TW · co · hr · cs · da · dv · doi · nl · en · eo · et · ee · tl · fi · fr · fy · gl · ka · de · el · gn · gu · ht · ha · haw · iw · hi · hmn · hu · is · ig · ilo · id · ga · it · ja · jw · kn · kk · km · rw · gom · ko · kri · ku · ckb · ky · lo · la · lv · ln · lt · lg · lb · mk · mai · mg · ms · ml · mt · mi · mr · mni-Mtei · lus · mn · my · ne · no · or · om · ps · fa · pl · pt · pa · qu · ro · ru · sm · sa · gd · nso · sr · st · sn · sd · si · sk · sl · so · es · su · sw · sv · tg · ta · tt · te · th · ti · ts · tr · tk · ak · uk · ur · ug · uz · vi · cy · xh · yi · yo · zuLanguage to pronounce the text in (e.g. 'en', 'es', 'ja', 'tr', 'ar'). Determines the voice/accent. Must be a supported code (see the 'languages' action). Friendly aliases like 'zh' or 'he' are accepted.
slow = falseoptionalSpeak slowly (useful for language learning / clear pronunciation). Defaults to false (normal speed).
Try in playground →