Export Patent Details from Google Patents to CSV using Python

Google Patents Search is a Google-powered search engine designed for exploring patents. Using these search capabilities, you can get various matching patents related to your query.

Each patent provided in the search results has a patent details page. This page provides comprehensive information about it including, but not limited to the title, abstract, inventor details, filing and publication dates, and legal status. Users can view the full patent document, claims, and cited references, along with diagrams and drawings if available. The page also links to similar patents, related scholarly articles, and legal events when available.

To scrape data from this page, you can use SerpApi's Google Patents Details API.

Why Use SerpApi?

SerpApi manages the intricacies of scraping and returns structured JSON results, which allows you to save time and effort. We take care of proxies and any CAPTCHAs that might be encountered, so that you don't have to worry about your searches being blocked.

We also do all the work to maintain all of our parsers and adapt them to respond to changes on Google's side. This is important, as Google is constantly experimenting with new layouts, new elements, and other changes. By taking care of this for you on our side, we eliminate a lot of time and complexity from your workflow.

More About SerpApi's Google Patents Details API

Let's try searching for a patent on Google Patents related to stem cells. Let's say this is the one I'm interested in and want to get all the data for:

To scrape this data, we will use SerpApi's Google Patents Details API. To visualize the data returned by our API, you can head to our playground and run the query using the patent_id:

SerpApi Playground - SerpApi
Test SerpApi’s Google Search, Google Maps, YouTube, Bing, Walmart, Ebay, Baidu, Yandex and more APIs for free in the interactive playground!

Here is the response in our playground:

In this way, our Google Patent Details API can get you all the information about any patent in a JSON format.

Getting Started

To begin extracting Google Patents data, first, create a free account on serpapi.com. You'll receive one hundred free search credits each month to explore the API.

  • Get your SerpApi API Key from this page.
  • [Optional but Recommended] Set your API key in an environment variable, instead of directly pasting it in the code. Refer here to understand more about using environment variables. For this tutorial, I have saved the API key in an environment variable named "SERPAPI_API_KEY".
  • Next, on your local computer, you need to install thegoogle-search-results Python library: pip install google-search-results
As a side note: You can use this library to scrape search results from other Google Search pages and other search engines, not just Google Patents.

More About Our Python Libraries

We have two separate Python libraries serpapi and google-search-results, and both work perfectly fine. However, serpapi is a new one, and all the examples you can find on our website are from the old one google-search-results. If you'd like to use our Python library with all the examples from our website, you should install the google-search-results module instead of serpapi.

For this blog post, I am using google-search-results because all of our documentation references this one.

You may encounter issues if you have both libraries installed at the same time. If you have the old library installed and want to proceed with using our new library, please follow these steps:

  1. Uninstall google-search-results module from your environment.
  2. Make sure that neither serpapi nor google-search-results are installed at that stage.
  3. Install serpapi module, for example with the following command if you're using pip: pip install serpapi

Get Patent Details For Any Particular Patent

Then we can head to a code editor, and import the necessary libraries to use the Google Patent Details API:

from serpapi import GoogleSearch
import os

Following this, we can construct a search query and add the necessary parameters for making a request to the API:

params = {
  "engine": "google_patents_details",
  "patent_id": "patent/US8460931B2",
  "api_key": os.environ["SERPAPI_API_KEY"]
}

search = GoogleSearch(params)
result = search.get_dict()
print(result)
💡
Alternatively, if you have a scholar ID, you can use that in the patent_id field. This looks like: "patent_id": "scholar/<scholar ID>"

An alternate way to build the request is by heading to our playground, and searching with the relevant parameter values, and then using the 'Export to Code' option as demonstrated below:

The expected response from the API is JSON formatted information on the patent which matches the ID we mentioned. SerpApi's Google Patent Details API is able to extract title, type, pdf, publication_number, country, prior_art_keywords, prior_art_date, application_number, inventors, priority_date and more data.

The response looks something like this:

{
  "search_metadata": {
    "id": "67a55e69fbb48cc432a9c45f",
    "status": "Success",
    "json_endpoint": "https://serpapi.com/searches/2a306fa8f3b94f84/67a55e69fbb48cc432a9c45f.json",
    "created_at": "2025-02-07 01:14:17 UTC",
    "processed_at": "2025-02-07 01:14:17 UTC",
    "google_patents_details_url": "https://patents.google.com/patent/US8460931B2",
    "raw_html_file": "https://serpapi.com/searches/2a306fa8f3b94f84/67a55e69fbb48cc432a9c45f.html",
    "total_time_taken": 1.46
  },
  "search_parameters": {
    "engine": "google_patents_details",
    "patent_id": "patent/US8460931B2"
  },
  "title": "Neural progenitor cells derived from embryonic stem cells",
  "type": "patent",
  "pdf": "https://patentimages.storage.googleapis.com/c9/79/67/ab230add82358d/US8460931.pdf",
  "publication_number": "US8460931B2",
  "country": "United States",
  "prior_art_keywords": ["cells", "cell", "neural", "differentiation", "human"],
  "prior_art_date": "2000-03-14",
  "application_number": "US13/361,976",
  "inventors": [
    {
      "name": "Benjamin Eithan Reubinoff",
      "link": "https://patents.google.com/?inventor=Benjamin+Eithan+Reubinoff",
      "serpapi_link": "https://serpapi.com/search.json?engine=google_patents&inventor=Benjamin+Eithan+Reubinoff"
    },
    ...
  ],
  "assignees": [
    "Monash University",
    "Hadasit Medical Research Services and Development Co",
    "National University of Singapore",
    "ES Cell International Pte Ltd"
  ],
  "priority_date": "2000-03-14",
  "filing_date": "2012-01-31",
  "publication_date": "2013-06-11",
  "worldwide_applications": {
    "2001": [
      {
        "filing_date": "2001-03-14",
        "country_code": "JP",
        "application_number": "JP2001567299A",
        "document_id": "patent/JP4889902B2/en",
        "legal_status_cat": "not_active",
        "legal_status": "Expired - Fee Related"
      },
      ...
    ],
    ...
  },
  "events": [
    {
      "date": "2000-03-14",
      "title": "Priority claimed from AUPQ6211A",
      "type": "external-priority",
      "document_id": "patent/AUPQ621100A0/en"
    },
    ...
  ],
  "external_links": [
    {
      "text": "USPTO",
      "link": "https://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&p=1&u=/netahtml/PTO/srchnum.html&r=1&f=G&l=50&d=PALL&s1=8460931.PN."
    },
    ...
  ],
  "images": [
    "https://patentimages.storage.googleapis.com/b1/98/7e/7903f5cbf842f3/US08460931-20130611-D00001.png",
    "https://patentimages.storage.googleapis.com/58/00/3c/3b63644776d014/US08460931-20130611-D00002.png",
    ...
  ],
  "classifications": [
    {
      "code": "C12N5/0623",
      "description": "Stem cells",
      "leaf": true,
      "first_code": true,
      "is_cpc": true
    },
    ...
  ],
  "abstract": "The present invention relates to undifferentiated human embryonic stem cells, methods of cultivation and propagation and production of differentiated cells. In particular it relates to the production of human ES cells capable of yielding somatic differentiated cells in vitro, as well as committed progenitor cells such as neural progenitor cells capable of giving rise to mature somatic cells including neural cells and/or glial cells and uses thereof. This invention provides methods that generate in vitro and in vivo models of controlled differentiation of ES cells towards the neural lineage. The model, and cells that are generated along the pathway of neural differentiation may be used for: the study of the cellular and molecular biology of human neural development, discovery of genes, growth factors, and differentiation factors that play a role in neural differentiation and regeneration, drug discovery and the development of screening assays for teratogenic, toxic and neuroprotective effects.",
  "description_link": "https://serpapi.com/searches/67a55e69fbb48cc432a9c45f/google_patents_details/description.html",
  "claims": [
    "1. A method of inducing neural differentiation of embryonic stem (ES) cells comprising:\n(a) culturing isolated, undifferentiated, human ES cells in the presence of serum free medium supplemented with growth factors which include epidermal growth factor (EGF) and basic fibroblast growth factor (bFGF) to produce neurospheres containing neural progenitor cells, wherein said neurospheres do not express alphafetoprotein; and\n(b) culturing said neurospheres under conditions that induce neural differentiation, thereby inducing neural differentiation of the ES cells.",
    ...
  ],
  "child_applications": [
    {
      "application_number": "US13/874,507",
      "relation_type": "Continuation",
      "representative_publication": "US20130330821A1",
      "primary_language": "en",
      "priority_date": "2000-03-14",
      "filing_date": "2013-05-01",
      "title": "Neural progenitor cells derived from embryonic stem cells"
    }
  ],
  "parent_applications": [
    {
      "application_number": "US12/157,864",
      "relation_type": "Division",
      "representative_publication": "US8137969B2",
      "primary_language": "en",
      "priority_date": "2000-03-14",
      "filing_date": "2008-06-13",
      "title": "Neural progenitor cells derived from embryonic stem cells"
    }
  ],
  "priority_applications": [
    {
      "application_number": "US13/361,976",
      "representative_publication": "US8460931B2",
      "primary_language": "en",
      "priority_date": "2000-03-14",
      "filing_date": "2012-01-31",
      "title": "Neural progenitor cells derived from embryonic stem cells"
    },
    ...
  ],
  "applications_claiming_priority": [
    {
      "application_number": "AUPQ6211",
      "filing_date": "2000-03-14"
    },
    ...
  ],
  "family_id": "27158213",
  "patent_citations": {
    "original": [
      {
        "publication_number": "US5200148A",
        "primary_language": "en",
        "priority_date": "1988-01-11",
        "publication_date": "1993-04-06",
        "assignee_original": "Fuji Photo Film Co., Ltd.",
        "title": "Chemical assay tape",
        "patent_id": "patent/US5200148A/en",
        "serpapi_link": "https://serpapi.com/search.json?engine=google_patents_details&patent_id=patent%2FUS5200148A%2Fen"
      },
      ...
    ],
    "family_to_family": [
      {
        "publication_number": "WO2001051345A1",
        "primary_language": "en",
        "priority_date": "2000-01-07",
        "publication_date": "2001-07-19",
        "assignee_original": "Fmc Corporation",
        "title": "Mooring systems with active force reacting systems and passive damping",
        "patent_id": "patent/WO2001051345A1/en",
        "serpapi_link": "https://serpapi.com/search.json?engine=google_patents_details&patent_id=patent%2FWO2001051345A1%2Fen"
      },
      ...
    ]
  },
  "non_patent_citations": [
    {
      "title": "Anderson et al. \"Can Stem Cells Cross Lineage Boundaries?\", Nature Medicine, 7(4): 393-395, 2001."
    },
    ...
  ],
  "cited_by": {
    "original": [
      {
        "publication_number": "US10485829B2",
        "primary_language": "en",
        "priority_date": "2009-11-17",
        "publication_date": "2019-11-26",
        "assignee_original": "Astellas Institute For Regenerative Medicine",
        "title": "Methods of producing human RPE cells and pharmaceutical preparations of human RPE cells",
        "patent_id": "patent/US10485829B2/en",
        "serpapi_link": "https://serpapi.com/search.json?engine=google_patents_details&patent_id=patent%2FUS10485829B2%2Fen"
      },
      ...
    ],
    "family_to_family": [
      {
        "publication_number": "US6667176B1",
        "primary_language": "en",
        "priority_date": "2000-01-11",
        "publication_date": "2003-12-23",
        "assignee_original": "Geron Corporation",
        "title": "cDNA libraries reflecting gene expression during growth and differentiation of human pluripotent stem cells",
        "patent_id": "patent/US6667176B1/en",
        "serpapi_link": "https://serpapi.com/search.json?engine=google_patents_details&patent_id=patent%2FUS6667176B1%2Fen"
      },
      ...
    ]
  },
  "similar_documents": [
    {
      "is_patent": true,
      "publication_number": "US8460931B2",
      "primary_language": "en",
      "publication_date": "2013-06-11",
      "title": "Neural progenitor cells derived from embryonic stem cells",
      "patent_id": "patent/US8460931B2/en",
      "serpapi_link": "https://serpapi.com/search.json?engine=google_patents_details&patent_id=patent%2FUS8460931B2%2Fen"
    },
    ...
  ],
  "legal_events": [
    {
      "date": "2012-04-10",
      "code": "AS",
      "title": "Assignment",
      "attributes": [
        {
          "label": "Owner name",
          "value": "MONASH UNIVERSITY, AUSTRALIA"
        },
        ...
      ]
    },
    ...
  ]
}
💡
If you are looking to get a list of patents matching a query before getting details on those patents, you can use our Google Patents API. You find the documentation for it here: https://serpapi.com/google-patents-api

Here is a blog post about how to scrape Google Patents with any query in Python: https://serpapi.com/blog/how-to-scrape-google-patents-results/

Export The Results To a CSV file

First, we need to import the csv module to use it in our code. So we can add this line to the top of the file:

import csv

Then to retrieve Google Patents Results for a given search query and add the details to a CSV, you can add the following code to the existing code:

header = ["title", "pdf", "publication_number", "country", "application_number", "priority_date", "filing_date"]

with open("google_patent_details.csv", "w", encoding="UTF8", newline="") as f:
    writer = csv.writer(f)
    writer.writerow(header)
    writer.writerow([result.get('title'), result.get('pdf'), result.get('publication_number'), result.get('country'), result.get('application_number'), result.get('priority_date'), result.get('filing_date')])

Here are what the results look like:

You can add details for more patents in the same CSV file as well by querying for additional patents.

Conclusion

We've covered how to scrape Google Patent Details with SerpApi's Google Patent Details API using SerpApi's Python library.

I hope you found this tutorial helpful. If you have any questions, don't hesitate to reach out to me at sonika@serpapi.com.

Documentation

Related Posts

How to Scrape Google Patents Results
Google Patents Search is a search engine for searching patents powered by Google. You can search from titles, abstracts, descriptions, etc. Besides that, Google allows you to filter and search with multiple options. Google Patents search results is valuable resource. You can track innovations with Google patents to identify potential
Scraping Google Patents with SerpApi and Python
Learn about our new Google Patents API, and scrape the patent information with SerpApi!
Connect SERP API with Google Sheets (No Code)
Here is how to connect SERP API (SerpApi) to Google Sheets using a no-code solution