‹ 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://jxbepiilqzaggiuzqmrp.functions.supabase.co/api-key-request
{
  "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://jxbepiilqzaggiuzqmrp.functions.supabase.co/api-define?word=ubiquitous

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

curl "https://jxbepiilqzaggiuzqmrp.functions.supabase.co/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/",
  "definition": "something that seems to be everywhere you look.",
  "example": "Smartphones have become ubiquitous in daily life.",
  "exampleSource": "dictionary",
  "note": null,
  "confusedWith": [],
  "senseIndex": 0,
  "senseCount": 1
}
FieldDescription
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
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
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.