Google Dictionary Scraper avatar

Google Dictionary Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Google Dictionary Scraper

Google Dictionary Scraper

Extract source-backed definitions and available pronunciation, grammar, word forms, dictionary-source links, and related public Google Search context from Google Search dictionary cards. Empty, unavailable, and access-boundary pages never create dataset rows.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

Google API

Google API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

What does the Google Dictionary Scraper do?

The Google Dictionary Scraper looks up words on Google Search and extracts a dictionary-card entry when Google exposes one: headword, definitions, pronunciation, part of speech, examples, synonyms, antonyms, word forms, and the linked dictionary source. It also records visible Google Search context such as AI Overview text, People also ask questions, related searches, and organic result snippets when those sections are present.

The Actor does not invent a definition when the dictionary card is missing. If no dictionary entry can be read, the run summary and logs explain why; no placeholder word record is added.

Why use the Google Dictionary Scraper?

  • Look up one term or a bounded list of words and phrases in a single run.
  • Keep lexical fields (senses, pronunciation, grammar, word forms) together with the source link that Google shows.
  • Retain optional Search context alongside each dictionary entry.
  • Review run summaries and logs when a term has no dictionary card or Google limits access.

The Actor reads public Google Search pages only. It does not sign in, solve CAPTCHAs, rotate proxies after a block, or bypass access controls. Optional proxyConfiguration applies to public requests. Access boundaries stop the run. AI Overview prose and ordinary result snippets are not converted into dictionary entries; a reachable page can still produce no rows if it has no dictionary card.

What data can the Google Dictionary Scraper extract?

GroupFields
Word identityword, headword, syllabification, language, languageCode, partOfSpeech, partsOfSpeech
Pronunciationpronunciation, phoneticSpelling, pronunciationText, pronunciationAudioUrl, pronunciationAudioUrls, pronunciationAudioPresent
Lexical contentdefinitions, definitionEntries, definitionCount, synonyms, synonymCount, antonyms, antonymCount, examples, exampleCount
Usage and morphologyorigin, etymology, wordForms, inflections, derivedForms, domains, grammarNotes, partOfSpeechNotes, otherForms, translations, translationCount
SourcesourceName, sourceNames, sourcePageUrl, sourceDomain, pageUrl, canonicalUrl, sourcePageLanguage, searchLocale
Search contextdictionaryCardPresent, aiOverviewPresent, aiOverviewText, aiOverviewCitations, peopleAlsoAsk, relatedSearches, webResults, webResultCount

There are 50 declared properties. partsOfSpeech retains all distinct labels visible on the card, while partOfSpeech remains the first-label compatibility field. Repeated definition nodes remain separate senses in source order. The flat lexical fields are the primary contract; dictionary is retained as a nested compatibility alias for older consumers. Optional scalar values are null; missing collections are empty arrays; counts match their corresponding arrays. The Actor only emits a row when it extracts a non-empty word and at least one definition.

Pronunciation audio URLs are collected from audio/source elements and visible Google text-to-speech links within the dictionary section. Media found only in unrelated search-result sections is excluded.

How to scrape Google Search dictionary cards

  1. Open the Actor’s Input tab.
  2. Enter one word in query, or add words to queries.
  3. Optionally set language, maxItems, page, or maxPages.
  4. Run the Actor and review the dataset and run summary.

The Actor’s cost follows its Apify compute usage; there is no fixed per-word price stated here. Runtime grows with the number of words and Google results pages requested. Each page request has a bounded timeout and limited network retries, plus a short delay between requests. Requests stop immediately when Google returns an access boundary. Missing dictionary cards do not cause downstream dictionary-source pages to be fetched.

Input

See the input tab for the complete configuration.

FieldTypeDefault / boundsBehavior
querystringoptional, max 120 charactersOne word or phrase; a leading define or define: is stripped.
queriesarray of stringsoptional, max 100 termsAdditional terms.
startUrlsarray of { "url": "..." }optional, max 100 URLsHTTPS Google Search /search URLs with a q parameter only. Other hosts/paths are rejected.
languagestringen; 2–3 lowercase letters, optional uppercase regionSets hl on generated URLs and supplies a locale when a start URL has no hl. An explicit start URL hl takes precedence.
maxItemsinteger25; 1–100Maximum unique targets across all three term sources.
pageinteger1; 1–100First results page for generated query terms; each Google page is 10 results. Explicit startUrls preserve their own start offset.
maxPagesinteger1; 1–5Consecutive results pages per term, starting at page.
proxyConfigurationobjectoptionalApify proxy for public requests. No rotation or challenge solving after an access boundary.

query, queries, and startUrls are combined. Duplicate target URLs are removed before maxItems is applied. The Actor always deduplicates emitted entries by normalized word, language, and part of speech. maxPages applies per target; an access boundary stops the entire run.

Example:

{
"queries": ["serendipity", "ephemeral"],
"language": "en",
"maxItems": 10,
"page": 1,
"maxPages": 1
}

Direct Google Search URL example:

{
"startUrls": [
{ "url": "https://www.google.com/search?q=define%3Aserendipity&hl=en" }
],
"maxItems": 1
}

Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

The following is a shape-only example: angle-bracket strings are placeholders, not scraped dictionary values.

{
"word": "<headword from the dictionary card>",
"headword": "<displayed headword>",
"syllabification": null,
"language": "<language label when shown>",
"languageCode": null,
"partOfSpeech": "<part of speech when shown>",
"partsOfSpeech": ["<each distinct part-of-speech label shown>"],
"pronunciation": "<phonetic spelling when shown>",
"pronunciationAudioUrl": null,
"pronunciationAudioUrls": [],
"pronunciationAudioPresent": false,
"definitions": ["<definition text from Google>"],
"definitionEntries": [
{ "senseNumber": 1, "definitionText": "<definition text from Google>", "domain": null, "examples": [] }
],
"definitionCount": 1,
"synonyms": [],
"synonymCount": 0,
"antonyms": [],
"antonymCount": 0,
"examples": [],
"exampleCount": 0,
"origin": null,
"etymology": null,
"wordForms": [],
"inflections": [],
"derivedForms": [],
"domains": [],
"grammarNotes": [],
"translations": [],
"translationCount": 0,
"sourceName": "<dictionary source shown by Google>",
"sourceNames": ["<dictionary source shown by Google>"],
"sourcePageUrl": "https://example.org/dictionary-entry",
"sourceDomain": "example.org",
"pageUrl": "https://www.google.com/search?q=define%3Aexample&hl=en",
"canonicalUrl": null,
"searchLocale": "en",
"dictionaryCardPresent": true,
"aiOverviewPresent": false,
"aiOverviewText": null,
"aiOverviewCitations": [],
"peopleAlsoAsk": [],
"relatedSearches": [],
"webResults": [],
"webResultCount": 0,
"sourcePageLanguage": null,
"partOfSpeechNotes": [],
"otherForms": [],
"dictionary": {
"word": "<headword from the dictionary card>",
"headword": "<displayed headword>",
"language": "<language label when shown>",
"partOfSpeech": "<part of speech when shown>",
"pronunciation": "<phonetic spelling when shown>",
"definitions": ["<definition text from Google>"],
"synonyms": [],
"antonyms": [],
"examples": [],
"origin": null,
"wordForms": [],
"sourceName": "<dictionary source shown by Google>",
"sourcePageUrl": "https://example.org/dictionary-entry"
}
}

Unavailable scalar data is null; lists are empty rather than guessed. Dictionary source details are extracted from Google’s visible dictionary card; the Actor does not fetch those external source pages. The dataset and run summary are available in the Output tab, with downloads in formats such as JSON, HTML, CSV, or Excel.

Tips and advanced options

  • Keep maxPages at 1 for normal word lookups; later result pages usually do not contain the dictionary card.
  • Use separate terms when you need separate dataset entries; maxItems is a global target limit.
  • A missing optional pronunciation, synonym, example, or source is left empty/null.
  • The Actor has bounded request retries for transport errors only. It does not retry after detecting a Google access boundary.

FAQ, support, and responsible use

Why is my dataset empty? Google may not show a dictionary card for that term, or it may return an access boundary. Check the run summary and logs, and try another term if no card is available.

Are external dictionary pages fetched? No. Google’s displayed definition and source link are collected when present; the linked publisher page is not opened.

Can I provide arbitrary start URLs? No. Only HTTPS Google Search /search URLs with a q parameter are accepted.

Does proxyConfiguration route requests through Apify Proxy? Yes, when supplied and available. A proxy failure does not trigger a retry after an access boundary.

Where can I get help? Use the Actor’s Issues tab for support and the API tab for API access. Follow Google’s terms, robots guidance, privacy requirements, and applicable law. This independent Actor is not affiliated with or endorsed by Google.