‹ back to Plainly

Plainly API

Plain-English word definitions, over HTTP. No accounts — just a key and a word.

Get a key

Instant, no email, no signup. Keys are capped at 3 new keys per IP per day, so don't lose it.

curl -X POST https://www.plainly.my.id/api/keys
{
  "apiKey": "8a233d21a25fff35bf268196c6e00655",
  "dailyLimit": 100,
  "note": "Keep this key — there's no account or email tied to it, so it can't be recovered if lost."
}
There's no recovery flow for a lost key — that's a deliberate trade for staying accountless. Requesting a new one is free, just subject to the same daily cap on new keys.

Look up a word

GET https://www.plainly.my.id/api/define?word=ubiquitous

Pass your key as a header (preferred) or a query param:

curl "https://www.plainly.my.id/api/define?word=ubiquitous" \
  -H "x-api-key: YOUR_KEY"

Parameters

NameWhereRequiredDescription
wordqueryyesthe word to define
sensequerynowhich meaning of the word, 0-based (default 0). Words can have several — try bark with sense=1
x-api-keyheaderyes*your API key
keyqueryyes*alternative to the header, if a header is awkward for your client

* one of the two key methods is required

Response

{
  "word": "ubiquitous",
  "partOfSpeech": "adjective",
  "phonetic": "/juːˈbɪkwɪtəs/",
  "respelling": "yoo-BIK-wih-tuss",
  "definition": "something that seems to be everywhere you look.",
  "example": "Smartphones have become ubiquitous in daily life.",
  "exampleSource": "dictionary",
  "memoryHook": "Think ubique = everywhere in Latin — like Wi-Fi that's ubiquitous everywhere you go.",
  "note": null,
  "confusedWith": [],
  "etymology": null,
  "synonyms": ["omnipresent", "pervasive"],
  "antonyms": [],
  "senseIndex": 0,
  "senseCount": 1
}
FieldDescription
respellingan informal phonetic respelling for people who don't read IPA (e.g. "yoo-BIK-wih-tuss") — shown instead of phonetic on the site itself
definitionthe plain-English rewrite — this is the whole point
exampleone natural sentence using the word
exampleSource"dictionary" if adapted from a real dictionary example, "generated" if written fresh because the source had none
memoryHookone short vivid line that makes the word stick — a root, image, or tiny scenario. Often null for older cached words; new lookups fill it in
noteonly present when the original dictionary definition itself used another genuinely hard word to explain this one
confusedWithan array of well-known confusable words (e.g. affect/effect), each with a one-line distinction. Usually empty — most words don't have one
etymologyword origin/history, straight from the source dictionary — almost always null right now, since the underlying data source has stopped reliably providing this regardless of word
synonyms / antonymsfrom the source dictionary, not AI-generated. Capped at 6 each, often empty for less common words
senseCounthow many total meanings this word has (capped at 4)

Rate limits

Every response includes your current standing:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 97

Self-serve keys get 100 requests/day. Repeat lookups for the same word (and sense) are cached, so they don't count against Mistral usage — they're still fast either way.

Errors

StatusMeaning
400missing the word parameter
401missing or invalid API key
404no dictionary entry found for that word
429daily rate limit reached — resets at midnight UTC
502the dictionary or simplification step failed upstream — safe to retry

A note on reliability

This is a small personal project, not a commercial product — there's no uptime guarantee or support SLA. It's free to use within the rate limits above. If you're building something that depends on it heavily, keep a fallback in mind.