# US Patents Scraper - Assignee, Inventor & Classification (`scrapers_lat/patents-uspto-scraper`) Actor

Scrape US patents by keyword, assignee company or inventor with title, abstract, grant, filing and priority dates, publication number, full inventor and assignee lists and CPC classification codes. Filter by publication date range. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/scrapers\_lat/patents-uspto-scraper.md
- **Developed by:** [Scrapers Lat](https://apify.com/scrapers_lat) (community)
- **Categories:** Developer tools, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.20 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## 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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## US Patents Scraper - Assignee, Inventor & Classification

> Search US patents by keyword, owner company or inventor and export clean structured records with title, abstract, grant, filing and priority dates, publication number, full inventor and assignee lists, CPC classification codes, current legal status, claim count and citation signals (cited-by, patent and non-patent citations). Filter by publication date range.

**📥 [Input](https://apify.com/scrapers_lat/patents-uspto-scraper/input-schema) · 📤 [Output](https://apify.com/scrapers_lat/patents-uspto-scraper/output-schema) · 💰 [Pricing](https://apify.com/scrapers_lat/patents-uspto-scraper/pricing) · ▶️ [Examples](https://apify.com/scrapers_lat/patents-uspto-scraper/examples)**

![Apify](https://img.shields.io/badge/Platform-Apify-1CE1CE?logo=apify&logoColor=white)
![Patents](https://img.shields.io/badge/Data-US%20Patents-blue)
![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-orange)

<table><tr>
<td align="center"><strong>Assignee & inventor</strong><br>full lists per patent</td>
<td align="center"><strong>Legal status & citations</strong><br>plus abstract, CPC & claims</td>
<td align="center"><strong>JSON / CSV / Excel</strong><br>output formats</td>
</tr></table>

<br>

### Who is it for

| Use case | Who benefits |
|---|---|
| Competitive intelligence | Teams tracking what rivals are patenting and when |
| IP and legal research | Attorneys and analysts building prior-art and portfolio maps |
| R&D and technology scouting | Researchers monitoring inventors and classification areas |
| Data and dashboards | Builders feeding patent signals into their own apps |

### How to use it

1. Add one or more **Search Keywords**, **Assignee Companies** or **Inventor Names**. Each term runs its own search and the results are combined.
2. Optionally set a **Published From** and **Published To** date to focus on a period.
3. Keep **Fetch Full Details** on for the abstract, full inventor and assignee lists, CPC codes, current legal status, claim count and citation signals (cited-by, patent and non-patent citations).
4. Set **Max Patents To Scrape** and run. Export as JSON, CSV or Excel, or pull it through the Apify API.

### Frequently Asked Questions

**Can I search by company?**
Yes. Add one or more assignee company names (for example `Apple Inc` or `Google LLC`) to pull the patents each one owns.

**Can I search by inventor?**
Yes. Add inventor full names to collect every US patent that lists them.

**How do I limit to a time period?**
Set the Published From and Published To dates (YYYY-MM-DD). Only patents published in that range are returned.

**What are CPC codes?**
CPC (Cooperative Patent Classification) codes describe the technology area of a patent, for example G06N3/08. Each record includes the primary code, its section letter and the full list.

**Am I charged for empty runs?**
No. You are only charged per patent returned. A search that matches nothing costs nothing.

<!-- example-tasks -->
<!-- /example-tasks -->

<!-- related-actors -->
### Related scrapers

- [SEC EDGAR Filings Scraper](https://apify.com/scrapers_lat/sec-edgar-scraper)
- [Crunchbase Company Scraper](https://apify.com/scrapers_lat/crunchbase-scraper)
- [Google News Scraper](https://apify.com/scrapers_lat/google-news-scraper)

<!-- /related-actors -->

<!-- scrapers-lat-cta -->
### More scrapers at scrapers.lat

This actor is built and maintained by [scrapers.lat](https://scrapers.lat), where we publish scrapers for public platforms: finance, news, real estate, jobs, e-commerce and government data. Browse the full catalog or ask us for a custom scraper at [scrapers.lat](https://scrapers.lat).

---

> This actor is an independent tool and has no affiliation with the United States Patent and Trademark Office or any patent provider. It only accesses publicly available patent data. Use the results in accordance with the source's terms.

# Actor input Schema

## `searchQueries` (type: `array`):

Keyword or phrase queries to search US patents by (title, abstract and full text). One run searches every term in the list. Leave empty to search only by assignee or inventor.
## `assigneeNames` (type: `array`):

Optional. Company or organization names that own the patents, for example 'Apple Inc' or 'Google LLC'. One search per name.
## `inventorNames` (type: `array`):

Optional. Inventor full names, for example 'Steve Jobs'. One search per name.
## `fromDate` (type: `string`):

Optional. Only patents published on or after this date. Format YYYY-MM-DD, for example 2020-01-01.
## `toDate` (type: `string`):

Optional. Only patents published on or before this date. Format YYYY-MM-DD, for example 2023-12-31.
## `withDetails` (type: `boolean`):

When enabled, each patent is enriched with its abstract, full inventor and assignee lists, CPC classification codes, application number, current legal status, claim count and citation counts (cited-by, patent and non-patent citations). Disable for faster, listing-only results.
## `maxPatents` (type: `integer`):

Maximum number of patents to collect across all searches. Optional.

## Actor input object example

```json
{
  "searchQueries": [
    "artificial intelligence"
  ],
  "withDetails": true,
  "maxPatents": 30
}
````

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "searchQueries": [
        "artificial intelligence"
    ],
    "maxPatents": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers_lat/patents-uspto-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 = {
    "searchQueries": ["artificial intelligence"],
    "maxPatents": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapers_lat/patents-uspto-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 '{
  "searchQueries": [
    "artificial intelligence"
  ],
  "maxPatents": 30
}' |
apify call scrapers_lat/patents-uspto-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "US Patents Scraper - Assignee, Inventor & Classification",
        "description": "Scrape US patents by keyword, assignee company or inventor with title, abstract, grant, filing and priority dates, publication number, full inventor and assignee lists and CPC classification codes. Filter by publication date range. Export to JSON, CSV or Excel.",
        "version": "0.1",
        "x-build-id": "yrHcebWkjDXuzR6L9"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers_lat~patents-uspto-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers_lat-patents-uspto-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/scrapers_lat~patents-uspto-scraper/runs": {
            "post": {
                "operationId": "runs-sync-scrapers_lat-patents-uspto-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/scrapers_lat~patents-uspto-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers_lat-patents-uspto-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": {
                    "searchQueries": {
                        "title": "Search Keywords",
                        "type": "array",
                        "description": "Keyword or phrase queries to search US patents by (title, abstract and full text). One run searches every term in the list. Leave empty to search only by assignee or inventor.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "assigneeNames": {
                        "title": "Assignee Companies (Owners)",
                        "type": "array",
                        "description": "Optional. Company or organization names that own the patents, for example 'Apple Inc' or 'Google LLC'. One search per name.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "inventorNames": {
                        "title": "Inventor Names",
                        "type": "array",
                        "description": "Optional. Inventor full names, for example 'Steve Jobs'. One search per name.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "fromDate": {
                        "title": "Published From",
                        "type": "string",
                        "description": "Optional. Only patents published on or after this date. Format YYYY-MM-DD, for example 2020-01-01."
                    },
                    "toDate": {
                        "title": "Published To",
                        "type": "string",
                        "description": "Optional. Only patents published on or before this date. Format YYYY-MM-DD, for example 2023-12-31."
                    },
                    "withDetails": {
                        "title": "Fetch Full Details",
                        "type": "boolean",
                        "description": "When enabled, each patent is enriched with its abstract, full inventor and assignee lists, CPC classification codes, application number, current legal status, claim count and citation counts (cited-by, patent and non-patent citations). Disable for faster, listing-only results.",
                        "default": true
                    },
                    "maxPatents": {
                        "title": "Max Patents To Scrape",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Maximum number of patents to collect across all searches. Optional."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
