Google Patents Scraper avatar

Google Patents Scraper

Pricing

from $1.00 / 1,000 patents

Go to Apify Store
Google Patents Scraper

Google Patents Scraper

Search Google Patents by keywords, assignee, inventor, CPC code, country and dates, or look up patent numbers. One row per patent: title, assignees, inventors, dates, status, CPC, abstract, claims, citations, family, PDF. Splits dates to pass the 1,000-result cap. Monitor mode. Pay per patent.

Pricing

from $1.00 / 1,000 patents

Rating

0.0

(0)

Developer

LMB Technology

LMB Technology

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Turn a Google Patents search into a clean table of patents. Type keywords (solid state battery), a company (Tesla), an inventor, a CPC code (H01M10/0562), pick countries and dates, or paste patent numbers, and get one row per patent: publication number, title, assignees, inventors, priority / filing / publication / grant dates, status, CPC codes, abstract, claims, citation counts, patent family, PDF link. No Google account, no API key.

Built for patent landscaping, competitor watching, prior-art searches and AI agents that need structured patent data: list everything a company filed since 2024, map who works on a technology, count a startup's patent family, feed abstracts and claims to an LLM, or get an alert when a competitor publishes a new application.

Google Patents shows at most 1,000 results per search. This scraper can split a search into date ranges to collect tens of thousands of patents from one query, without duplicates.

What you get

For every patent (one row each):

  • Basics (from the search results): publication number, title, text snippet, country, status (granted / application), priority, filing, publication and grant dates, first inventor and first assignee, language, PDF link, thumbnail, countries of the family.
  • Details (on by default, from the patent page): abstract, all inventors and assignees (original and current), application number, kind code, CPC codes, number of claims and independent claims, the first claim, counts of citations / cited-by / family citations / non-patent citations, family id and family members, legal status (Active, Pending, Expired...), the event timeline (filed, published, granted, reassigned), drawings, prior-art keywords, links to the USPTO and Espacenet pages.
  • Full text (optional): the complete claims, the description, the lists of cited and citing patents, legal events and similar documents.
  • Where it came from: the search that found it, Google's rank, the date range (when split).

Errors (a number Google does not know, a search Google rejects) come out as separate error rows that are not charged, and the rest of the run continues.

What it does not do

  • More than 1,000 results per search without splitting. That limit is Google's. Turn on "Split by date" to go past it; results then come in date order, not by relevance.
  • Exact totals. For big searches Google's "about N results" is an estimate; the scraper reports it as resultsOnGoogle in the run summary.
  • All inventors and assignees without details. Google's search results only name the first inventor and the first assignee. Keep "Include details" on when you need the full lists (or the abstract, CPC codes, claims, citations, family).
  • Grant date filter. Google filters on priority, filing and publication dates only. A granted patent is published on its grant date, so use publication date with status "Granted only".
  • PDFs for brand-new publications. Google adds the PDF a little after the publication; until then pdfUrl is empty.
  • Images of the drawings, chemistry, non-patent literature texts, Google Scholar results.
  • Logging in or anything private. Only public pages are read. This scraper is not affiliated with Google.

Google changes its website now and then. The scraper is tested every day; if Google blocks or changes something, runs report clear error rows instead of silently returning nothing, and fixes are published quickly.

Input

FieldDefaultMeaning
queryKeywords, with Google Patents syntax allowed: "solid electrolyte" OR sulfide, TI=(battery), AB=(...), CL=(...), CPC=H01M10/0562.
assigneesPatent owners, one per line (any of them). Use short names: Tesla, Samsung Electronics.
inventorsInventor names, one per line (any of them).
cpcCodesCPC codes, one per line (any of them); a code also matches its sub-codes.
countriesPatent office codes, one per line: US, EP, WO, CN, JP, KR, DE...
dateTypepriorityWhat the date range applies to: priority, filing or publication date.
dateFrom, dateToDate range, YYYY-MM-DD, both ends included.
statusanyGRANT (granted only) or APPLICATION (applications only).
patentTypeanyPATENT (utility) or DESIGN.
languagesallDocument languages (English, German, Chinese, Japanese...).
litigationanyYES (known litigation) or NO.
deduplicatefamilyfamily = one row per patent family (Google's default), publication = every publication.
sortByrelevancerelevance, new or old (newest / oldest filing date first).
patentsPatent numbers (US11000000B2, EP3849475A4), Google Patents patent links and Google Patents search links.
maxResults100Patents per search (and per search link).
includeDetailstrueOpen each patent's page for the abstract, all inventors and assignees, CPC codes, claims, citations, family and legal status.
includeFullTextfalseAlso save the complete claims and description text, citation lists, legal events (needs details).
splitByDatefalseGo past Google's 1,000-result limit by splitting the date range.
onlyNewPatentsfalseMonitor mode: save only patents not seen in earlier runs.
monitorNameName for the monitor's "already seen" list (otherwise per saved Task or per search configuration).
maxConcurrency10Requests at the same time (a run with details is CPU-bound: give it 1-2 GB of memory).
proxyConfigurationApify residential proxyGoogle rate-limits every IP after a few dozen requests, so the scraper uses a fresh IP every few requests. Residential proxies work best; with datacenter proxies the run switches to residential by itself when Google starts blocking.

The search form and the patent list can be used together; each patent number or link always comes with details.

Example: everything a company published since 2024

{
"assignees": ["Tesla"],
"countries": ["US", "WO", "EP"],
"dateType": "publication",
"dateFrom": "2024-01-01",
"sortBy": "new",
"maxResults": 500
}

Example: a technology landscape, past the 1,000 limit

{
"query": "solid state battery",
"cpcCodes": ["H01M10/0562"],
"countries": ["US"],
"dateFrom": "2020-01-01",
"maxResults": 5000,
"splitByDate": true,
"includeDetails": false
}

Without details this is the cheapest way to map a field: number, title, snippet, dates, status, first assignee and inventor for each patent. Run the numbers you care about with details afterwards.

Example: watch a competitor (schedule weekly)

{
"assignees": ["QuantumScape"],
"onlyNewPatents": true,
"monitorName": "quantumscape-watch",
"maxResults": 200
}

The first run saves the baseline. Every later run looks at publications since the last run (minus a 7-day overlap) and saves only the patents it has not seen before. Save it as a Task, schedule it, and add an integration (email, Slack, webhook) that fires when the dataset is not empty.

Example: specific patents with full text

{
"patents": [
"US11000000B2",
"US 10,886,558 B2",
"https://patents.google.com/patent/EP3849475A4/en"
],
"includeFullText": true
}

Build the search on patents.google.com, copy the address bar and paste it:

{
"patents": ["https://patents.google.com/?q=(lidar)&assignee=Waymo&after=priority:20230101&status=GRANT"],
"maxResults": 300
}

Output example

{
"type": "patent",
"publicationNumber": "US11000000B2",
"title": "Repositioning wires and methods for repositioning prosthetic heart valve devices within a heart chamber and related systems, devices and methods",
"url": "https://patents.google.com/patent/US11000000B2/en",
"pdfUrl": "https://patentimages.storage.googleapis.com/78/2c/e4/f1371fcd4ef87a/US11000000.pdf",
"country": "US",
"kindCode": "B2",
"status": "granted",
"legalStatus": "Active",
"legalStatusCategory": "active",
"inventors": ["Jason S. Diedering", "Saravana B. Kumar"],
"assignees": ["4C Medical Technologies Inc"],
"assigneesCurrent": ["4C Medical Technologies Inc"],
"priorityDate": "2018-09-14",
"filingDate": "2019-09-12",
"publicationDate": "2021-05-11",
"grantDate": "2021-05-11",
"applicationNumber": "US16/568,903",
"language": "en",
"abstract": "The invention provides methods, devices and systems for delivering, positioning and/or repositioning an expandable prosthetic heart valve in a patient's heart chamber. ...",
"snippet": "... repositioning an expandable prosthetic heart valve ...",
"cpcCodes": ["A61F2/243", "A61F2/2439", "A61F2/90", "A61F2/966", "A61F2/2418", "A61F2002/9511", "A61F2002/9534"],
"claimsCount": 11,
"independentClaimsCount": 1,
"firstClaim": "1. A method for delivering, positioning and/or repositioning a collapsible and expandable stent having a stent frame within a patient's heart chamber, comprising: ...",
"citationsCount": 9,
"citedByCount": 15,
"familyCitationsCount": 19,
"familyCitedByCount": 20,
"nonPatentCitationsCount": 1,
"familyId": "69773736",
"familyMembers": ["AU2019337666B2", "EP3849475A4", "CA3109662C", "CN112702979A", "JP7018543B2", "US20200085571A1", "WO2020056234A1"],
"familyCountries": ["US", "EP", "JP", "CN", "AU", "CA", "TW", "WO"],
"otherVersions": ["US20200085571A1"],
"thumbnailUrl": "https://patentimages.storage.googleapis.com/68/d9/26/1e0769dff0771b/US11000000-20210511-D00000.png",
"imageUrls": ["https://patentimages.storage.googleapis.com/89/31/d7/5fa0fd8c6c423f/US11000000-20210511-D00000.png"],
"priorArtKeywords": ["looped", "wire", "stent", "looped wire", "delivery catheter"],
"events": [
{ "date": "2019-09-12", "type": "filed", "title": "Application filed by 4C Medical Technologies Inc" },
{ "date": "2020-03-19", "type": "publication", "title": "Publication of US20200085571A1" },
{ "date": "2021-05-11", "type": "granted", "title": "Application granted" }
],
"externalLinks": [
{ "name": "USPTO", "url": "https://patft.uspto.gov/..." },
{ "name": "Espacenet", "url": "https://worldwide.espacenet.com/publicationDetails/biblio?CC=US&NR=11000000B2&KC=B2&FT=D" }
],
"searchQuery": "q=(heart valve repositioning) country=US",
"searchUrl": "https://patents.google.com/?q=(heart+valve+repositioning)&country=US",
"rank": 1,
"dateRange": null,
"detailsScraped": true,
"scrapedAt": "2026-10-21T20:16:40.777Z"
}

Without details the detail fields are null and inventors / assignees hold the first name only. With "Include full text" the item also has claimsText, descriptionText, citations, citedBy, familyCitations, familyCitedBy, legalEvents and similarDocuments.

Download the results as JSON, CSV, Excel or HTML from the run's Output tab. The dataset has three table views: Overview (bibliographic data and links), Classification and claims and Search position. The RUN-SUMMARY record in the key-value store shows, per search, how many results Google reports, how many were saved, pages loaded and any error.

Pricing

You pay per patent, not for compute time or proxies:

EventWhenPrice
PatentEach patent savedsee the Pricing tab
Patent detailEach patent saved with details (includeDetails, and every patent number / link)see the Pricing tab
Actor startOnce per runApify's standard small start fee

Error rows are free. Duplicates are free. Patents skipped by monitor mode are free. Full text costs nothing extra. If the details of a patent cannot be loaded, the patent is saved with its search data, a detailsError note, and only the patent event is charged.

Set Maximum cost per run in the run options to cap spending: the scraper stops cleanly when it is reached and keeps everything already saved.

Tips

  • Use short assignee names (Tesla, not Tesla, Inc.): Google matches the words, and a name with a comma and "Inc" matches far too much.
  • Dates: priority date = the earliest filing in the family (best for "when was this invented"); publication date = when the document appeared (best for monitoring); filing date = this application.
  • Granted only, since a date: status GRANT + date type publication + dateFrom.
  • For big landscapes turn details off first, then run the interesting numbers with details and full text.
  • Patents found by two searches in one run are saved once per search with their own rank; use publicationNumber to merge.
  • The search results group documents by family (Google's default): one row per invention. Set deduplicate to publication to get every country's version.
  • The monitor compares publication numbers, so it works across any search; schedule it weekly, not hourly: Google Patents is updated about once a week.

Patent documents are public records; Google Patents shows them to every visitor without logging in. This scraper reads those public pages at a modest rate, with no login and no bypass of Google's CAPTCHA (a rate-limited request is simply retried from another IP). It is not affiliated with, endorsed by or connected to Google. Patent texts and drawings may be subject to the rights of the patent offices and applicants in some countries; check your use case before republishing them.

Support

Found a problem or need a field? Open an issue on the Issues tab with the run link and the input you used. Issues are answered within a few days.