How to scrape Google Patents with Python

One endpoint, every patent as clean JSON, saved to CSV.

Free to try, no card Title, inventor, assignee, dates Clean JSON, no HTML parsing
THREE STEPS

How do you get started?

From zero to live patent data in about two minutes:

  1. 1

    Create a free account. Try it free, no card needed.

  2. 2

    Copy your API key from the dashboard.

  3. 3

    Run the curl or the script below. Clean JSON comes back, ready to save as CSV.

PULLED LIVE FROM THE API, AUGUST 4, 2026

One request, real response

The hard part of scraping Google Patents yourself is driving a browser, dodging blocks, and parsing a page that keeps changing. Instead you send one HTTP request to a search endpoint and get clean JSON back. First a quick test with curl:

# one charge per search, however many patents come back; zero results cost nothing curl "https://crustapi.com/v1/search?type=patents&q=battery" -H "x-api-key: YOUR_KEY"

Then the same call in Python with the requests library. Install it with pip install requests, drop in a key, and run:

# pip install requests, then run this file import requests resp = requests.get( "https://crustapi.com/v1/search", params={"type": "patents", "q": "battery"}, headers={"x-api-key": "YOUR_KEY"}, ) data = resp.json() for patent in data["organic"]: print(patent["publicationNumber"], patent["title"], patent["link"])

The results live in the organic array. Each item has the publication number, title, inventor, assignee, the priority, filing, grant, and publication dates, a link to the page on Google Patents, and a PDF link. Here are two of the patents that came back, shown as CSV so they drop straight into Sheets or a spreadsheet:

publicationNumbertitleinventorassigneefilingDategrantDatelink
CN113650574BBattery electricity supplementing system for vehicle冯文强优毅时代武汉科技有限公司2021-07-262023-07-07https://patents.google.com/patent/CN113650574B/en
US10862092B2Secondary battery with separator having a solid electrolyte, battery pack, and ...Kazuomi YOSHIMAKabushiki Kaisha Toshiba2017-09-122020-12-08https://patents.google.com/patent/US10862092B2/en

Change q to any topic, company, or inventor you would search on Google Patents, like solid state electrolyte or lithium anode. Results come from offices worldwide, so you will see US, CN, JP, and EP publication numbers side by side.

WHAT EVERY PATENT INCLUDES

What data do you get?

Every result comes complete, so you build a dataset or a prior-art list with no second call. The same record as CSV, ready for a spreadsheet or a database:

publicationNumbertitleinventorassigneepriorityDatefilingDategrantDatepublicationDatelanguagelinkpdfUrl
CN113650574BBattery electricity supplementing system for vehicle冯文强优毅时代武汉科技有限公司2021-07-262021-07-262023-07-072023-07-07enhttps://patents.google.com/patent/CN113650574B/enhttps://patentimages.storage.googleapis.com/0d/a7/e4/ff1b6829fc78e6/CN113650574B.pdf

Or the same record as JSON, exactly as the API returns it:

// one patent in full { "title": "Battery electricity supplementing system for vehicle", "snippet": "The invention provides a vehicle storage battery power supply system, which comprises a vehicle control unit VCU, a battery management system BMS, a low-voltage storage battery sensor, a vehicle body controller BCM and a gateway which are sequentially connected in a communication way through buses ...", "link": "https://patents.google.com/patent/CN113650574B/en", "priorityDate": "2021-07-26", "filingDate": "2021-07-26", "grantDate": "2023-07-07", "publicationDate": "2023-07-07", "inventor": "冯文强", "assignee": "优毅时代武汉科技有限公司", "publicationNumber": "CN113650574B", "language": "en", "thumbnailUrl": "https://patentimages.storage.googleapis.com/59/11/fe/5cd5cbfc963006/HDA0003180919360000011.png", "pdfUrl": "https://patentimages.storage.googleapis.com/0d/a7/e4/ff1b6829fc78e6/CN113650574B.pdf", "figures": [ { "imageUrl": "https://patentimages.storage.googleapis.com/df/66/6c/67c5dd82f7b508/HDA0003180919360000011.png", "thumbnailUrl": "https://patentimages.storage.googleapis.com/b1/2c/94/5ab60acc085592/HDA0003180919360000011.png" }, { "imageUrl": "https://patentimages.storage.googleapis.com/2a/e0/d8/0a22be04e70bc9/HDA0003180919360000012.png", "thumbnailUrl": "https://patentimages.storage.googleapis.com/21/28/65/6179b9dc59cac5/HDA0003180919360000012.png" } ] }
HOW IT COMPARES

vs writing your own scraper

You can build a Google Patents scraper with a headless browser and a parser, and plenty of tutorials show how. The trade is maintenance. Here is the difference in practice.

Writing it yourselfCrustAPI
SetupInstall a headless browser, handle blocks and page changesOne GET request, no browser
OutputParse the HTML yourself; fields break when the layout changesClean JSON from the API, or the same rows as CSV
MaintenanceFix the scraper each time the page changesWe keep it working
Free tierFree, but you pay in time and blocked requestsFree to try, no card
Cost modelServer, proxy, and developer timePay per successful search, however many patents come back; empty searches free
Storing the dataYours to manageNo storage limits. Export to CSV or a database
PRICING

How much does scraping Google Patents cost?

You pay the applicable price per successful search, however many patents come back. A search that returns none costs nothing. Funds are prepaid and never expire.

DepositGoogle Search / 1,000 requestsMaps / 1,000 businessesLinkedIn reads / 1,000 requestsPeople, Jobs, Refresh / 1,000 units
$10+$1.00$1.96$6.00$1.96
$149+$0.76$1.49$4.50$1.49
$549+$0.56$1.10$3.30$1.10
$1,999+$0.41$0.80$2.45$0.80
$6,500+$0.33$0.65$1.95$0.65
$27,500+$0.28$0.55$1.65$0.55
$50,000+$0.26$0.50$1.50$0.50
$100,000+$0.20$0.40$1.50$0.40

Every eligible account gets $6 of free usage monthly. Each deposit keeps its prices until spent; paid funds never expire. People and Jobs bill per successful search, Refresh per accessible profile. Full profiles in People use the read rate per full profile. See all billing details.

Larger deposits unlock lower endpoint prices. Each deposit keeps its prices until spent. See the full deposit table on the pricing page. Prices in USD, ex-tax.

WHO IT'S FOR

Who scrapes Google Patents?

Run your first patents search free
Try it free. No card, no contract.
Try for free
THE LAST STEP

Page through results and save to CSV

Each call returns one page of results. Add a page number and loop to pull more, then write everything to a CSV file with Python's built-in csv module. No extra libraries. This walks pages 1 to 5 and writes one row per patent:

# page through results and save each patent to a CSV file import csv, requests rows = [] for page in range(1, 6): data = requests.get( "https://crustapi.com/v1/search", params={"type": "patents", "q": "battery", "page": page}, headers={"x-api-key": "YOUR_KEY"}, ).json() rows.extend(data["organic"]) with open("patents.csv", "w", newline="") as f: writer = csv.writer(f) writer.writerow(["publicationNumber", "title", "inventor", "assignee", "filingDate", "grantDate", "link"]) for p in rows: writer.writerow([p["publicationNumber"], p["title"], p.get("inventor", ""), p.get("assignee", ""), p.get("filingDate", ""), p.get("grantDate", ""), p["link"]])

Open patents.csv in Sheets or Excel and you have a finished list. Swap the query, run it again, and append to build a bigger dataset.

Related: Google Patents API · Google Patents Scraper · Google Search API · Google Scholar API · API docs

FAIR PLAY

When a different tool fits better: a bulk download of the full patent corpus, legal-status feeds, or a formal data license are jobs for the USPTO, EPO, or Google's public BigQuery patents dataset, not a search scraper. This endpoint returns the public search results anyone sees on Google Patents, which is what most prior-art, research, and monitoring work needs.

BEFORE YOU ASK

Common questions

No. With the CrustAPI endpoint you send one HTTP request with the requests library and get clean JSON back. There is no browser to drive and no HTML to parse, so the code above is the whole scraper.

Publication number, title, inventor, assignee, the priority, filing, grant, and publication dates, a link to the Google Patents page, a PDF link, and figure images when the patent has them.

Each call returns one page. Add a page number to the request and loop, as the Page through results section shows. You pay one charge per search, however many patents come back, so each page you pull costs one request charge.

Logged-out, public-only collection has repeatedly defeated computer-fraud and contract claims. Google's Terms restrict automated access that violates instructions like robots.txt. What you get is the same public search result anyone sees on Google Patents.

The response is plain JSON, so Python's built-in csv module writes it to a file in a few lines. The Page through results section above has the exact code, no extra libraries.

Yes. Try it free, no credit card, and paid funds never expire. That is enough to pull several full result pages while you build.

WORKS WITH YOUR STACK

Try it on a topic you know

the free plan covers a real search. Run one query and look at the JSON that comes back.

Try for free
No credit card required