words: Find words matching constraints

API: datamuse.com:datamuse-api
Endpoint: /words
Response format: unknown
Auth: unknown
Method: GET
Last Status: 200
Latency: 162ms

Description

Returns a list of words and multiword expressions that match a given set of constraints.

Parameters (24)

lc (string, query, optional)

Left context - words that typically appear immediately to the left of the target word

max (integer, query, optional)

Maximum number of results to return (default: 100, max: 1000)

Constraints: {'minimum': 1, 'maximum': 1000}

md (string, query, optional)

Metadata - include additional data for each word. Combine flags: d=definitions, p=parts of speech, s=syllable count, r=pronunciation, f=frequency. Example: 'dpr' for definitions, parts of speech, and pronunciation

ml (string, query, optional)

Means like - words with a meaning similar to the given word/phrase (loose synonyms)

qe (string, query, optional)

Query echo - if 'qe' is specified, the query is echoed in the tags of the returned metadata

Constraints: {'enum': ['qe']}

rc (string, query, optional)

Right context - words that typically appear immediately to the right of the target word

rel_ant (string, query, optional)

Antonyms of the given word

rel_bga (string, query, optional)

Words that typically follow the given word (bigrams)

rel_bgb (string, query, optional)

Words that typically precede the given word (bigrams)

rel_cns (string, query, optional)

Consonant match - words with the same consonant pattern

rel_com (string, query, optional)

Comprises - words that comprise the given word (components of compound words)

rel_gen (string, query, optional)

Generalization - more general terms for the given word (hypernyms)

rel_hom (string, query, optional)

Homophones - words that sound like the given word but are spelled differently

rel_jja (string, query, optional)

Nouns that are modified by the given adjective

rel_jjb (string, query, optional)

Adjectives that modify the given noun (e.g., 'dog' → 'little', 'old')

rel_nry (string, query, optional)

Approximate rhymes - words that nearly rhyme with the given word

rel_par (string, query, optional)

Part of - words for which the given word is a part (holonyms)

rel_rhy (string, query, optional)

Rhymes - words that rhyme with the given word (exact rhymes)

rel_syn (string, query, optional)

Synonyms of the given word

rel_trg (string, query, optional)

Triggers - words that are statistically associated with the given word (often follow or precede it)

sl (string, query, optional)

Sounds like - words that sound like the given word/phrase

sp (string, query, optional)

Spelled like - words spelled like the given pattern. Use * for any number of wildcards and ? for exactly one wildcard

topics (string, query, optional)

Topic hint - provides context to disambiguate words with multiple meanings

v (string, query, optional)

App identifier - a short identifier for your application (helps with rate limiting)

Examples (2)

Find words matching constraints openapi-spec
curl 'https://api.datamuse.com/words?ml=happy&sl=cat&sp=%2Aate&rel_jjb=dog&rel_jja=big&rel_syn=happy&rel_ant=hot&rel_trg=love&rel_gen=rose&rel_bga=cold&rel_bgb=turkey&rel_rhy=cat&topics=music&md=dprsf&max=10'
import requests

resp = requests.get(
    "https://api.datamuse.com/words",
    params={
        'ml': 'happy',
        'sl': 'cat',
        'sp': '*ate',
        'rel_jjb': 'dog',
        'rel_jja': 'big',
        'rel_syn': 'happy',
        'rel_ant': 'hot',
        'rel_trg': 'love',
        'rel_gen': 'rose',
        'rel_bga': 'cold',
        'rel_bgb': 'turkey',
        'rel_rhy': 'cat',
        'topics': 'music',
        'md': 'dprsf',
        'max': '10',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("datamuse")
result = api.fetch("words", ml="happy", sl="cat", sp="*ate", rel_jjb="dog", rel_jja="big", rel_syn="happy", rel_ant="hot", rel_trg="love", rel_gen="rose", rel_bga="cold", rel_bgb="turkey", rel_rhy="cat", topics="music", md="dprsf", max=10)

for item in result:
    print(item)
const resp = await fetch("https://api.datamuse.com/words?ml=happy&sl=cat&sp=%2Aate&rel_jjb=dog&rel_jja=big&rel_syn=happy&rel_ant=hot&rel_trg=love&rel_gen=rose&rel_bga=cold&rel_bgb=turkey&rel_rhy=cat&topics=music&md=dprsf&max=10");
const data = await resp.json();
Find words matching constraints probe-gate
curl 'https://api.datamuse.com/words?ml=happy&sl=cat&sp=%2Aate&rel_jjb=dog&rel_jja=big&rel_syn=happy&rel_ant=hot&rel_trg=love&rel_gen=rose&rel_bga=cold&rel_bgb=turkey&rel_rhy=cat&topics=music&md=dprsf&max=10'
import requests

resp = requests.get(
    "https://api.datamuse.com/words",
    params={
        'ml': 'happy',
        'sl': 'cat',
        'sp': '*ate',
        'rel_jjb': 'dog',
        'rel_jja': 'big',
        'rel_syn': 'happy',
        'rel_ant': 'hot',
        'rel_trg': 'love',
        'rel_gen': 'rose',
        'rel_bga': 'cold',
        'rel_bgb': 'turkey',
        'rel_rhy': 'cat',
        'topics': 'music',
        'md': 'dprsf',
        'max': '10',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("datamuse")
result = api.fetch("words", ml="happy", sl="cat", sp="*ate", rel_jjb="dog", rel_jja="big", rel_syn="happy", rel_ant="hot", rel_trg="love", rel_gen="rose", rel_bga="cold", rel_bgb="turkey", rel_rhy="cat", topics="music", md="dprsf", max=10)

for item in result:
    print(item)
const resp = await fetch("https://api.datamuse.com/words?ml=happy&sl=cat&sp=%2Aate&rel_jjb=dog&rel_jja=big&rel_syn=happy&rel_ant=hot&rel_trg=love&rel_gen=rose&rel_bga=cold&rel_bgb=turkey&rel_rhy=cat&topics=music&md=dprsf&max=10");
const data = await resp.json();

Probe History

Latency

Status Codes

TimeStatusLatencySize
2026-04-16 17:26:36.858848 200 162ms
2026-04-16 02:34:26.868254 200 348ms
2026-04-16 01:50:37.463503 200 307ms
2026-04-15 01:08:37.739507 200 169ms
2026-04-15 01:00:57.110254 200 175ms
2026-04-14 02:56:38.266735 200 319ms
2026-04-14 02:33:12.365127 200 489ms
2026-04-12 15:27:09.076518 200 293ms
2026-04-12 12:56:17.942820 200 411ms
2026-04-10 00:58:25.741012 200 68ms
2026-04-10 00:30:02.449401 200 74ms
2026-04-09 03:31:45.493845 200 308ms
2026-04-09 02:06:39.940615 200 490ms
2026-04-03T06:05:09.244525 200 315ms