Google Patents Search Scraper avatar

Google Patents Search Scraper

Pricing

from $1.79 / 1,000 patents

Go to Apify Store
Google Patents Search Scraper

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

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

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.

InputSearch terms, an inventor or assignee, or a pasted Google Patents search URL
OutputOne row per patent: number, title, assignee, first inventor, four dates, grant and legal status, links
Ceiling5,000 rows per run, and 1,000 results per search
Account neededNone, 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 getField
The full publication number with its kind codepublicationNumber
Title and an extract around your search termtitle, snippet
Assignee and first named inventorassignee, inventor
Priority, filing, publication and grant datespriorityDate, filingDate, publicationDate, grantDate
Whether it is granted, and the family's legal statusisGranted, legalStatus
Links to the patent page, the PDF and the first drawingpatentUrl, pdfUrl, thumbnailUrl
How many drawings the results list mentionsfigureCount
The search it came from, its place in the results, and Google's match countquery, resultRank, resultPage, totalResultsEstimate

▶️ How to scrape Google Patents

  1. Open Google Patents Search Scraper and click Try for free.
  2. Put your terms into Search terms, deleting the example. Or fill in Inventor or Assignee and leave the terms empty.
  3. Narrow it with Patent offices, Grant status and a date range, and check Which date to filter on is the one you mean.
  4. Set Maximum patents. Start at 20 while you see whether the search is right. Then click Start.
  5. 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
}
FieldDefaultWhat it is
queriesnone, the box starts at solid state batteryKeywords, quoted phrases or a classification code. Up to 20, each searched separately.
maxItems100Total rows for the run, up to 5,000, split evenly between your searches.
inventoremptyAn inventor's name as it appears on the patent. Works on its own.
assigneeemptyThe company or institution it was assigned to. Also works on its own.
countriesevery officeTwo-letter office codes: US, EP, WO, CN, JP and 47 more.
statusbothGranted patents only, pending applications only, or both.
patentTypebothUtility patents, design patents, or both.
languageanyThe filing language, one of sixteen in the dropdown.
dateTypepriorityWhich date the range applies to. Priority, filing and publication can be years apart on one patent.
dateFrom, dateTononeWritten as 2020-01-01. A bare year means 1 January. Either can be left empty.
onlyLitigatedoffOnly patents Google holds a court record for.
sortByrelevanceRelevance, newest first or oldest first. On a broad search this decides which 1,000 results you get.
searchUrlsnoneA patents.google.com address, up to 20. Its own filters are used, and the fields above are ignored for it.
proxyUrlsnoneOptional. 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"
}
FieldHow to read it
publicationNumberStable, and the right key for deduping across runs.
assigneeThe owner at publication. It is not updated when a patent is later sold, so read it as who filed it.
inventorThe first named inventor only. The results list does not carry the rest.
priorityDateWhen the idea was first claimed anywhere in the family, usually the earliest of the four dates.
legalStatusACTIVE 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.
pdfUrlThe original document, or null where none is published.
figureCountHow many drawings the results list mentions. Often 0 on foreign-language records.
totalResultsEstimateGoogle'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.

RowHow to spot itCharged
A patent_sample and _diagnostic both absentyes
The sample row_sample: trueno
A diagnostic_diagnostic: true and an errorCodeno

Filter on _sample and _diagnostic, not on recordType. The free sample row also carries recordType: "patent", so a filter on that alone keeps it.

CodeWhat it means
NO_RESULTSThat search matched nothing, or it hit the 1,000-result wall. details says which, and totalResultsEstimate comes with it.
BAD_INPUTGoogle rejected the search, or a pasted URL was not a Google Patents search. Check the dates and the filter values.
NETWORKGoogle could not be reached, or would not answer that search.
TIME_BUDGETThe 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_ADJUSTEDA network setting in your input was not usable, so it was not used.
CHARGE_ERRORA 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.
  • legalStatus is a family-level summary. ACTIVE means 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 wantUse
Patents matching a search, as rowsThis one
Preprints and papers on the same topicarXiv Scraper
Published research metadata by DOICrossref Scraper
Company filings rather than patentsSEC EDGAR Scraper
Web results for the same termsGoogle Search Results Scraper
Interest in a technology term over timeGoogle 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.

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.