Discover/PONS API
live

PONS APIen.pons.com

Look up words and phrases in PONS bilingual dictionaries. Get entries, translations, example sentences, verb conjugation tables, and neighbouring headwords.

Endpoint health
verified 2h ago
lookup_word
1/1 passing latest checkself-healing
Endpoints
1
Updated
3h ago

What is the PONS API?

The PONS Dictionary API exposes a single lookup_word endpoint that returns the full dictionary page for any word or phrase across PONS bilingual language pairs. A single response can include up to a dozen fields: headwords, parts of speech, numbered senses, translations, editorially verified example pairs, verb conjugation tables, and alphabetical neighbours — all structured data, all in one round trip.

This call costs10 credits / call— charged only on success
Try it
The word or phrase to look up, in the dictionary's source language. Spaces are allowed (multi-word phrases such as phrasal verbs).
Language pair slug in the form <source>-<target> using lowercase English language names, e.g. german-english. Confirmed values: english-german, german-english, english-french.
api.parse.bot/scraper/c413bb98-e734-4edc-a5c7-d5f46ab1664f/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/c413bb98-e734-4edc-a5c7-d5f46ab1664f/lookup_word?word=house' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 en-pons-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: PONS dictionary lookup — look up a word and explore its full structure."""
from parse_apis.en_pons_com_api import Pons, WordNotFound

client = Pons()

# Look up a word in the default English-German dictionary.
try:
    result = client.lookups.get(word="house")
except WordNotFound:
    print("Word not found in dictionary")
    raise

print(f"'{result.word}' in {result.dictionary} — {result.entry_count} entries")

# Walk each entry's parts of speech, senses, and translations.
for entry in (result.entries or []):
    print(f"\n── {entry.headword} [{entry.source_language}]  id={entry.entry_id}")
    for pos in entry.parts_of_speech:
        label = f"{pos.word_class} ({pos.word_class_abbr})"
        if pos.phonetics:
            label += f"  /{pos.phonetics}/"
        print(f"  {label}")
        for sense in pos.senses:
            for tr in sense.translations:
                print(f"    {tr.source} → {tr.target}")

# Editorial example pairs.
for ex in result.examples[:3]:
    print(f"  example: {ex.source} → {ex.target}")

# Verb conjugation tables (non-empty when the headword is a verb).
for table in result.verb_tables:
    forms = ", ".join(f"{f.person} {f.form}" for f in table.forms)
    print(f"  {table.tense}: {forms}")

# Nearby words — use path_word for a follow-up lookup.
if result.nearby_words:
    neighbour = result.nearby_words[0]
    follow_up = client.lookups.get(word=neighbour.path_word)
    print(f"\nNeighbour '{follow_up.word}': {follow_up.entry_count} entries")

print("\nexercised: lookups.get / Entry / PartOfSpeech / Sense / Translation / Example / VerbTable / NearbyWord")
All endpoints · 1 totalmissing one? ·

Looks up one word or multi-word phrase in a PONS bilingual dictionary and returns the complete dictionary page as structured data in a single round trip. The result grain is one lookup: `entries` lists every dictionary entry the site returns for the query (the exact headword first, then compounds and related headwords), each entry carries `parts_of_speech` (one per roman-numeral section: word class, phonetics, grammar annotations) which carry numbered `senses`, which carry `translations` (source text, target text, per-side grammar/usage annotations such as gender, inflection, region, style, and `is_example` marking example sentences rather than headword translations). `examples` are the site's editorially verified example pairs, `verb_tables` are conjugation tables (empty list when the word is not a verb), and `nearby_words` are the alphabetical neighbours shown under 'Browse the dictionary'. The dictionary is selected with a `<source>-<target>` language-pair slug; the source side is searched in both directions and each entry reports its own `source_language`. A word the dictionary does not know returns a not-found input error (HTTP 422) rather than an empty result. Confirmed language pairs: english-german, german-english, english-french; the site offers further pairs (e.g. english-spanish) which are forwarded as given and rejected upstream if unknown.

Input
ParamTypeDescription
wordrequiredstringThe word or phrase to look up, in the dictionary's source language. Spaces are allowed (multi-word phrases such as phrasal verbs).
dictionarystringLanguage pair slug in the form <source>-<target> using lowercase English language names, e.g. german-english. Confirmed values: english-german, german-english, english-french.
Response
{
  "type": "object",
  "fields": {
    "word": "the looked-up word as supplied",
    "entries": "array of dictionary entries: entry_id, source_language (ISO 639-1 of the entry's headword), headword, parts_of_speech[] with header, headword, word_class, word_class_abbr, phonetics (IPA, may be null), annotations[] {type,text,meaning}, senses[] {header, sense, translations[] {translation_id, source, target, is_example, source_annotations[], target_annotations[]}}",
    "examples": "array of editorially verified example pairs {translation_id, source_language, source, target}; may be empty",
    "dictionary": "language-pair slug that was searched",
    "entry_count": "number of dictionary entries returned",
    "verb_tables": "array of conjugation tables {tense, forms[] {person, form}}; empty when the headword is not a verb",
    "nearby_words": "alphabetical neighbours of the headword {word, path_word}; path_word is the exact value to pass back as `word`"
  },
  "sample": {
    "data": {
      "word": "house",
      "entries": [
        {
          "entry_id": "Edeen1019417",
          "headword": "house",
          "parts_of_speech": [
            {
              "header": "I. house N [haʊs]",
              "senses": [
                {
                  "sense": "(residence)",
                  "header": "1. house (residence)",
                  "translations": [
                    {
                      "source": "house",
                      "target": "Haus nt <-es, Häu·ser>",
                      "is_example": false,
                      "translation_id": "Tdeen1019422",
                      "source_annotations": [],
                      "target_annotations": [
                        {
                          "text": "nt",
                          "type": "genus",
                          "meaning": "neuter"
                        },
                        {
                          "text": "<-es, Häu·ser>",
                          "type": "flexion",
                          "meaning": null
                        }
                      ]
                    },
                    {
                      "source": "let's go to John's house",
                      "target": "lass uns zu John gehen",
                      "is_example": true,
                      "translation_id": "Tdeen1019423",
                      "source_annotations": [],
                      "target_annotations": []
                    }
                  ]
                }
              ],
              "headword": "house",
              "phonetics": "haʊs",
              "word_class": "noun",
              "annotations": [
                {
                  "text": "N",
                  "type": "wordclass",
                  "meaning": "noun"
                },
                {
                  "text": "[haʊs]",
                  "type": "phonetics",
                  "meaning": null
                }
              ],
              "word_class_abbr": "N"
            },
            {
              "header": "III. house VB trans [haʊz]",
              "senses": [
                {
                  "sense": "(accommodate)",
                  "header": "1. house (accommodate)",
                  "translations": [
                    {
                      "source": "to house sb",
                      "target": "jdn unterbringen [ o. beherbergen]",
                      "is_example": false,
                      "translation_id": "Tdeen1019486",
                      "source_annotations": [
                        {
                          "text": "to house sb",
                          "type": "grammatical_construction",
                          "meaning": "somebody"
                        }
                      ],
                      "target_annotations": [
                        {
                          "text": "o.",
                          "type": "or",
                          "meaning": "oder"
                        }
                      ]
                    }
                  ]
                }
              ],
              "headword": "house",
              "phonetics": "haʊz",
              "word_class": "verb",
              "annotations": [
                {
                  "text": "VB",
                  "type": "wordclass",
                  "meaning": "verb"
                },
                {
                  "text": "trans",
                  "type": "verbclass",
                  "meaning": "transitive verb"
                }
              ],
              "word_class_abbr": "VB"
            }
          ],
          "source_language": "en"
        },
        {
          "entry_id": "Edeen879188",
          "headword": "ˈcus·tom(s) house",
          "parts_of_speech": [
            {
              "header": "ˈcus · tom(s) house N",
              "senses": [
                {
                  "sense": null,
                  "header": null,
                  "translations": [
                    {
                      "source": "custom(s) house",
                      "target": "Zollamt nt <-(e)s, -ämter>",
                      "is_example": false,
                      "translation_id": "Tdeen879193",
                      "source_annotations": [],
                      "target_annotations": [
                        {
                          "text": "nt",
                          "type": "genus",
                          "meaning": "neuter"
                        },
                        {
                          "text": "<-(e)s, -ämter>",
                          "type": "flexion",
                          "meaning": null
                        }
                      ]
                    }
                  ]
                }
              ],
              "headword": "ˈcus·tom(s) house",
              "phonetics": null,
              "word_class": "noun",
              "annotations": [
                {
                  "text": "N",
                  "type": "wordclass",
                  "meaning": "noun"
                }
              ],
              "word_class_abbr": "N"
            }
          ],
          "source_language": "en"
        }
      ],
      "examples": [
        {
          "source": "house-to-house canvass",
          "target": "Haustüraktion f",
          "translation_id": "Tdeen822710",
          "source_language": "en"
        },
        {
          "source": "lovely house",
          "target": "wunderschönes Haus",
          "translation_id": "Tdeen1078946",
          "source_language": "en"
        }
      ],
      "dictionary": "english-german",
      "entry_count": 11,
      "verb_tables": [
        {
          "forms": [
            {
              "form": "house",
              "person": "I"
            },
            {
              "form": "house",
              "person": "you"
            },
            {
              "form": "houses",
              "person": "he/she/it"
            }
          ],
          "tense": "Present"
        },
        {
          "forms": [
            {
              "form": "have housed",
              "person": "I"
            },
            {
              "form": "has housed",
              "person": "he/she/it"
            }
          ],
          "tense": "Present Perfect"
        }
      ],
      "nearby_words": [
        {
          "word": "hound",
          "path_word": "hound"
        },
        {
          "word": "hound out",
          "path_word": "hound out"
        },
        {
          "word": "houndstooth",
          "path_word": "houndstooth"
        }
      ]
    },
    "status": "success"
  }
}

About the PONS API

What the API Returns

The lookup_word endpoint accepts a word parameter (single word or multi-word phrase) and an optional dictionary parameter specifying the language-pair slug in source-target form, such as english-german or french-spanish. The response wraps everything the PONS dictionary page shows into one object. The top-level entries array contains every matching dictionary entry, each carrying an entry_id, source_language (ISO 639-1 code), headword, and parts_of_speech with grammar markers and numbered senses. entry_count tells you how many entries came back without counting array elements yourself.

Examples, Conjugations, and Neighbours

Beyond core definitions, the response includes three supplementary arrays. examples holds editorially verified source–target sentence pairs, each tagged with a translation_id and source_language. verb_tables is populated when the headword is a verb; each table entry has a tense and a forms array with person and form fields covering full paradigm conjugations. nearby_words lists alphabetical neighbours of the headword, with word as the display form and path_word as the exact string to pass back as the word input for a follow-up lookup.

Language Pair Coverage

The dictionary parameter takes a lowercase English-name slug like german-english, spanish-french, or portuguese-english. If omitted, the endpoint defaults to the PONS site's standard pair. The dictionary field in the response always echoes back which pair was actually searched, so callers can verify the match.

Data Shape Notes

The examples and verb_tables arrays may be empty — examples when no editorially verified pairs exist for the query, and verb_tables when the headword is not a verb. The word field in the response echoes the input exactly as supplied, which is useful when batching lookups across multiple words.

Reliability & maintenanceVerified

The PONS API is a managed, monitored endpoint for en.pons.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when en.pons.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 en.pons.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.

Last verified
2h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Building a language-learning app that shows conjugation tables from verb_tables when a user taps an unfamiliar verb
  • Populating flashcard decks with examples sentence pairs for contextual vocabulary practice
  • Implementing inline dictionary tooltips that display parts_of_speech and numbered senses from entries
  • Creating a bilingual corpus by bulk-looking up a word list and collecting examples source–target pairs
  • Building a 'did you mean' feature using nearby_words to suggest adjacent headwords when a lookup returns zero entries
  • Generating grammar reference sheets by extracting full paradigm data from verb_tables for a list of verbs
  • Augmenting NLP pipelines with part-of-speech and sense disambiguation data from parts_of_speech in entries
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does PONS offer an official developer API?+
Yes. PONS publishes an official API at https://en.pons.com/p/pons-api. It provides dictionary lookups with a free quota, though the documented response schema and rate limits differ from what the Parse API surfaces.
What does the `verb_tables` field contain, and when is it populated?+
verb_tables is an array of conjugation tables, each with a tense string and a forms array of {person, form} objects covering the full paradigm for that tense. It is only populated when the headword is a verb; for nouns, adjectives, and other parts of speech it returns an empty array.
Can I look up the same word across multiple language pairs in one call?+
No. Each call to lookup_word searches exactly one language pair, identified by the dictionary parameter. To get results across multiple pairs, you make one request per pair. The dictionary field in each response confirms which pair was searched.
Does the API cover audio pronunciation files or IPA transcription strings?+
Not currently. The API returns headwords, parts of speech, grammar markers, numbered senses, translations, example pairs, verb conjugation tables, and nearby words, but does not expose audio URLs or IPA strings. You can fork the API on Parse and revise it to add a pronunciation field if the source page exposes that data.
Are there pagination controls for looking up a word that returns a large number of entries?+
There are no pagination parameters. A single lookup_word call returns all entries the dictionary page shows for that query, reflected in the entry_count field. If a word has many senses across multiple entries, they all appear in the entries array in one response.
Page content last updated . Spec covers 1 endpoint from en.pons.com.
Related APIs in EducationSee all →
dwds.de API
Look up German words with detailed definitions, pronunciations, and usage examples, or explore curated word lists organized by proficiency level. Search vocabulary, discover random entries, and learn the featured word of the day to build your German language skills.
glosbe.com API
Translate words and phrases between languages while viewing parts of speech, definitions, and real-world usage examples from Glosbe's community dictionary. Get accurate multilingual translations instantly without leaving your application.
wordreference.com API
Search for word translations across multiple languages using WordReference's comprehensive dictionary database. Retrieve detailed meanings, usage contexts, grammatical information, and example sentences. Access public vocabulary collections and word-of-the-day features.
dictionary.cambridge.org API
Look up word definitions, pronunciations, translations, synonyms, and example sentences from Cambridge Dictionary. Search and browse thousands of words, get daily word recommendations, and access specialized business or American English dictionaries.
verbformen.com API
Search for German words and instantly access their translations, proficiency levels (A1-C2), grammatical categories, and IPA pronunciations to enhance your language learning. Perfect for understanding vocabulary difficulty, finding word meanings, and perfecting your German pronunciation all in one place.
thesaurus.com API
Find synonyms, antonyms, related words, and usage examples for any word instantly. Look up the daily word of the day to expand your vocabulary every day.
multitran.com API
Translate words and phrases across multiple languages while browsing specialized subject areas and terminology. Explore available languages, search the dictionary index, and discover professional terms organized by field of study.
duden.de API
Get German verb conjugations, parts of speech, and usage frequency from Duden's comprehensive database. Quickly look up how to conjugate any German verb across all tenses and moods.