Datamuse

Education API · Works globally · Words and language · No API key

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})")
Rhymes with time: 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), and rel_cns (consonant match).
What do the scores mean?
Each word has a score field 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 sp parameter 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 max parameter 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