Cambridge APIcambridge.org ↗
Access Cambridge Dictionary definitions, phonetics, example sentences, themed word lists, and Cambridge Core journal article citations with DOIs via 4 endpoints.
What is the Cambridge API?
This API provides 4 endpoints covering two Cambridge properties: vocabulary data from Cambridge Dictionary and academic article metadata from Cambridge Core. The get_vocabulary_entry endpoint returns per-word entries with IPA phonetics, part-of-speech tags, definitions, and example sentences. The get_journal_issue_articles endpoint retrieves all articles in a journal issue including authors, citations, and DOIs.
curl -X GET 'https://api.parse.bot/scraper/b8e63f43-fbe4-4ae1-9a51-2879407fca77/search_vocabulary?query=apple&dataset=english' \ -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 cambridge-org-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.
from parse_apis.cambridge_resources_api import Cambridge, Dataset, Suggestion, Word, Theme, JournalIssue
cambridge = Cambridge()
# Search for vocabulary suggestions in English
for suggestion in cambridge.words.search(query="run", dataset=Dataset.ENGLISH):
print(suggestion.word, suggestion.url, suggestion.beta)
# Get a detailed dictionary entry
entry = cambridge.words.get(word="hello")
print(entry.word, entry.url)
for de in entry.entries:
print(de.word, de.part_of_speech)
for phonetic in de.phonetics:
print(phonetic.region, phonetic.ipa)
for sense in de.senses:
print(sense.definition)
for ex in sense.examples:
print(ex)
for topic in sense.topics:
print(topic.name, topic.url)
# Get a themed vocabulary list
theme = cambridge.themes.get(theme_path="food/types-of-fruit")
print(theme.theme, theme.words_count, theme.url)
for tw in theme.words:
print(tw.word, tw.url)
# Get journal issue articles
issue = cambridge.journalissues.get(issue_path="/core/journals/acta-neuropsychiatrica/latest-issue")
print(issue.issue_url, issue.articles_count)
for article in issue.articles:
print(article.product_id, article.title, article.doi, article.citation)
Search for vocabulary suggestions using the Cambridge Dictionary autocomplete API. Returns matching words and their search URLs. The server returns up to ~10 suggestions per query prefix.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Search keyword prefix to autocomplete. |
| dataset | string | The dictionary dataset to search in. |
{
"type": "object",
"fields": {
"suggestions": "array of suggestion objects, each with 'word' (string), 'url' (string), and 'beta' (boolean)"
},
"sample": {
"data": {
"suggestions": [
{
"url": "/search/direct/?datasetsearch=english&q=apple",
"beta": false,
"word": "apple"
},
{
"url": "/search/direct/?datasetsearch=english&q=apple+butter",
"beta": false,
"word": "apple butter"
}
]
},
"status": "success"
}
}About the Cambridge API
Dictionary Endpoints
The search_vocabulary endpoint accepts a query string and an optional dataset parameter — verified values include english, english-spanish, and french-english — and returns an array of suggestion objects. Each object contains the matched word, its dictionary url, and a beta boolean flag. This is useful for autocomplete flows or confirming a word exists in a specific Cambridge dataset before fetching a full entry.
The get_vocabulary_entry endpoint takes a word and optional dataset and returns the full structured entry: a url, the queried word, and an entries array. Each entry object includes word, part_of_speech, a phonetics array with per-region IPA transcriptions, and a senses array covering definitions and example sentences. The get_vocabulary_theme endpoint accepts a theme_path (e.g. food/types-of-fruit) or a full Cambridge Dictionary topic URL and returns the theme name, a words array with each word and its dictionary URL, and a words_count integer.
Cambridge Core Journal Endpoint
The get_journal_issue_articles endpoint accepts an issue_path — either a path like /core/journals/language-teaching/latest-issue or a full URL — and returns an articles array with per-article fields: product_id, title, link, authors, citation, and doi. The endpoint also returns issue_url and articles_count. Citation and DOI retrieval is best-effort; some articles may return empty values for those fields depending on how the issue is structured in Cambridge Core.
The Cambridge API is a managed, monitored endpoint for cambridge.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when cambridge.org 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 cambridge.org 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?+
- Build autocomplete for a language-learning app using
search_vocabularywith theenglish-spanishdataset - Generate IPA pronunciation guides by extracting
phoneticsarrays fromget_vocabulary_entry - Populate topic-based vocabulary quizzes by fetching word lists with
get_vocabulary_themefor paths likeanimals/insects - Index Cambridge Core journal articles by DOI for a citation management tool using
get_journal_issue_articles - Extract author lists and article titles from a journal's latest issue for academic research tracking
- Compare definitions across bilingual datasets by calling
get_vocabulary_entrywith differentdatasetvalues for the same word - Seed a flashcard deck with themed vocabulary by iterating
wordsreturned fromget_vocabulary_theme
| 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 Cambridge have an official developer API?+
What does `get_vocabulary_entry` return and how does phonetics data differ by region?+
entries array where each entry contains a phonetics array. Each phonetics object includes a region field (e.g. 'uk', 'us') and an ipa field with the transcription for that region. A single word lookup can return multiple phonetics objects covering different regional pronunciations within the same entry.Are word audio pronunciations or inflection tables available?+
phonetics field but do not expose audio file URLs or morphological inflection tables. The API covers definitions, phonetics text, part of speech, and example sentences. You can fork it on Parse and revise to add an endpoint that captures audio URLs or inflected forms.Are all DOIs and citations guaranteed to be populated in `get_journal_issue_articles`?+
citation and doi. Code consuming this endpoint should treat both fields as nullable.Does the API cover Cambridge Core journals beyond a single issue at a time?+
get_journal_issue_articles endpoint targets one issue per call, identified by issue_path. There is no endpoint for listing all issues of a journal or paginating across multiple issues. You can fork it on Parse and revise to add an endpoint that enumerates issue paths for a given journal.