Google Patents Search Scraper
Pricing
from $1.79 / 1,000 patents
Google Patents Search Scraper
Search Google Patents by keyword, inventor, assignee, office, date range or grant status and get one row per patent: number, title, assignee, inventor, all four dates, legal status, and links to the page and the PDF. $1.85 per 1,000 patents.
Pricing
from $1.79 / 1,000 patents
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Search Google Patents the way you would on the site and get one row per patent: publication number, title, assignee, first inventor, all four dates, grant status, legal status, and links to the page and the PDF. Keywords, quoted phrases, classification codes, inventors, assignees, offices, languages and date ranges all work.
The part to read before buying: these are search results, not patent documents. You get what the results list carries plus an abstract snippet. No claims, no full description, no citation list, no family tree, no downloaded PDF, only the link to each one. And Google hands over at most 1,000 results for any single search, whatever match count it reports. If either of those is a problem, this is the wrong tool.
| Input | Search terms, an inventor or assignee, or a pasted Google Patents search URL |
| Output | One row per patent: number, title, assignee, first inventor, four dates, grant and legal status, links |
| Ceiling | 5,000 rows per run, and 1,000 results per search |
| Account needed | None, and no Google API key |
| Price | $1.85 per 1,000 patents on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 2,700 |
🔍 What Google Patents Search Scraper does
It runs the same search grammar the website gives you, pages the results, and writes one row per patent.
Search on terms alone, on an inventor or assignee alone, or both together. A classification code
works as a term: put H01M10/0525 in queries. The filters for office, language, status, type,
litigation and dates apply to every search in the run.
If a search is fiddly, build it on patents.google.com until the results look right and paste the
address bar into searchUrls. It runs exactly as written.
Two things happen before a row reaches you. It is checked against the filters you asked for and dropped, uncharged, if it does not match. And a publication number already seen in the run is skipped, so a patent matching two terms arrives once.
📋 What data you get from each Google Patents result
| What you get | Field |
|---|---|
| The full publication number with its kind code | publicationNumber |
| Title and an extract around your search term | title, snippet |
| Assignee and first named inventor | assignee, inventor |
| Priority, filing, publication and grant dates | priorityDate, filingDate, publicationDate, grantDate |
| Whether it is granted, and the family's legal status | isGranted, legalStatus |
| Links to the patent page, the PDF and the first drawing | patentUrl, pdfUrl, thumbnailUrl |
| How many drawings the results list mentions | figureCount |
| The search it came from, its place in the results, and Google's match count | query, resultRank, resultPage, totalResultsEstimate |
▶️ How to scrape Google Patents
- Open Google Patents Search Scraper and click Try for free.
- Put your terms into Search terms, deleting the example. Or fill in Inventor or Assignee and leave the terms empty.
- Narrow it with Patent offices, Grant status and a date range, and check Which date to filter on is the one you mean.
- Set Maximum patents. Start at 20 while you see whether the search is right. Then click Start.
- Download the dataset as JSON, CSV or Excel, or read it from the Apify API.
💰 How much does it cost to scrape Google Patents?
$1.85 per 1,000 patents on the Free plan. Paid plans pay a little less: $1.83 on Starter, $1.81 on Scale and $1.79 on Business. On the free plan, the $5 Apify gives you each month covers about 2,700 patents.
One row is one patent. Sample rows, diagnostic rows, the notice telling you a search hit the 1,000-result wall, duplicates already returned earlier in the run, and rows dropped for not matching your filters are all free. A search that matches nothing costs nothing.
📥 What you give it
{"queries": ["solid state battery", "lithium metal anode"],"countries": ["US", "EP"],"status": "GRANT","dateType": "priority","dateFrom": "2020-01-01","maxItems": 200}
| Field | Default | What it is |
|---|---|---|
queries | none, the box starts at solid state battery | Keywords, quoted phrases or a classification code. Up to 20, each searched separately. |
maxItems | 100 | Total rows for the run, up to 5,000, split evenly between your searches. |
inventor | empty | An inventor's name as it appears on the patent. Works on its own. |
assignee | empty | The company or institution it was assigned to. Also works on its own. |
countries | every office | Two-letter office codes: US, EP, WO, CN, JP and 47 more. |
status | both | Granted patents only, pending applications only, or both. |
patentType | both | Utility patents, design patents, or both. |
language | any | The filing language, one of sixteen in the dropdown. |
dateType | priority | Which date the range applies to. Priority, filing and publication can be years apart on one patent. |
dateFrom, dateTo | none | Written as 2020-01-01. A bare year means 1 January. Either can be left empty. |
onlyLitigated | off | Only patents Google holds a court record for. |
sortBy | relevance | Relevance, newest first or oldest first. On a broad search this decides which 1,000 results you get. |
searchUrls | none | A patents.google.com address, up to 20. Its own filters are used, and the fields above are ignored for it. |
proxyUrls | none | Optional. Your own servers, used exactly as given. |
Unrecognised filter values are dropped, not refused. An office code outside the 52 it knows, or a
date it cannot read, is simply left out, and the search then runs wider than you meant. UK is not a
code, GB is. Dates want 2020-01-01, 2020-01 or 2020.
A pasted searchUrls query is not re-checked, because its filters were not built here. Its rows
arrive as Google returned them.
📤 What you get back
A real row from a run on 21 September 2026, with the long text trimmed:
{"ok": true,"recordType": "patent","query": "solid state battery","publicationNumber": "US11942620B2","title": "Solid state battery with uniformly distributed electrolyte, and methods of ...","assignee": "GM Global Technology Operations LLC","inventor": "Yong Lu","priorityDate": "2020-12-07","filingDate": "2021-12-06","publicationDate": "2024-03-26","grantDate": "2024-03-26","isGranted": true,"legalStatus": "ACTIVE","patentUrl": "https://patents.google.com/patent/US11942620B2/en","pdfUrl": "https://patentimages.storage.googleapis.com/f8/02/22/a9e3950cab3340/US11942620.pdf","snippet": "In the instances of solid-state batteries, which include solid-state electrolyte layers disposed between solid-state electrodes, the solid-state electrolyte layer physically separates the solid-state electrodes ...","thumbnailUrl": "https://patentimages.storage.googleapis.com/90/b8/0e/ed6c106ab89ebf/US11942620-20240326-D00000.png","figureCount": 12,"resultRank": 0,"resultPage": 0,"totalResultsEstimate": 98504,"scrapedAt": "2026-09-21T02:09:51.306Z"}
| Field | How to read it |
|---|---|
publicationNumber | Stable, and the right key for deduping across runs. |
assignee | The owner at publication. It is not updated when a patent is later sold, so read it as who filed it. |
inventor | The first named inventor only. The results list does not carry the rest. |
priorityDate | When the idea was first claimed anywhere in the family, usually the earliest of the four dates. |
legalStatus | ACTIVE when some member of the family is still in force, otherwise NOT_ACTIVE, and null when Google publishes none. Family level, and not legal advice. |
pdfUrl | The original document, or null where none is published. |
figureCount | How many drawings the results list mentions. Often 0 on foreign-language records. |
totalResultsEstimate | Google's own match count, copied through untouched. It wobbles, and adding a filter can push it up. Use it for scale, never as a population count. |
🧾 Reading the output
Three kinds of row can land in your dataset.
| Row | How to spot it | Charged |
|---|---|---|
| A patent | _sample and _diagnostic both absent | yes |
| The sample row | _sample: true | no |
| A diagnostic | _diagnostic: true and an errorCode | no |
Filter on _sample and _diagnostic, not on recordType. The free sample row also carries
recordType: "patent", so a filter on that alone keeps it.
| Code | What it means |
|---|---|
NO_RESULTS | That search matched nothing, or it hit the 1,000-result wall. details says which, and totalResultsEstimate comes with it. |
BAD_INPUT | Google rejected the search, or a pasted URL was not a Google Patents search. Check the dates and the filter values. |
NETWORK | Google could not be reached, or would not answer that search. |
TIME_BUDGET | The run hit its time limit before this search was finished. Everything already delivered is complete. The run ends as failed only when the time limit stopped it before any patent came back. |
PROXY_INPUT_ADJUSTED | A network setting in your input was not usable, so it was not used. |
CHARGE_ERROR | A charge could not be recorded. The run stops handing over rows rather than continuing quietly. |
💡 What people use it for
- Prior-art sweeps before filing: run the idea three or four ways and read one deduped shortlist.
- Watching what a competitor's research team is filing. Set
assignee, sort newest first, schedule it weekly and diff on publication number. - Mapping a technology area by classification code, then counting filings per year off the dates.
- Due diligence before an acquisition: everything a company has filed, with grant and legal status, in one table.
🚧 What it does not do
- Search results only. No claims, no description, no citations, no family tree and no downloaded PDF. Every row carries the link, and you open it for the rest.
- 1,000 results per search, whatever the match count says. Split by year, office, assignee or grant status to reach past it. A search that hits the wall gets a free notice row saying so.
- The snippet is an extract, chosen by Google around your search term, not the full abstract.
- Only the first named inventor is in the results list, so that is all a row can carry.
legalStatusis a family-level summary.ACTIVEmeans in force somewhere, not everywhere, and it is not a legal opinion.- Foreign-language titles and abstracts are Google's machine translations, and inventor and assignee names stay in the original script.
- Sorting changes which 1,000 you see on a broad search, and there is no paging past them.
- Design patents carry sparse metadata, often no assignee and no snippet, because that is what Google publishes for them.
- It is not an official Google tool. Dami's Studio is independent and is not affiliated with or endorsed by Google, or by any other company named on this page.
🧭 Which research scraper do you need?
| If you want | Use |
|---|---|
| Patents matching a search, as rows | This one |
| Preprints and papers on the same topic | arXiv Scraper |
| Published research metadata by DOI | Crossref Scraper |
| Company filings rather than patents | SEC EDGAR Scraper |
| Web results for the same terms | Google Search Results Scraper |
| Interest in a technology term over time | Google Trends Scraper |
❓ Questions people ask
Do I need a Google account or an API key to scrape Google Patents?
No. Nothing to sign up for and no quota.
Can I search by CPC classification code?
Yes, put it in queries like any other term, for example H01M10/0525. It is not a separate field
because Google Patents does not treat it as one.
I asked for 5,000 rows on one term and got 1,000. Why?
That is Google's ceiling for a single search and it applies to everyone. You will have a free notice row saying so. Split the search by year, office or assignee.
Why does my date range look like it did nothing?
Usually the wrong dateType: priority, filing and publication dates on one patent can be years
apart. The other cause is a date format the run could not read, which drops that bound.
Can I call it from code or connect it to an AI assistant?
Yes. The API tab has
ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP
client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/google-patents-search-scraper.
Either way the run happens on your Apify account at the same price.
Is scraping Google Patents legal?
Patent records are public documents and Google Patents is a public index. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.
🆘 If something breaks
Open the Issues tab on the actor page. Send the search you ran and the run ID. The errorCode
and details on the diagnostic row usually name the problem on their own.