TL;DR
Datamuse is a powerful word-finding API that goes far beyond a dictionary. Find words that rhyme, have a similar meaning, are associated with a topic, sound like another word, or fit a spelling pattern. Powered by a comprehensive linguistic database, it's ideal for poetry writing, songwriting, crossword solving, word games, and search query expansion. The API is fast, returns JSON, and has no authentication requirements.
Quick start: https://api.datamuse.com/words?ml=ringing+in+the+ears
No API key needed — just make a request!
How to Use This API
1. Words with Similar Meaning
https://api.datamuse.com/words?ml=ringing+in+the+ears
Returns: tinnitus, buzz, hum, ringing, roar, sound, noise
2. Perfect Rhymes
https://api.datamuse.com/words?rel_rhy=time
Returns: chime, climb, crime, dime, grime, lime, mime, prime, slime
3. Words that Describe a Topic
https://api.datamuse.com/words?rel_jjb=ocean
Adjectives commonly used with ocean: deep, blue, open, vast, Atlantic, Pacific
4. JavaScript — Poetry Helper
async function findRhymes(word) {
const resp = await fetch(
`https://api.datamuse.com/words?rel_rhy=${word}`
);
const words = await resp.json();
return words.slice(0, 10).map(w => w.word);
}
findRhymes('moon').then(rhymes => {
console.log('Words that rhyme with moon:', rhymes);
});
5. Python — Synonyms Explorer
import requests
word = 'happy'
data = requests.get(
'https://api.datamuse.com/words',
params={'rel_syn': word}
).json()
print(f"Synonyms for '{word}':")
for entry in data[:15]:
score = entry.get('score', 0)
print(f" {entry['word']} (score: {score})")
https://api.datamuse.com/words?rel_rhy=time
Frequently Asked Questions
- What word relationships does Datamuse support?
- Major relation codes:
rel_rhy(perfect rhymes),rel_nry(approximate rhymes),rel_syn(synonyms),rel_jjb(adjectives for a noun),rel_jja(nouns modified by adjective),rel_trg(triggers/associations),rel_hom(homophones), andrel_cns(consonant match). - What do the scores mean?
- Each word has a
scorefield indicating relevance. Higher scores are more closely related to the query. Scores are relative to the result set, not absolute. - Can I search for words matching a pattern?
- Yes! Use the
spparameter with pattern matching:?sp=????(4-letter words),?sp=*zzle*(words containing "zzle"),?sp=b?t(bat, bit, but, bet). - How many results can I get?
- Results are capped at around 1000 per query. Most relationship searches return the most relevant results first. Use the
maxparameter to limit results. - Is there a rate limit?
- Datamuse is free with no documented rate limits. It's designed to handle high-volume requests for word game applications and writing tools.
- Can I combine multiple constraints?
- Yes, you can combine parameters:
?ml=ocean&rel_jjb=&sp=?????finds 5-letter adjectives describing an ocean. The API is composable and flexible.
API Details
- API URL
https://api.datamuse.com/words- Documentation
- www.datamuse.com/api
- Category
- Education
- Authentication
- Not Required
- Geographic Coverage
- Global — English language
What You Can Build
- Songwriting assistant suggesting rhymes and related words
- Crossword solver that finds words matching a pattern
- Poetry generator with syllable counting and rhyme detection
- Word game (like Scrabble or Wordle) helper for finding possibilities
- Search query expansion tool that adds synonyms to improve results