DWDS APIdwds.de ↗
Access DWDS dictionary entries, IPA pronunciations, frequency classes, usage examples, and Goethe A1 vocabulary lists via 5 structured endpoints.
What is the DWDS API?
The DWDS API exposes 5 endpoints covering the Digital Dictionary of the German Language, returning structured data including IPA pronunciations, frequency classes (0–6 scale), grammatical gender, and usage examples. The get_word_details endpoint alone surfaces 7 distinct response fields per word, while get_goethe_a1_word_list delivers the complete Goethe-Zertifikat A1 vocabulary set with part-of-speech tags, articles, and direct links to canonical DWDS entries.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/4f3782fd-0bfe-43ef-b024-299e2e06093c/get_goethe_a1_word_list' \ -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 dwds-de-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.dwds_german_dictionary_api import DWDS, WordDetail, SearchResult, ArticleOfTheDay, WordNotFound
dwds = DWDS()
# Search for a word
for result in dwds.searchresults.search(query="Wasser"):
print(result.lemma, result.wortart, result.url)
# Get detailed information for a word
detail = dwds.worddetails.get(word="Haus")
print(detail.word, detail.ipa, detail.frequency)
for meaning in detail.meanings[:3]:
print(meaning)
# Browse A1 vocabulary
for entry in dwds.vocabularyentries.list_a1(limit=5):
print(entry.pos, entry.url)
for form in entry.sch:
print(form.lemma, form.hidx)
# Get random entries
for entry in dwds.randomentries.list():
print(entry.lemma, entry.pos, entry.date)
# Get word of the day
for article in dwds.articleofthedays.list(limit=3):
print(article.title, article.link, article.updated)
Fetch the complete Goethe-Zertifikat A1 vocabulary list. Returns all ~650 entries with part of speech, lemma, URL, and grammatical information (gender, articles). No pagination — the full list is returned in one call.
No input parameters required.
{
"type": "object",
"fields": {
"items": "array of vocabulary entry objects with pos, sch, url, genera, articles"
},
"sample": {
"data": {
"items": [
{
"pos": "Symbol",
"sch": [
{
"hidx": null,
"lemma": "%"
}
],
"url": "https://www.dwds.de/wb/%25",
"genera": [],
"articles": []
},
{
"pos": "Symbol",
"sch": [
{
"hidx": null,
"lemma": "&"
}
],
"url": "https://www.dwds.de/wb/%26",
"genera": [],
"articles": []
}
]
},
"status": "success"
}
}About the DWDS API
Word Lookup and Details
The get_word_details endpoint accepts a single word parameter and returns a detailed profile of any German word: ipa (IPA transcription string or null), frequency (integer 0–6, where 6 is most frequent in corpus), grammar (a summary object describing grammatical properties), meanings (array of definitions), examples (array of in-context usage strings), and audio_urls (array of pronunciation file links). This makes it the core endpoint for building dictionary features or language learning tools.
Search and Discovery
search_word takes a query string and returns matching entries with lemma (canonical dictionary form), wortart (part of speech), and a direct url to the DWDS article. For undirected exploration, get_random_entries returns 5 randomly selected entries per call, each with lemma, pos, genera, articles, date (YYYY-MM-DD article date), and type (entry classification such as Basisartikel-D, Vollartikel, or Minimalartikel). The get_article_of_the_day endpoint retrieves the 15 most recent Word of the Day entries from the DWDS Atom feed, including title (word with part of speech), updated (ISO 8601 timestamp), and link.
Goethe A1 Vocabulary List
get_goethe_a1_word_list requires no parameters and returns the full official Goethe-Zertifikat A1 word list. Each entry includes pos (part of speech), sch (array of writing forms with lemma and hidx for homograph disambiguation), genera, articles, and a url linking to the DWDS dictionary article. This is directly usable for building A1-level vocabulary trainers or filtering a known beginner word set.
The DWDS API is a managed, monitored endpoint for dwds.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when dwds.de 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 dwds.de 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 a German flashcard app using
get_word_detailsto supply IPA, definitions, and audio per card - Generate A1 vocabulary quizzes by pulling the complete Goethe A1 word list with grammatical gender via
get_goethe_a1_word_list - Add dictionary autocomplete to a language app using
search_wordto return canonical lemmas for partial queries - Display a daily German word widget using
get_article_of_the_daytitles and DWDS entry links - Analyze corpus frequency distribution across a word list using the 0–6
frequencyfield fromget_word_details - Randomly surface lesser-known German vocabulary for a word-of-the-day feature using
get_random_entries - Filter Goethe A1 entries by grammatical gender (fem., mask., neutr.) to teach German article agreement
| 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 DWDS have an official public developer API?+
What does the `frequency` field in `get_word_details` represent?+
Does `get_article_of_the_day` return the full article text or summary?+
title, link, and updated timestamp. The summary field is currently null for all entries, so full definitions are not included. You can follow the link value or call get_word_details with the word from title to retrieve meanings and examples.Does the API cover word etymology or historical usage data?+
Can I look up multi-word phrases or idioms through the search endpoint?+
search_word endpoint accepts a query string, but response fields (lemma, wortart, url) are shaped around single-word dictionary entries. Phrase-level or idiom-specific lookup is not currently a distinct endpoint. You can fork this API on Parse and revise it to add a dedicated phrase or collocation endpoint.