Google Patents Scraper
Pricing
from $3.00 / 1,000 results
Google Patents Scraper
Search Google Patents and pull full patent metadata: abstract, claims, classifications (CPC/IPC), inventors, assignees, priority/grant dates, family, citations, and PDFs. Search by keyword, inventor, assignee, classification, or citation; lookup by publication number or URL.
Pricing
from $3.00 / 1,000 results
Rating
5.0
(16)
Developer
Crawler Bros
Maintained by CommunityActor stats
16
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Search Google Patents and pull complete patent records — title, abstract, claims, classifications (CPC/IPC), inventors, assignees, priority/grant dates, family jurisdictions, citation graph, and PDF link — all from the public Google Patents endpoints.
No login, no API key, no captcha-solving service required.
What you can do
- Search patents by free-text query (same syntax as the Google Patents site search).
- Lookup a single patent by publication number (e.g.
US11704715B2,EP3789012A1,WO2020012345A1). - Search by inventor name.
- Search by assignee / company.
- Search by CPC or IPC classification code (e.g.
H04L9/06,G06N3/00). - Walk the citation graph — list every patent a given patent cites (backward) and every patent that cites it (forward).
- Fetch by URL — paste any
patents.google.comURL (search result, patent page).
Output fields
Every record contains as many of these fields as Google Patents exposes for the patent:
| Field | Type | Description |
|---|---|---|
publicationNumber | string | Canonical publication number (e.g. US11704715B2). |
country | string | Filing-jurisdiction prefix (US, EP, WO, JP, ...). |
title | string | Patent title. |
abstract | string | Full abstract paragraph. |
description | string | Specification text (truncated at 50k chars). |
claims | string[] | Each claim as a separate string. |
claimCount | integer | Number of claims. |
inventors | string[] | All listed inventors. |
primaryInventor | string | First listed inventor. |
assigneesOriginal | string[] | Original assignees at filing. |
assigneesCurrent | string[] | Current assignees after re-assignment. |
primaryAssignee | string | First assignee. |
priorityDate | string (YYYY-MM-DD) | Earliest priority date. |
filingDate | string | |
publicationDate | string | |
grantDate | string | When granted. |
expirationDate | string | When applicable. |
applicationNumber | string | |
legalStatus | string | Active / Expired / Pending — when shown. |
classifications | string[] | CPC + IPC codes. |
backwardCitations | object[] | Patents this one cites (publication number, title, dates, assignee). |
forwardCitations | object[] | Patents citing this one. |
backwardCitationCount | integer | |
forwardCitationCount | integer | |
familyJurisdictions | object[] | Per-country status of family members. |
language | string | Language of the rendered metadata. |
pdfUrl | string | Public Google Cloud Storage PDF URL. |
thumbnailUrl | string | Front-page figure image URL. |
figureUrls | string[] | All embedded figures (search-only). |
patentUrl | string | Canonical patents.google.com URL. |
recordType | string | patent or citation. |
siteName | string | Google Patents. |
scrapedAt | string (ISO-8601) |
Modes & input
| Mode | What it does | Required input |
|---|---|---|
searchPatents | Free-text search across all of Google Patents. | query |
byPatent | Fetch one patent (or many via publicationNumbers). | publicationNumber or publicationNumbers |
byInventor | All patents naming a specific inventor. | inventor |
byAssignee | All patents assigned to a company. | assignee |
byClassification | All patents under a CPC / IPC code. | classification |
byCitation | Forward and/or backward citations of a patent. | publicationNumber, citationDirection |
byUrl | Fetch any patents.google.com URL. | urls |
Filters (all modes)
country— restrict to a specific patent office (US, EP, WO, JP, CN, ...).language— translation locale for rendered metadata.status— granted only / applications only / any.sortBy— relevance / newest / oldest.filingDateFrom,filingDateTo,publicationDateFrom,publicationDateTo— YYYY-MM-DD bounds.fetchFullDetails— for search modes, also fetch each patent's full HTML for abstract/claims/citations (1 extra request per patent).maxItems— hard cap.useProxy/proxyConfiguration/autoEscalateOnBlock— proxy controls. Direct fetches usually work; the actor auto-escalates to Apify proxy if Google starts returning 403/429.
Daily test prefill
mode=searchPatents, query="quantum computing", maxItems=10 — produces ≥10 records on every run.
Reliability
- HTTP-only via
curl_cffi(Chrome 131 fingerprint). No browser, no Playwright. - Retries on 429/5xx with exponential backoff.
- Auto-escalates to Apify proxy on the first 403/429.
- Recursive omit-empty before every record push (no
null/""/[]fields).
FAQ
Q: Does this scrape USPTO directly?
No — Google Patents already aggregates USPTO + EPO + WIPO + JPO + CNIPA + KIPO + 80+ other patent offices. Querying Google Patents is broader and faster.
Q: How many patents can I get per run?
maxItems is capped at 1000. Beyond that, split into multiple runs with date-range filters.
Q: Does fetchFullDetails slow things down?
Yes — adds ~1 second per patent. Leave it off if you only need the search snippet (title, dates, primary inventor/assignee, thumbnail).
Q: PDF URLs — do they work directly?
Yes. Patent PDFs are public on patentimages.storage.googleapis.com with no auth or hotlinking restriction.
Q: Citation traversal — recursive?
No, single hop. Provide one or more publication numbers, get their direct citations. Run again with the new IDs to walk further.
Q: Why is my non-English query returning English results?
Google Patents detects query language automatically. Set language=de (or another) to bias the rendered metadata.