Thesaurus APIthesaurus.com ↗
Retrieve synonyms, antonyms, related words, usage examples, and Word of the Day from Thesaurus.com. Two endpoints, similarity scores included.
What is the Thesaurus API?
The Thesaurus.com API provides two endpoints covering word lookup and daily vocabulary content. The get_word_details endpoint returns structured synonym and antonym sets with per-word similarity scores, part-of-speech groupings, definitions, usage examples, and related words for any English headword. The get_word_of_the_day endpoint delivers the current featured word with its definition, pronunciation, and example sentence.
curl -X GET 'https://api.parse.bot/scraper/612a118a-3712-4634-aed3-34d6ea47595f/get_word_details?word=happy' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace thesaurus-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Thesaurus.com SDK — look up words, explore synonyms, get the Word of the Day."""
from parse_apis.thesaurus_com_api import Thesaurus, Word, WordOfTheDay, WordNotFound
client = Thesaurus()
# Look up a word — returns typed Word with senses, examples, related words.
word = client.words.get(word="happy")
print(f"Word: {word.word}, total related: {word.total_words_count}")
# Explore the first sense's synonyms and antonyms.
sense = word.senses[0]
print(f" [{sense.part_of_speech}] {sense.definition}")
for syn in sense.synonyms[:3]:
print(f" synonym: {syn.word} (similarity={syn.similarity})")
for ant in sense.antonyms[:2]:
print(f" antonym: {ant.word} (similarity={ant.similarity})")
# Print usage examples and related words.
if word.examples:
print(f" Example: {word.examples[0]}")
if word.related_words:
print(f" Related: {', '.join(word.related_words[:5])}")
# Fetch today's Word of the Day.
wotd = client.wordofthedays.today()
print(f"\nWord of the Day: {wotd.headword} ({wotd.part_of_speech})")
print(f" Definition: {wotd.definition}")
print(f" Pronunciation: {wotd.pronunciation.phonetics}")
print(f" Example: {wotd.example_sentence}")
# Handle a word that doesn't exist gracefully.
try:
client.words.get(word="xyznotaword123")
except WordNotFound as exc:
print(f"\nCaught WordNotFound: {exc.word}")
print("\nExercised: words.get / wordofthedays.today / WordNotFound error handling")
Retrieves synonyms, antonyms, usage examples, and related words for a given word. Each sense groups synonyms and antonyms by part of speech and definition, with a numeric similarity score indicating closeness. Related words are drawn from a broader set of associated terms. The total_words_count reflects the headline count displayed on the page. Paginates as a single page — all senses are returned in one response.
| Param | Type | Description |
|---|---|---|
| wordrequired | string | The word to look up (e.g. 'happy', 'run', 'beautiful'). |
{
"type": "object",
"fields": {
"word": "string — the headword as displayed on the page",
"senses": "array of Sense objects, each with part_of_speech, definition, synonyms, and antonyms",
"examples": "array of strings — usage example sentences",
"source_url": "string — the canonical URL fetched",
"related_words": "array of strings — related words and phrases",
"total_words_count": "integer or null — total number of synonyms/antonyms reported on the page"
},
"sample": {
"data": {
"word": "happy",
"senses": [
{
"antonyms": [
{
"word": "depressed",
"similarity": -100
},
{
"word": "sad",
"similarity": -100
}
],
"synonyms": [
{
"word": "cheerful",
"similarity": 100
},
{
"word": "delighted",
"similarity": 100
}
],
"definition": "in high spirits; delighted",
"part_of_speech": "ADJECTIVE"
}
],
"examples": [
"Andrea said that she'd wished for a happy life together."
],
"source_url": "https://www.thesaurus.com/browse/happy",
"related_words": [
"airy",
"animated",
"apt"
],
"total_words_count": 164
},
"status": "success"
}
}About the Thesaurus API
Word Details Endpoint
The get_word_details endpoint accepts a single required parameter, word, and returns data organized into senses — an array of objects each containing a part_of_speech, a definition, a synonyms array, and an antonyms array. Both synonyms and antonyms entries include a word string and a similarity score, which reflects how closely each term matches the headword according to Thesaurus.com's editorial data. The response also includes examples (an array of usage sentences), related_words, the canonical source_url, and a total_words_count integer when available.
Word of the Day Endpoint
The get_word_of_the_day endpoint takes no parameters. It returns today's featured word as headword, along with partOfSpeech, a short definition, a longer explanation covering meaning and etymology, an exampleSentence, and a pronunciation object containing phonetics and an audio_url (which may be null). The date field is a human-readable string such as "May 7, 2026".
Data Structure Notes
Synonyms and antonyms are grouped by sense, not flattened into a single list. A word with multiple parts of speech (e.g., "run" as a noun and a verb) will produce multiple objects inside senses, each with its own synonym and antonym arrays. The total_words_count field reflects the aggregate count reported for the headword and may be null if the source does not expose a figure for that entry.
The Thesaurus API is a managed, monitored endpoint for thesaurus.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when thesaurus.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official thesaurus.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Building a writing assistant that suggests synonyms ranked by similarity score for a given word
- Populating a vocabulary quiz app with daily questions drawn from
get_word_of_the_day - Augmenting NLP pipelines with antonym sets grouped by part of speech
- Generating word relationship graphs using the
related_wordsarray fromget_word_details - Delivering a daily push notification to language-learning app users with the Word of the Day definition and example sentence
- Cross-referencing usage examples against a corpus to identify context-appropriate synonyms
- Filtering synonym suggestions by part of speech to enforce grammatical consistency in automated text editing
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Thesaurus.com offer an official developer API?+
What does the similarity score in the synonyms and antonyms arrays represent?+
synonyms and antonyms arrays includes a similarity field that reflects the editorial strength-of-match rating Thesaurus.com assigns to that word relative to the headword. Higher values indicate a closer match. The score is a property of the source data, not a computed value added by this API.Are historical Word of the Day entries accessible through the API?+
get_word_of_the_day endpoint returns only the current day's word and does not expose an archive of past entries. You can fork this API on Parse and revise it to add an endpoint targeting historical Word of the Day URLs if that archive is accessible.Does the API cover words in languages other than English?+
Can I look up multiple words in a single request to `get_word_details`?+
get_word_details endpoint accepts one word parameter per request and returns data for that single headword. Batch lookups are not supported natively. You would need to make one request per word and aggregate the results client-side.