Google Patents Search Scraper - Patents, Assignees & Dates
Pricing
from $3.34 / 1,000 results
Google Patents Search Scraper - Patents, Assignees & Dates
Search Google Patents and get structured results: title, publication number, assignee, inventor, filing/grant/priority dates, snippet and PDF link. Supports Google's own filter syntax (assignee, country, priority date). HTTP-only, no API key.
Pricing
from $3.34 / 1,000 results
Rating
0.0
(0)
Developer
Farhan Febrian Nauval
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Share
Google Patents Search Scraper
Search Google Patents and get structured results: title, publication number, assignee, inventor, filing / grant / priority dates, snippet and PDF link. HTTP-only, no API key, no account.
Input
| Field | Type | Default | Description |
|---|---|---|---|
queries | array | required | A keyword, a Google Patents query string, or a pasted URL |
maxResultsPerQuery | integer | 300 | Ceiling is ~1,000 — see below |
maxPages | integer | 10 | Pages of 100. Cannot exceed 10 (Google's limit) |
maxConcurrency | integer | 2 | Queries in parallel |
All three input shapes work, because all three are things you actually have to hand:
batteryq=battery&assignee=Tesla&after=priority:20230101https://patents.google.com/?q=solar&country=US
Google's own filter syntax passes straight through — assignee=, country=,
before=/after=priority:YYYYMMDD, inventor=. Build the search in the browser, paste the URL.
Output
{"_input": "q=battery&assignee=Tesla","_source": "S1-xhr-query","_scrapedAt": "2026-09-07T05:46:13Z","_page": 0,"publicationNumber": "US11942620B2","patentUrl": "https://patents.google.com/patent/US11942620B2/en","title": "Solid state battery with uniformly distributed electrolyte…","snippet": "…","assignee": "GM Global Technology Operations LLC","inventor": "…","filingDate": "2021-12-06", "grantDate": "2024-03-26","publicationDate": "…", "priorityDate": "…","pdfUrl": "https://patentimages.storage.googleapis.com/…","figureCount": 7, "rank": 0,"patent": { … } // raw passthrough, Google's field names verbatim}
Populated on 450 test rows: publication number, title, assignee, inventor, filing date,
priority date and URL on 450/450. grantDate (272/450) and pdfUrl (332/450) are
legitimately partial — a pending application has no grant date.
How it works
patents.google.com/xhr/query is the JSON backend behind the search UI. Its single url
parameter takes the URL-encoded Google Patents query string, which is why this actor can accept
a pasted browser URL unchanged.
The 10-page ceiling
total_num_pages comes back as 10 for a query reporting 106,876 results. It is a cap,
not a count: at 100 per page that is roughly 1,000 results per query, whatever the hit count
says. The actor warns once per query when it sees the cap and names the filters that get you
past it. A Tesla battery query yielded 856 unique patents out of 3,427 reported.
Titles come with markup and entities
Google marks query hits with <b>…</b> and leaves HTML entities in place, so a raw title reads
Solid state <b>battery</b>, and methods of …. Both are cleaned — tags stripped, then
entities unescaped, in that order — and the untouched value stays available under patent.
Stripping only the tags leaves … sitting in the title, which is the kind of thing that
survives review and shows up in a customer's CSV.
Result order drifts between requests
Two fetches of the same page can come back in slightly different order, so consecutive pages sometimes appear to overlap. Results are deduplicated by publication number, and a page that contributes nothing new ends the crawl — so the drift costs a little bandwidth and never duplicates a row.
Known limits
| Limit | Detail |
|---|---|
| ~1,000 results per query | Google's paging ceiling; narrow with its filters and pass several queries |
| No full text or claims | Search results only — the description and claims live on the patent page |
| No citation graph | patent.family_metadata is passed through, but citations are not in this payload |