A word-of-the-day API for word games.
GET /?{mode}&{filters}
Selection mode (one required):
| Param | Description |
|---|---|
?day |
Today's word (deterministic, same for everyone) |
?random |
Random word |
?seed=X |
Seeded random (deterministic for a given seed) |
?seed=X&day |
Seeded daily word (different seeds = different daily words) |
Filters (optional):
| Param | Description |
|---|---|
?theme=animal |
Filter by theme (use + for multiple:
animal+plant)
|
?length=5 |
Exact letter count (3–12) |
?difficulty=2 |
Filter by difficulty (1–5, or range: 1-3) |
?syllables=2 |
Filter by syllable count (or range: 1-3) |
?etymology=latin |
Filter by root language (case-insensitive) |
Extras (optional, comma-separated or all):
| Param | Description |
|---|---|
?extra=taxonomy |
Biological taxonomy (animal/plant) |
?extra=definition |
Short dictionary definition |
?extra=etymology |
Root language |
?extra=ipa |
IPA pronunciation |
?extra=syllables |
Syllable count |
?extra=pos |
Part of speech |
?extra=difficulty |
Difficulty rating (1–5) |
?extra=all |
All of the above |
Examples:
curl 'words.example.com/?day&theme=general&length=5&difficulty=1-2'
{"word":"about","day":452,"pool":232}
curl 'words.example.com/?day&theme=general&length=5&extra=all'
{"word":"abide","day":452,"pool":374,"definition":"to accept or tolerate","etymology":"Old English","ipa":"əˈbaɪd","syllables":2,"pos":"verb","difficulty":2}
curl 'words.example.com/?seed=myapp&day&theme=plant&extra=taxonomy'
{"word":"daisy","day":452,"pool":44,"taxonomy":["Plantae","Tracheophyta","Magnoliopsida","Asterales","Asteraceae","Bellis"]}
GET /lookup/{word}[?extra=all]
Check which themes a word belongs to, with optional metadata.
curl 'words.example.com/lookup/mouse?extra=taxonomy'
{"themes":["animal"],"taxonomy":["Animalia","Chordata","Mammalia","Rodentia","Muridae","Mus"]}
curl 'words.example.com/lookup/olive?extra=all'
{"themes":["plant","food","colour"]}
Returns 404 if the word is not in any word list.
GET /list[?theme=animal&length=5]
Returns all words matching the given filters as a JSON array.
curl 'words.example.com/list?theme=animal&length=5'
["eagle","finch","goose","horse","hyena","koala","lemur","llama","moose","mouse","otter","panda","quail","raven","robin","shark","sheep","shrew","skunk","sloth","snail","snake","squid","stork","swift","tiger","trout","viper","whale","zebra","crane"]
GET /themes
Returns available themes with word counts and available lengths.
curl 'words.example.com/themes'
[{"theme":"general","count":80,"lengths":[5]},{"theme":"animal","count":60,"lengths":[3,4,5]}, ...]
| Theme | Description |
|---|---|
general |
Common English words |
animal |
Animals (with taxonomy data) |
plant |
Plants (with taxonomy data) |
food |
Foods and ingredients |
colour |
Colour names |
place |
Geographic/landscape words |
body |
Body parts |
nonsense |
Convincing fake words |
All words avoid regional spelling variants (no colour/color
ambiguity) and are sourced from OED and Merriam-Webster definitions. The
nonsense theme contains plausible-sounding words that do not
exist in any dictionary.