# Google Patents Scraper: Patents, Claims, Citations, Family (`scrapemint/google-patents-scraper`) Actor

Search Google Patents at scale. Pulls patent metadata, inventors, assignees, full claims, patent + non-patent citations, family members across jurisdictions, legal status, and PDF links. One row per patent. Pay per row.

- **URL**: https://apify.com/scrapemint/google-patents-scraper.md
- **Developed by:** [Kennedy Mutisya](https://apify.com/scrapemint) (community)
- **Categories:** Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Google Patents Scraper: Patents, Claims, Citations, Family

Scrape Google Patents at scale. Pulls patent metadata (title, abstract, filing / publication / priority dates), inventors and assignees, CPC and IPC classifications, full claims text, full description, forward and backward citations, non-patent literature citations, family members across jurisdictions, legal status, and PDF URLs. One row per patent. Pay per row.

**Built for** patent attorneys and IP firms running prior art sweeps, in-house IP teams managing portfolios, R&D leads tracking competitor filings, M&A due diligence teams scoring target IP estates, IP licensing brokers finding monetizable patents, university tech transfer offices, and AI teams training models on patent corpora.

**Keywords this actor ranks for:** google patents api, google patents scraper, patent search api, USPTO scraper, EPO patent api, prior art search tool, patent citations scraper, patent family lookup, CPC classification search, patent claims extractor, assignee patent portfolio, freedom to operate search, patent prior art tools.

---

### Why this actor

| Other patent tools | **This actor** |
|---|---|
| PatSnap, Innography, Derwent: $5K to $50K per seat per year | Pay per row scraped. No per seat license. |
| USPTO Patent Public Search: free but US only, slow UI | Covers US, EP, WO, CN, JP, KR, DE, GB, FR, CA, AU, IN. JSON output. |
| Lens.org: free but limited bulk export | No row cap. Stream straight to your warehouse. |
| Espacenet: free but no bulk API for full text | Optional fetchClaims and fetchDescription pull full body text per row. |
| One field returned per query | Mix queries with assignee searches, inventor searches, and direct patent IDs in one run. |
| No citation tree | Optional fetchCitations and fetchCitedBy walk both directions of the citation graph. |
| No family lookup | Optional fetchFamily returns every jurisdiction equivalent in one row. |
| Manual PDF download | fetchPdf resolves the patentimages.storage.googleapis.com URL per row. |

---

### How it works

```mermaid
flowchart LR
    A[Queries<br/>Assignees<br/>Inventors<br/>Patent IDs] --> B[Seed router]
    B --> C[Search pages<br/>?q=...]
    B --> D[Detail pages<br/>/patent/...]
    C --> E[Parse search-result-item<br/>Extract patent number,<br/>title, snippet]
    E --> F{Need full detail?<br/>fetchClaims, citations,<br/>family, PDF}
    F -->|yes| D
    F -->|no| G[(Basic row)]
    D --> H[Parse detail DOM<br/>itemprop attributes]
    H --> I[Title + abstract]
    H --> J[Inventors + assignees]
    H --> K[Dates<br/>filing / pub / priority / grant]
    H --> L[CPC + IPC codes]
    H --> M[Optional<br/>claims + description]
    H --> N[Optional<br/>cited + citing + family]
    H --> O[Optional<br/>PDF URL]
    I --> P[(Enriched row)]
    J --> P
    K --> P
    L --> P
    M --> P
    N --> P
    O --> P
````

Search results give Google Patents a query and pull paginated results. Detail pages are visited only when an enrichment toggle (claims, description, citations, family, PDF) is on or when the user passes patent IDs directly.

***

### What you get per row

```mermaid
flowchart LR
    R[Patent row] --> R1[Identity<br/>publicationNumber url]
    R --> R2[Title + abstract]
    R --> R3[Inventors<br/>+ assignees original / current]
    R --> R4[Dates<br/>filing pub priority grant]
    R --> R5[Classifications<br/>cpcCodes ipcCodes]
    R --> R6[Status<br/>legalStatus familyId]
    R --> R7[Optional<br/>claims description]
    R --> R8[Optional<br/>citedPatents citingPatents]
    R --> R9[Optional<br/>family across jurisdictions]
    R --> R10[Optional<br/>pdfUrl]
```

Publication number is the canonical patent identifier across reissues and republications. Use it to dedupe across runs (built in via `dedupe: true`) and to fetch family members or citations on demand.

***

### Quick start

**Prior art sweep on a topic, last 10 years**

```json
{
  "queries": ["solid state lithium battery cathode coating"],
  "yearFrom": 2015,
  "fetchClaims": true,
  "fetchCitations": true,
  "maxPatents": 100
}
```

**Full portfolio of one assignee**

```json
{
  "assignees": ["Tesla, Inc."],
  "fetchFamily": true,
  "maxPatents": 500,
  "maxPagesPerQuery": 50
}
```

**Track recent filings in CPC class H04L (digital information transmission)**

```json
{
  "queries": ["data transmission protocol"],
  "cpcClasses": ["H04L"],
  "yearFrom": 2024,
  "statusFilter": "application",
  "maxPatents": 200
}
```

**Direct patent IDs with full enrichment**

```json
{
  "patentIds": ["US10000000B2", "EP3000000A1", "WO2022123456A1"],
  "fetchClaims": true,
  "fetchDescription": true,
  "fetchCitations": true,
  "fetchCitedBy": true,
  "fetchFamily": true
}
```

**Inventor's full output**

```json
{
  "inventors": ["Yann LeCun"],
  "jurisdictions": ["US", "EP", "WO"],
  "maxPatents": 100
}
```

**Citation graph for a key patent (one hop forward)**

```json
{
  "patentIds": ["US7295961B2"],
  "fetchCitedBy": true,
  "fetchCitations": true
}
```

***

### Sample output

```json
{
  "publicationNumber": "US10000000B2",
  "url": "https://patents.google.com/patent/US10000000B2/en",
  "title": "Coherent ladar using intra-pixel quadrature detection",
  "abstract": "A coherent LADAR uses a frequency modulated (FM) master oscillator (MO) light signal...",
  "inventors": ["Joseph Marron"],
  "assigneesOriginal": ["Raytheon Company"],
  "assigneesCurrent": ["Raytheon Co"],
  "filingDate": "2017-08-30",
  "publicationDate": "2018-06-19",
  "priorityDate": "2017-08-30",
  "grantDate": "2018-06-19",
  "applicationNumber": "US15/691,621",
  "familyId": "62604000",
  "cpcCodes": ["G01S17/325", "G01S7/4912", "G01S17/89"],
  "ipcCodes": ["G01S17/00", "G01S7/491"],
  "legalStatus": "Active",
  "claims": "1. A coherent light detection and ranging (LADAR) system, comprising: a master oscillator...",
  "citedPatents": [
    {
      "publicationNumber": "US4830486A",
      "priorityDate": "1984-03-16",
      "publicationDate": "1989-05-16",
      "assignee": "Goodman Joseph M",
      "title": "Frequency modulated lasar radar"
    }
  ],
  "citedNonPatentLiterature": [
    "Stutzki et al., \"FMCW LiDAR with electrically chirped semiconductor laser\", Optics Express 2018"
  ],
  "citingPatents": [
    {
      "publicationNumber": "US11486986B2",
      "publicationDate": "2022-11-01",
      "assignee": "Aurora Innovation Inc",
      "title": "LIDAR system with sample integration"
    }
  ],
  "family": [
    { "publicationNumber": "EP3676631A1", "country": "EP", "publicationDate": "2020-07-08", "title": "Coherent LIDAR" },
    { "publicationNumber": "WO2019046011A1", "country": "WO", "publicationDate": "2019-03-07", "title": "Coherent LIDAR" }
  ],
  "pdfUrl": "https://patentimages.storage.googleapis.com/c2/13/.../US10000000B2.pdf",
  "scrapedAt": "2026-04-29T17:30:00.000Z"
}
```

***

### Who uses this

| Role | Use case |
|---|---|
| Patent attorney | Prior art sweep across journals + conferences + patents. Export to IDS docket. |
| In-house IP team | Track competitor filings weekly. Score portfolio overlap. |
| R\&D lead | Find prior work in a CPC class before greenlighting a project. |
| M\&A diligence | Score target's IP estate. Walk family + citations to find true coverage. |
| Licensing broker | Find monetizable patents by assignee + age + cited-by count. |
| University tech transfer | Track university filings and citations. Find licensees in cited-by lists. |
| Trademark / IP analyst | Build patent portfolio reports per industry and jurisdiction. |
| AI / LLM team | Train domain models on patent corpora. Use family relationships as positives. |
| Litigation support | Build prior art trees back from a target patent. Walk citingPatents for invalidation candidates. |

***

### Input reference

| Field | Type | What it does |
|---|---|---|
| `queries` | string\[] | Free text Google Patents queries. Supports operators: "exact phrase", inventor:Smith, assignee:Apple, CPC=H04L. |
| `patentIds` | string\[] | Direct patent publication numbers. Example: US10000000B2. |
| `assignees` | string\[] | Company names. Returns every patent assigned to that company. |
| `inventors` | string\[] | Inventor names. Returns every patent listing the named inventor. |
| `yearFrom` / `yearTo` | integer | Filing year window. 0 means no bound. |
| `jurisdictions` | string\[] | Patent offices: US, EP, WO, CN, JP, KR, DE, GB, FR, CA, AU, IN. Empty means all. |
| `statusFilter` | enum | any (default), grant, or application. |
| `cpcClasses` | string\[] | CPC codes to filter by. Example: \["H04L", "G06N3/08"]. |
| `language` | enum | Patent text language. Affects search and display. |
| `fetchClaims` | boolean | Pull full claims text per patent. |
| `fetchDescription` | boolean | Pull full description. Body can run to tens of thousands of characters. |
| `fetchCitations` | boolean | Walk backward references. Adds citedPatents\[] and citedNonPatentLiterature\[]. |
| `fetchCitedBy` | boolean | Walk forward references. Adds citingPatents\[]. |
| `fetchFamily` | boolean | Patent family across jurisdictions. Adds family\[]. |
| `fetchPdf` | boolean | Resolve PDF URL. On by default. |
| `maxPatents` | integer | Hard cap on rows per run. 0 means unlimited. |
| `maxPagesPerQuery` | integer | Pages of 10 results per query. Cap is 100. |
| `dedupe` | boolean | Skip publication numbers from previous runs. |
| `navigationDelayMs` | integer | Pause between page loads. 3000 to 6000 ms is the safe band. |
| `concurrency` | integer | Parallel browser pages. Keep at 1 to 2 unless you have a residential pool. |
| `proxyConfiguration` | object | Apify proxy. Datacenter works for low volume. Residential past a few hundred requests. |

***

### API call

```bash
curl -X POST \
  "https://api.apify.com/v2/acts/YOUR_USER~google-patents-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": ["lithium iron phosphate cathode coating"],
    "yearFrom": 2015,
    "fetchClaims": true,
    "fetchCitations": true,
    "fetchFamily": true,
    "maxPatents": 100
  }'
```

***

### Pricing

The first few rows per run are free so you can validate the schema before paying. After that, one charge per patent row regardless of how many enrichment fields you turn on. Claims, description, citations, family, and PDF fetches are included at no extra per row charge.

***

### FAQ

#### Why scrape patents instead of using a paid database?

Commercial patent databases (PatSnap, Derwent, Innography) charge $5,000 to $50,000 per seat per year. For most teams running occasional prior art searches, portfolio reviews, or competitor sweeps, pay per row beats a per seat license by an order of magnitude.

#### How is this different from USPTO Patent Public Search?

USPTO is free but covers US only and has a slow UI. Google Patents covers US, EP, WO (PCT), CN, JP, KR, DE, GB, FR, CA, AU, IN, and more. The actor ships JSON output instead of HTML pages and supports bulk runs without a session limit.

#### Does it cover patent applications or only granted patents?

Both by default. Filter with `statusFilter: "grant"` for granted only or `statusFilter: "application"` for pending only.

#### Can I find every patent assigned to a company?

Yes. Pass the company name in `assignees[]`. The actor wraps it in `assignee:"Name"` and walks paginated results. Set `maxPagesPerQuery: 50` to get up to 500 rows per assignee.

#### How do I do a prior art search?

Three approaches and you can mix all three in one run. (1) `queries` with technical terms describing the invention. (2) `cpcClasses` filtering to the relevant CPC subclass. (3) `patentIds` of known relevant patents combined with `fetchCitations: true` to walk backward references. The combination gives a full prior art tree.

#### What is patent family?

A patent family is the set of equivalent patents filed in different jurisdictions for the same invention. A US patent often has EP, WO, CN, and JP family members. `fetchFamily: true` returns these so you can map global coverage in one row.

#### How fast is the actor?

With `concurrency: 2` and `navigationDelayMs: 3500` the actor processes about 30 to 50 rows per minute on Apify residential proxy. Detail pages are slower than search pages because they render more DOM. Disable `fetchDescription` if you don't need the long body, it's the slowest enrichment.

#### Will Google Patents block me?

The actor uses Apify residential proxy by default. Datacenter IPs are accepted for low volume. Past a few hundred requests in a short window Google Patents will throttle datacenter ranges. Residential rotates per request and stays clean.

#### Can I get the patent's PDF?

Yes. `fetchPdf: true` (the default) resolves the direct PDF URL hosted on patentimages.storage.googleapis.com. Pipe that URL into Apify's Website Content Crawler to extract the full PDF text if you need OCR.

#### Does it work for non-English patents?

Yes. Set `language` to de, fr, es, ja, ko, or zh. The actor pulls the patent in that language. Most CN and JP patents have machine translation available, which Google Patents shows by default.

***

### Related actors

- **Google Scholar Scraper**. Pair patents with the academic literature side of prior art. Same shape applied to papers.
- **SEC 8-K Event Tracker**. Catch material patent events disclosed in 8-K filings.
- **Website Content Crawler**. Pipe `pdfUrl` from each patent row into the crawler for full text extraction with OCR.
- **GitHub Issue Monitor**. Catch open source projects implementing techniques described in your patents.
- **HN Lead Monitor**. Track Hacker News mentions of competitor patents for licensing leads.
- **Reddit Lead Monitor**. Same applied to Reddit, useful for tracking patent enforcement chatter.

# Actor input Schema

## `queries` (type: `array`):

Free text Google Patents queries. Supports operators: "exact phrase", inventor:Smith, assignee:Apple, CPC=H04L. Example: \["battery thermal management", "assignee:Tesla cathode"].

## `patentIds` (type: `array`):

Direct patent publication numbers. Example: US10000000B2, EP3000000A1, WO2022123456A1. The actor normalizes formatting.

## `assignees` (type: `array`):

Company names to search as assignees. Example: \["Apple Inc", "Tesla", "Samsung Electronics"]. Returns every patent assigned to that company.

## `inventors` (type: `array`):

Inventor names to search. Example: \["John Smith", "Elon Musk"]. Returns every patent listing the named inventor.

## `yearFrom` (type: `integer`):

Lower bound on filing year. 0 means no lower bound.

## `yearTo` (type: `integer`):

Upper bound on filing year. 0 means no upper bound.

## `jurisdictions` (type: `array`):

Patent offices to include. Empty means all.

## `statusFilter` (type: `string`):

Limit results by legal status.

## `cpcClasses` (type: `array`):

Filter to specific Cooperative Patent Classification codes. Example: \["H04L", "G06N3/08"]. Empty means no filter.

## `language` (type: `string`):

Patent text language for search and display.

## `fetchClaims` (type: `boolean`):

Pull the full claims text per patent. Adds claims (string) to the row. Adds one extra request per patent.

## `fetchDescription` (type: `boolean`):

Pull the full description text per patent. This is the long body and can run to tens of thousands of characters.

## `fetchCitations` (type: `boolean`):

For each patent, pull the cited patent list and non-patent literature (NPL). Adds citedPatents\[] and citedNonPatentLiterature\[] to the row.

## `fetchCitedBy` (type: `boolean`):

For each patent, pull the list of later patents that cite this one. Adds citingPatents\[] to the row.

## `fetchFamily` (type: `boolean`):

Pull the patent family list (equivalents in other jurisdictions). Adds family\[] to the row with publication numbers and filing offices.

## `fetchPdf` (type: `boolean`):

Resolve the direct PDF URL hosted on patentimages.storage.googleapis.com per patent.

## `maxPatents` (type: `integer`):

Hard cap on patent rows pushed per run. 0 means unlimited.

## `maxPagesPerQuery` (type: `integer`):

Pages of 10 results to walk per query. Google Patents caps at 100 pages.

## `dedupe` (type: `boolean`):

Skip patent numbers already pushed in previous runs. Keyed on publication number. Turn off to refresh stale rows.

## `navigationDelayMs` (type: `integer`):

Pause between page loads. Google Patents throttles fast scraping. 3000 to 6000 ms is the safe range.

## `concurrency` (type: `integer`):

Parallel browser pages. Keep at 1 to 2 unless you have a residential proxy pool.

## `proxyConfiguration` (type: `object`):

Apify proxy. Google Patents accepts datacenter for low volume. Switch to residential past a few hundred requests.

## Actor input object example

```json
{
  "queries": [],
  "patentIds": [],
  "assignees": [],
  "inventors": [],
  "yearFrom": 0,
  "yearTo": 0,
  "jurisdictions": [],
  "statusFilter": "any",
  "cpcClasses": [],
  "language": "en",
  "fetchClaims": false,
  "fetchDescription": false,
  "fetchCitations": false,
  "fetchCitedBy": false,
  "fetchFamily": false,
  "fetchPdf": true,
  "maxPatents": 100,
  "maxPagesPerQuery": 10,
  "dedupe": true,
  "navigationDelayMs": 3500,
  "concurrency": 2,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapemint/google-patents-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    } }

# Run the Actor and wait for it to finish
run = client.actor("scrapemint/google-patents-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call scrapemint/google-patents-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapemint/google-patents-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Google Patents Scraper: Patents, Claims, Citations, Family",
        "description": "Search Google Patents at scale. Pulls patent metadata, inventors, assignees, full claims, patent + non-patent citations, family members across jurisdictions, legal status, and PDF links. One row per patent. Pay per row.",
        "version": "0.1",
        "x-build-id": "o83MtNAZMaFOnKXrk"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapemint~google-patents-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapemint-google-patents-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapemint~google-patents-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapemint-google-patents-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapemint~google-patents-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapemint-google-patents-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "queries": {
                        "title": "Search queries",
                        "type": "array",
                        "description": "Free text Google Patents queries. Supports operators: \"exact phrase\", inventor:Smith, assignee:Apple, CPC=H04L. Example: [\"battery thermal management\", \"assignee:Tesla cathode\"].",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "patentIds": {
                        "title": "Patent numbers",
                        "type": "array",
                        "description": "Direct patent publication numbers. Example: US10000000B2, EP3000000A1, WO2022123456A1. The actor normalizes formatting.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "assignees": {
                        "title": "Assignees (companies)",
                        "type": "array",
                        "description": "Company names to search as assignees. Example: [\"Apple Inc\", \"Tesla\", \"Samsung Electronics\"]. Returns every patent assigned to that company.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "inventors": {
                        "title": "Inventors",
                        "type": "array",
                        "description": "Inventor names to search. Example: [\"John Smith\", \"Elon Musk\"]. Returns every patent listing the named inventor.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "yearFrom": {
                        "title": "Filing date from year",
                        "minimum": 0,
                        "maximum": 2100,
                        "type": "integer",
                        "description": "Lower bound on filing year. 0 means no lower bound.",
                        "default": 0
                    },
                    "yearTo": {
                        "title": "Filing date to year",
                        "minimum": 0,
                        "maximum": 2100,
                        "type": "integer",
                        "description": "Upper bound on filing year. 0 means no upper bound.",
                        "default": 0
                    },
                    "jurisdictions": {
                        "title": "Jurisdictions",
                        "type": "array",
                        "description": "Patent offices to include. Empty means all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "US",
                                "EP",
                                "WO",
                                "CN",
                                "JP",
                                "KR",
                                "DE",
                                "GB",
                                "FR",
                                "CA",
                                "AU",
                                "IN"
                            ],
                            "enumTitles": [
                                "US (USPTO)",
                                "EP (European Patent Office)",
                                "WO (PCT / WIPO)",
                                "CN (China)",
                                "JP (Japan)",
                                "KR (Korea)",
                                "DE (Germany)",
                                "GB (United Kingdom)",
                                "FR (France)",
                                "CA (Canada)",
                                "AU (Australia)",
                                "IN (India)"
                            ]
                        },
                        "default": []
                    },
                    "statusFilter": {
                        "title": "Status filter",
                        "enum": [
                            "any",
                            "grant",
                            "application"
                        ],
                        "type": "string",
                        "description": "Limit results by legal status.",
                        "default": "any"
                    },
                    "cpcClasses": {
                        "title": "CPC classifications",
                        "type": "array",
                        "description": "Filter to specific Cooperative Patent Classification codes. Example: [\"H04L\", \"G06N3/08\"]. Empty means no filter.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "en",
                            "de",
                            "fr",
                            "es",
                            "ja",
                            "ko",
                            "zh"
                        ],
                        "type": "string",
                        "description": "Patent text language for search and display.",
                        "default": "en"
                    },
                    "fetchClaims": {
                        "title": "Fetch full claims",
                        "type": "boolean",
                        "description": "Pull the full claims text per patent. Adds claims (string) to the row. Adds one extra request per patent.",
                        "default": false
                    },
                    "fetchDescription": {
                        "title": "Fetch full description",
                        "type": "boolean",
                        "description": "Pull the full description text per patent. This is the long body and can run to tens of thousands of characters.",
                        "default": false
                    },
                    "fetchCitations": {
                        "title": "Fetch citations",
                        "type": "boolean",
                        "description": "For each patent, pull the cited patent list and non-patent literature (NPL). Adds citedPatents[] and citedNonPatentLiterature[] to the row.",
                        "default": false
                    },
                    "fetchCitedBy": {
                        "title": "Fetch citing patents",
                        "type": "boolean",
                        "description": "For each patent, pull the list of later patents that cite this one. Adds citingPatents[] to the row.",
                        "default": false
                    },
                    "fetchFamily": {
                        "title": "Fetch family members",
                        "type": "boolean",
                        "description": "Pull the patent family list (equivalents in other jurisdictions). Adds family[] to the row with publication numbers and filing offices.",
                        "default": false
                    },
                    "fetchPdf": {
                        "title": "Include PDF URL",
                        "type": "boolean",
                        "description": "Resolve the direct PDF URL hosted on patentimages.storage.googleapis.com per patent.",
                        "default": true
                    },
                    "maxPatents": {
                        "title": "Total maximum patents",
                        "minimum": 0,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Hard cap on patent rows pushed per run. 0 means unlimited.",
                        "default": 100
                    },
                    "maxPagesPerQuery": {
                        "title": "Max pages per query",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Pages of 10 results to walk per query. Google Patents caps at 100 pages.",
                        "default": 10
                    },
                    "dedupe": {
                        "title": "Deduplicate across runs",
                        "type": "boolean",
                        "description": "Skip patent numbers already pushed in previous runs. Keyed on publication number. Turn off to refresh stale rows.",
                        "default": true
                    },
                    "navigationDelayMs": {
                        "title": "Delay between navigations (ms)",
                        "minimum": 0,
                        "maximum": 60000,
                        "type": "integer",
                        "description": "Pause between page loads. Google Patents throttles fast scraping. 3000 to 6000 ms is the safe range.",
                        "default": 3500
                    },
                    "concurrency": {
                        "title": "Concurrency",
                        "minimum": 1,
                        "maximum": 8,
                        "type": "integer",
                        "description": "Parallel browser pages. Keep at 1 to 2 unless you have a residential proxy pool.",
                        "default": 2
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy. Google Patents accepts datacenter for low volume. Switch to residential past a few hundred requests.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
