Request a tool
All toolsAutomationsGuidesMCP serverRequest a toolPlatformsCategories
Google Patents Search Scraper icon

Google Patents Search Scraper

Search Google Patents and export one row per patent: number, title, assignee, inventor, dates, grant status and links. Filter by office and date. No API key.

43 runs on Apify $0.00185 per patent ($1.85 / 1,000)
Run this in the cloudRun on Apify →

Developer & Research Tools

How it works

  1. 1
    Open it on Apify

    Hit Run on Apify — it opens the tool in the cloud, no install.

  2. 2
    Set the inputs

    Adjust queries, maxItems, inventor (sensible defaults are pre-filled).

  3. 3
    Click Run

    The tool runs on Apify’s cloud and collects the data for you.

  4. 4
    Export the results

    Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.

Pricing

$0.00185 per patent = $1.85 per 1,000

You are charged forWhenPrice
Patent scrapedOne patent returned. Queries that match nothing, and pages that fail, are never charged.$0.00185

Pay-per-event pricing: you are billed per result, not per subscription. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-09-20, and they are what you are actually charged.

Inputs

FieldWhat it doesType
queriesKeywords, quoted phrases or a CPC classification code. Each term is searched separately, one row per patent. Quoted phrases work ("solid state battery"), and so does a classification code on its own (H01M10/0525). Up to 20 terms per run.array
maxItemsTotal rows across every search in the run. The budget is split evenly between your searches, so four terms and 400 rows gives you 100 of each. Google hands over at most 1,000 results for any single search, whatever the match count says. Keep this low while you are testing, you pay per row.integer
inventorAn inventor's name, as it appears on the patent. Works on its own or alongside search terms. Leave empty to search everyone.string
assigneeThe company or institution the patent is assigned to. Works on its own or alongside search terms. Leave empty to search everyone.string
countriesRestrict results to these offices. Two-letter codes: US, EP (European Patent Office), WO (WIPO/PCT), CN, JP, KR, DE, GB, FR, CA, AU, IN and about forty more. Leave empty for every office.array
statusGranted patents only, pending applications only, or both.string
patentTypeUtility patents, design patents, or both.string
languageRestrict to patents filed in one language. Leave empty for all languages.string
dateTypePatents carry several dates and they can be years apart. Priority is when the idea was first claimed anywhere, filing is when this application was lodged, publication is when it became public.string
dateFromEarliest date to include, as 2020-01-01. A year on its own (2020) means 1 January of that year. Leave empty for no lower bound.string
dateToLatest date to include, as 2024-12-31. Leave empty for no upper bound.string
onlyLitigatedReturn only patents Google has a court record for. Useful when you are looking at enforcement rather than coverage.boolean
sortByRelevance is Google's own ranking. Newest and oldest sort by date instead, which changes which 1,000 results you get on a broad search.string
searchUrlsBuild the search on patents.google.com until the results look right, then paste the address bar here. The URL's own filters are used exactly as they are, and the fields above are ignored for it. Up to 20 per run.array
proxyUrlsLeave this empty for a normal run. Fill it in only if you want the traffic to leave through proxy servers you already pay for, one URL per line, in the form http://user:pass@host:port.array

What you get

A structured dataset — each result includes fields like:

querypublicationNumbertitleassigneeinventorpriorityDatefilingDatepublicationDategrantDateisGrantedlegalStatuspatentUrlpdfUrlsnippet

Export every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.

Related tools in Developer & Research Tools

Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.

GitHub Scraper iconDeveloper & Research Tools

GitHub Scraper

Search GitHub repos and users: stars, forks, language, topics, licence, plus user bio, company and followers. No token needed. $0.90 per 1,000 rows.

18 use cases

Stack Overflow / Stack Exchange Scraper iconDeveloper & Research Tools

Stack Overflow / Stack Exchange Scraper

Search Stack Overflow and Stack Exchange by keyword or tag. Score, answer count, views, reputation and body text. $2 per 1,000 questions.

2 use cases

Package Registry Scraper (npm + PyPI) iconDeveloper & Research Tools

Package Registry Scraper (npm + PyPI)

Get npm and PyPI package metadata as JSON. Version, license, author, repo, keywords and npm monthly downloads. $2 per 1,000 packages.

2 use cases

arXiv Scraper iconDeveloper & Research Tools

arXiv Scraper

Search arXiv papers by title, author, abstract or category. Get full abstracts, authors, categories, DOI, dates and PDF links. $2 per 1,000 papers.

2 use cases

OpenAlex Scholarly Works Scraper iconDeveloper & Research Tools

OpenAlex Scholarly Works Scraper

Search 250M+ OpenAlex papers with no API key. Get titles, authors, venue, year, citations, DOI, OA links and full abstracts. $2.00 per 1,000 papers.

2 use cases

Crossref Scholarly Works Scraper iconDeveloper & Research Tools

Crossref Scholarly Works Scraper

Search 150M+ papers on Crossref: DOI, title, authors, journal, publisher, date, citations and abstract. No API key. $1.00 per 1,000 works.

2 use cases

See all Developer & Research Tools →

Google Patents Search Scraper: patent search results as rows, no API key

Search Google Patents the way you would on the site, by keyword, quoted phrase, classification code, inventor, assignee, office, language, grant status or date range, 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.

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
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, flat on every plan

🔍 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 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
queriesbox starts at solid state batteryKeywords, quoted phrases or a classification code. Up to 20, each searched separately.
maxItemsbox starts at 100Total 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.
countriesnoneTwo-letter office codes: US, EP, WO, CN, JP and 47 more. Empty means every office.
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 recent run, 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"
}
FieldWhat it is
publicationNumberThe full number with its kind code. Stable, 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.
isGrantedTrue when a grant date exists. The quick way to split grants from pending applications.
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.
snippetAn extract Google picks around your search term. Not the whole abstract.
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 ran. Everything already delivered is complete.
PROXY_INPUT_ADJUSTEDA network setting in your input was not usable, so the run used its own.
CHARGE_ERRORA charge could not be recorded. The run stops handing over rows rather than continuing quietly.

▶️ How to run it

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?

$1.85 per 1,000 patents. Flat on every Apify plan, no volume tiers.

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 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 R&D 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.

  • Finding who actually works in a field by pulling a few hundred rows and grouping by inventor.

🚧 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

the source publishes.

🧭 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

❓ Questions people ask

Do I need a Google account or an API key? 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 paste a search I already built on the website? Yes. Put the address bar into searchUrls. Its filters are used as they are, which is the easiest way to run something complicated.

Is this legal? Patent records are public documents and Google Patents is a public index. Apify's write-up on scraping and the law 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.