BYTETOOLS

MyMemory Translation API

Free translation API with no key: machine translation plus a human translation memory across 100+ language pairs. 5,000 words/day anonymously. Tested.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 19 Aug 2026

What is the MyMemory Translation API?

MyMemory is a free translation API that combines machine translation with the world's largest translation memory of human-translated segments, supporting over 100 language pairs with no API key required.

MyMemory is distinctive because it searches a translation memory of professionally translated segments before falling back to machine translation. For common phrases you often get a human translation, which reads considerably better than raw MT.

The `match` score tells you which you got: 1.0 indicates an exact human match from the memory, while lower scores indicate fuzzy matches or machine output. Checking that field is the difference between a good integration and a naive one.

Quick facts

Base URL
https://api.mymemory.translated.net
Authentication
No key needed for anonymous use. Adding a valid email via the `de` parameter doubles the daily allowance.
Rate limit
5,000 words per day anonymously; 50,000 per day with an email address supplied.
Pricing
Free at those volumes; paid plans for higher usage.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the MyMemory Translation API

Every request below was executed against the live API on 19 Aug 2026, and the response shown is the real body it returned — not an illustration.

1. Translate text between languages

GET https://api.mymemory.translated.net/get?q=hello&langpair=en|es

curl
curl 'https://api.mymemory.translated.net/get?q=hello&langpair=en|es'
JavaScript (fetch)
const res = await fetch("https://api.mymemory.translated.net/get?q=hello&langpair=en|es");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://api.mymemory.translated.net/get?q=hello&langpair=en|es", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
{
  "responseData": {
    "translatedText": "testvalue",
    "match": 1
  },
  "quotaFinished": false,
  "mtLangSupported": null,
  "responseDetails": "",
  "responseStatus": 200,
  "responderId": null,
  "exception_code": null,
  "matches": [
    {
      "id": "437829924887230034",
      "segment": "hello",
      "translation": "testvalue",
      "source": "en-GB",
      "target": "es-ES",
      "quality": "74",
      "reference": null,
      "usage-count": 4,
      "subject": "All",
      "created-by": "MateCat",
      "last-updated-by": "MateCat",
      "create-date": "2026-07-15 02:13:51",
      "last-update-date": "2026-07-15 02:13:51",
      "match": 1,
      "penalty": 0
    },
    {
      "id": "437829924865166059",
      "segment": "hello",
      "translation": "hello",
      "source": "en-US",
      "target": "es-ES",
      "quality": 74,
      "reference": null,
      "usage-count": 2,
      "subject": "",
      "created-by": "MateCat",
      "last-updated-by": "MateCat",
      "create-date": "2026-04-27 23:56:23",
      "last-update-date": "2026-04-27 23:56:23",
      "match": 0.99,
      "penalty": 0
    },
    {
      "id": "437829924648688591",
      "segment": "hello",
      "translation": "Murciano",
      "source": "en-GB",
      "target": "es-ES",
      "quality": 74,
      "reference": null,
      "usage-count": 4,
      "subject": "",
      "created-by": "MateCat",
      "last-updated-by": "MateCat",
      "create-date": "2024-11-13 20:04:57",
      "last-update-date": "2024-11-13 20:04:57",
      "match": 0.99,
      "penalty": 0
    }
  ]
}

Parameters

ParameterTypeRequiredDescription
qstringRequiredText to translate. URL-encode it. hello
langpairstringRequiredSource and target as `en|es`. en|es
destringOptionalA valid email address, which raises the daily limit. you@example.com
mtintegerOptionalSet to 0 to return only human memory matches. 1

Response fields

responseData.translatedTextstring
The translated text.
responseData.matchnumber
Match quality, 1.0 meaning an exact human translation.
responseStatusinteger
200 on success.
matchesarray
All candidate translations with quality scores and sources.
quotaFinishedboolean
True when the daily allowance is exhausted.

What you can build with the MyMemory Translation API

  • Add translation to a multilingual site or app
  • Localise user-generated content on the fly
  • Pre-translate content for human review
  • Look up professional translations of standard phrases

Common errors and how to fix them

quotaFinished: true

Daily word allowance exhausted.

Fix: Pass a valid email in the `de` parameter to raise the limit from 5,000 to 50,000 words per day.

Poor translation quality

You received machine output rather than a memory match.

Fix: Check `responseData.match` — below 1.0 means it is not an exact human translation.

403 or invalid langpair

Malformed language pair.

Fix: Use ISO codes separated by a pipe, e.g. en|es, and URL-encode the pipe if needed.

MyMemory Translation API — frequently asked questions

Is MyMemory translation free?

Yes, 5,000 words per day anonymously with no API key. Supplying a valid email in the `de` parameter raises that to 50,000 words per day.

What is the match field?

Translation quality. A value of 1.0 means an exact match from the human translation memory; lower values indicate a fuzzy match or machine translation.

How is this different from Google Translate?

MyMemory searches a large memory of professionally translated segments first, so common phrases often return a genuine human translation rather than machine output.

Can I get only human translations?

Yes, pass mt=0 to suppress machine translation and return only translation memory matches — though many queries will then return nothing.

Tools that pair with this API

Alternatives to MyMemory Translation API

If MyMemory Translation does not fit, these text analysis apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.

APIWhat it doesAuthCORSLast verified
LanguageToolFree grammar and spell checking API with no key: detect spelling, grammar and style errors in 25+ languages with suggested corrections. Tested GET and POST.No keyYes19 Aug 2026
PurgoMalumFree profanity filter API with no key: remove or mask offensive words from text, with custom word lists and configurable replacement characters. Tested.No keyYes19 Aug 2026
LibreTranslateFree open-source translation API: self-hostable machine translation across 30+ languages with no data sent to commercial providers. Tested curl example.No keyYes20 Aug 2026
EmojiHubFree emoji API with no key: random or filtered emoji with names, categories, groups, HTML entity codes and Unicode code points. Tested curl example.No keyNo20 Aug 2026
RhymeBrainFree rhyming dictionary API with no key: rhymes scored and ranked, with syllable counts and frequency, plus portmanteau and word-info functions. Tested example included.No keyYes21 Aug 2026
text-processing.com SentimentFree sentiment analysis API with no key: POST a block of text, get back a positive, negative or neutral label with probabilities for each class. Tested example included.No keyNo21 Aug 2026
All Text Analysis APIs

MyMemory Translation is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 19 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.