# USPTO Patent Search (`maximedupre/uspto-patent-search`) Actor

Search public U.S. patent records from the official USPTO data service with one keyword, phrase, or Boolean query. Filter by scope, type, owner, inventor, CPC class, status, or date. Get structured records with identifiers, titles, dates, and source links without a source credential.

- **URL**: https://apify.com/maximedupre/uspto-patent-search.md
- **Developed by:** [Maxime Dupré](https://apify.com/maximedupre) (community)
- **Categories:** Developer tools, Business, Education
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$2.70 / 1,000 patents

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### 🔎 Search U.S. patents for prior-art research

Patent researchers, IP teams, R\&D teams, and developers can search public U.S. patent records from the official USPTO data service. Enter one keyword, phrase, or source-compatible Boolean query and get structured patent and published application data for prior-art and patent research. Each saved row can include identifiers, titles, abstracts, owners, inventors, dates, classifications, claims, citations, family details, and official source links when the source provides them.

Use one run for one search setup. The Actor runs without a source credential and does not give legal advice, patentability opinions, freedom-to-operate conclusions, or infringement analysis.

Try these focused searches:

- Search U.S. patents with **[USPTO patent search](https://apify.com/maximedupre/uspto-patent-search/examples/uspto-patent-search)** for a topic or Boolean query.
- Find published pending filings with **[Patent Application Search](https://apify.com/maximedupre/uspto-patent-search/examples/patent-application-search)** when applications are in scope.
- Focus on design documents with **[Design Patent Search](https://apify.com/maximedupre/uspto-patent-search/examples/design-patent-search)** for a design-related query.
- Look for pending filings with **[Patent Pending Search](https://apify.com/maximedupre/uspto-patent-search/examples/patent-pending-search)** and a focused query.
- Filter by organization with **[Patent Search by Assignee](https://apify.com/maximedupre/uspto-patent-search/examples/patent-search-by-assignee)** to review one owner's filings.
- Filter by person with **[Patent Search by Inventor](https://apify.com/maximedupre/uspto-patent-search/examples/patent-search-by-inventor)** to review one inventor's filings.
- Look up a known identifier with **[Patent Number Search](https://apify.com/maximedupre/uspto-patent-search/examples/patent-number-search)** and inspect matching records.

#### 📄 Structured patent records

One saved row is one matching U.S. patent or published application. The `identifiers` object can include patent, application, and publication numbers. A row can include a title, abstract, assignees, applicants, inventors, filing, publication, grant, and priority dates, document type, status, CPC classes, claims, backward citations, citing-patent count, family size, public source details, and a source-confidence signal.

The source may not provide every optional field for every row. Missing optional data is left out rather than guessed. Required rows include at least one identifier, a title, source details, document type, and status.

#### ▶️ Run one focused patent search

Enter the required query and patent scope, then add the filters that match your research question. You can choose patent types, assignees, inventors, CPC classes, status categories, a date field and date window, and a publication-date order.

Set `Maximum results` when you want to stop after a positive number of records. Leave it empty to return all available results until the source is exhausted. The input schema does not define a fixed upper bound for this field.

Each run uses one search setup. Start the run, then open the `results` link to review the returned dataset rows.

#### ⚙️ Input

**Input fields**

| Field | Type | What it does |
| --- | --- | --- |
| `query` | string | Required. Enter one keyword, phrase, or source-compatible Boolean query. |
| `patentScope` | enum string | Required. Choose whether to search granted patents only or include published pending applications. |
| `patentTypes` | array of strings | Optional. Choose one or more patent types. Leave it empty to include all types supported by the source. `patentScope` controls whether granted patents only or published pending applications are included. |
| `assignees` | array of strings | Optional. Add one or more assignee, owner, or applicant names. Results must match at least one name in this list. |
| `inventors` | array of strings | Optional. Add one or more inventor names. Results must match at least one name in this list. |
| `cpcClasses` | array of strings | Optional. Add one or more Cooperative Patent Classification codes, such as `H01M` or `G06F`. |
| `statuses` | array of strings | Optional. Choose one or more source-supported patent status categories. |
| `dateField` | enum string | Choose which patent date the optional `dateFrom` and `dateTo` fields filter. The choice is ignored when both date fields are empty. |
| `dateFrom` | date string | Optional. Start of the inclusive date window in `YYYY-MM-DD` format. |
| `dateTo` | date string | Optional. End of the inclusive date window in `YYYY-MM-DD` format. |
| `sortBy` | enum string | Optional. Choose the publication-date order for returned records. |
| `maxItems` | integer | Optional Actor Work Limit. Enter a positive number to stop after that many records. Leave it empty to return all available results until the source is exhausted. |

**Default input example**

This JSON is copied from the successful current-beta default-input run:

```json
{
  "query": "semiconductor",
  "patentScope": "granted",
  "patentTypes": [
    "utility"
  ],
  "dateField": "filing",
  "sortBy": "publication-desc",
  "maxItems": 20
}
```

#### 🧾 Output

**Run output link**

| Field | Type | What it does |
| --- | --- | --- |
| `results` | URL string | Opens the patent records returned by the search in the default dataset overview. |

**Patent record fields**

Every dataset row follows this one public shape. Optional source fields may be absent when the source does not provide them.

| Field | Type | What it does |
| --- | --- | --- |
| `identifiers` | object | Holds stable patent, application, and publication identifiers. At least one identifier is returned. |
| `identifiers.patentNumber` | string | Number assigned to a granted U.S. patent, when provided by the source. |
| `identifiers.applicationNumber` | string | Application identifier returned by the source, when provided. |
| `identifiers.publicationNumber` | string | Publication identifier returned by the source, when provided. |
| `title` | string | Title of the patent or published application. |
| `abstract` | string | Abstract or source summary, when provided. |
| `assignees` | array of strings | Names of assignees or owners returned by the source. |
| `applicants` | array of strings | Names of applicants returned by the source. |
| `inventors` | array of strings | Names of inventors returned by the source. |
| `filingDate` | date string | Filing date returned by the source. |
| `publicationDate` | date string | Publication date returned by the source. |
| `grantDate` | date string | Grant date returned by the source, when provided. |
| `priorityDates` | array of date strings | Priority dates returned by the source, when provided. |
| `documentType` | string | Patent or application document type returned by the source. |
| `status` | string | Application or grant status returned by the source. |
| `cpcClasses` | array of strings | Cooperative Patent Classification codes returned by the source. |
| `claimCount` | integer | Number of claims reported by the source, when provided. |
| `claims` | array of strings | Patent claims text returned by the source, when provided. |
| `backwardCitations` | array of strings | Prior-art citation references returned by the source, when provided. |
| `citingPatentCount` | integer | Number of citing patents reported by the source, when provided. |
| `familySize` | integer | Patent family size reported by the source, when provided. |
| `source` | object | Holds public source details for this patent record. |
| `source.url` | URL string | Public source page for this patent record. |
| `source.name` | string | Name of the originating public source. |
| `source.jurisdiction` | string | Jurisdiction of the patent record. |
| `sourceConfidence` | number or string | Confidence or provenance signal returned by the source, when provided. |

**Genuine current-beta row**

This complete row is from the successful current-beta default-input run for `semiconductor`. It shows a utility patent with claims, citations, CPC classes, ownership, dates, and public source details.

```json
{
  "identifiers": {
    "patentNumber": "US-12745670-B2",
    "applicationNumber": "17/927601"
  },
  "title": "Encapsulation techniques",
  "documentType": "utility patent",
  "status": "granted",
  "source": {
    "url": "https://ppubs.uspto.gov/basic/#US-12745670-B2",
    "name": "USPTO Patent Public Search",
    "jurisdiction": "US"
  },
  "abstract": "An integrated circuit (IC) assembly and a method for encapsulating of IC are presented. The IC assembly comprises an IC substrate having one or more micro-devices, at least one dielectric matrix element placed on said IC substrate over at least one of its one or more micro-devices; and an encapsulation element applied over said IC substrate and said at least one dielectric matrix element placed thereon to enclose and seal said IC substrate.",
  "assignees": [
    "ELTA SYSTEMS LTD."
  ],
  "applicants": [
    "ELTA SYSTEMS LTD."
  ],
  "inventors": [
    "Shapir; Itzhak",
    "Kedem; Michael"
  ],
  "grantDate": "2026-09-22",
  "cpcClasses": [
    "H01L23/24",
    "H01L21/56",
    "H01L23/29",
    "H01L23/31",
    "H01L23/66",
    "H01L25/065",
    "H10W44/20",
    "H10W74/01",
    "H10W74/10",
    "H10W74/47",
    "H10W76/47",
    "H10W90/00",
    "H10W74/016",
    "H10W74/114",
    "H10W44/241"
  ],
  "claimCount": 15,
  "claims": [
    "1. An integrated circuit (IC) assembly, comprising: an IC substrate having one or more micro-devices; at least one dielectric matrix element placed on said IC substrate over at least one of its one or more micro-devices; and an encapsulation element applied over said IC substrate and said at least one dielectric matrix element placed thereon to enclose and seal said IC substrate; and at least one spacer element placed on the at least one dielectric matrix element, the at least one spacer element partitioning between the at least one dielectric matrix element and the encapsulation element, and wherein the at least one spacer element is a detached portion removed from an aligning element configured to accurately place the at least one dielectric matrix element on the IC substrate; and wherein the at least one dielectric matrix element comprises a plurality of loop, hook, and/or bristle elements.",
    "2. The IC assembly of claim 1 wherein the at least one spacer element is a sheet of electrically insulating material having thickness in a range of 0.1 to 0.3 millimeters.",
    "3. The IC assembly of claim 2, wherein the at least one dielectric matrix element is made of at least one of: a thin film or foil, a breathable material, a permeable material, a cellular material, a fibrous material.",
    "4. The IC assembly of claim 1, wherein the at least one dielectric matrix element is made of at least one of: a thin film or foil, a breathable material, a permeable material, a cellular material, a fibrous material.",
    "5. The IC assembly of claim 1, wherein the encapsulation element comprises plastic or resin mold.",
    "6. The IC assembly of claim 1, further comprising a circuit board electrically coupled to the IC substrate and its one or more micro-devices.",
    "7. The IC assembly of claim 6, further comprising one or more electrical conductors electrically coupled to the circuit board and extending through the encapsulation element to provide electrical connectivity to said circuit board.",
    "8. The IC assembly of claim 1, wherein the at least one dielectric matrix element is made of at least one of: a thin film or foil, a breathable material, a permeable material, a cellular material, or a fibrous material.",
    "9. A multilayered circuit structure, comprising: at least one integrated circuit (IC) assembly and at least one additional circuit board having one or more devices and/or ICs attached thereto, the at least one IC assembly comprising: an IC substrate having one or more micro-devices; a circuit board electrically coupled to the IC substrate and its one or more micro-devices; at least one dielectric matrix element placed on said IC substrate over at least one of its one or more micro-devices; and an encapsulation element applied over said IC substrate and said at least one dielectric matrix element placed thereon to enclose and seal said IC substrate; wherein said at least one additional circuit board is attached and electrically coupled to said at least one IC assembly to form a stack structure.",
    "10. The multilayered circuit structure of claim 9, further comprising one or more electrical conductors electrically extending through the encapsulation element to provide electrical connectivity between the at least one IC assembly and the at least one additional circuit board.",
    "11. The multilayered circuit structure of claim 10, further comprising at least one via formed in the at least one additional circuit board for establishing electrical connectivity with at least one of the one or more electrical conductors.",
    "12. A method of encapsulating an integrated circuit (IC) including one or more micro-devices, the method comprising: placing at least one dielectric matrix element on an IC substrate over at least one of one or more micro-devices thereof; and applying an encapsulation mold over said IC substrate and said at least one dielectric matrix element placed thereon to enclose and seal said IC substrate; wherein the placing of the at least one dielectric matrix element comprises attaching the at least one dielectric matrix element to a carrier element configured to facilitate accurate placement of the at least one dielectric matrix element on the IC substrate.",
    "13. The method of claim 12, further comprising placing the at least one dielectric matrix element with a spacer element thereon.",
    "14. The method of claim 12, further comprising removing the carrier element before applying the encapsulation coat.",
    "15. The method of claim 14 wherein the removing of the carrier element comprises detaching at least one portion of the carrier element located on said at least one dielectric matrix element."
  ],
  "backwardCitations": [
    "5889232",
    "7700414",
    "9346668",
    "2003/0159262",
    "2007/0035001",
    "2012/0067871",
    "2014/0268625",
    "2016/0133537",
    "2017/0103973",
    "2017/0338161"
  ],
  "sourceConfidence": "USPAT",
  "familySize": 2,
  "citingPatentCount": 0
}
```

#### 💳 Pricing

Pay per event: $0.0027 for each matching U.S. patent or published application saved to the dataset after a successful search. See the Pricing tab for the active billing details.

#### 🔌 Integrations

Open the `results` link in Apify, export the default dataset, or use the dataset URL in an Apify API workflow.

For a short walkthrough:

https://www.youtube.com/watch?v=bNACk1\_S\_6w\&list=PLObrtcm1Kw6MUrlLNDbK9QRg8VDJg0gOW\&index=4

#### ❓ FAQ

##### Can I search published pending applications?

Yes. Set `patentScope` to `granted-and-pending`, then use `statuses` to focus on pending or granted records. Patent types can narrow the document types in the same search.

##### Can I filter by owner, inventor, CPC class, or date?

Yes. Add assignees, inventors, CPC classes, and a date window. Choose `dateField` to filter by filing, publication, or grant date, then set the optional inclusive `dateFrom` and `dateTo` values.

##### Is this a Google Patents search?

No. This Actor searches public U.S. patent records from the official USPTO data service. It is not a Google Patents search or an international patent search.

##### Can I search outside the United States?

No. The scope is public U.S. patent records. The Actor does not provide international or worldwide patent coverage.

##### What does a missing output field mean?

The source may not provide every optional field for every patent. Missing optional data is left out rather than guessed. Required rows still include at least one identifier, a title, source details, document type, and status.

##### Is the maximum result count required?

No. Enter a positive `maxItems` value to stop after that many records, or leave it empty to return all available results until the source is exhausted.

##### Does this give legal advice or a patentability opinion?

No. It returns public records for research. It does not give legal advice, patentability opinions, freedom-to-operate conclusions, or infringement analysis.

### 📝 Changelog

**v0.0** (27-09-2026)

- Initial release.

### 🆘 Support

For issues, questions, or feature requests, [file a ticket](https://console.apify.com/actors/maximedupre~uspto-patent-search/issues) and I'll fix or implement it in less than 24h 🫡

### 🔗 Related Actors

- [CourtListener Scraper](https://apify.com/maximedupre/courtlistener): Search public opinions and federal dockets for legal research around a patent topic.
- [Federal Register Scraper — Rules & Regulations](https://apify.com/maximedupre/federal-register): Find official U.S. rules, notices, and citations that may affect a technology area.
- [ORCID Researcher Profile Search](https://apify.com/maximedupre/orcid-researcher-profile-search): Find public researcher profiles, affiliations, works, and identifiers when exploring inventors or a technical field.
- [USPTO Patent Search — Prior-Art, Citations & Patent Data](https://apify.com/nexgendata/uspto-patent-search): Compare another U.S. patent workflow for prior-art, citation, and patent-data research.
- [Google Patents Intelligence: Claims, Citations, Family Tree](https://apify.com/scrapemint/google-patents-scraper): Use a broader Google Patents workflow when you need family, citation, or PDF-link data across jurisdictions.

**Made with ❤️ by Maxime Dupré**

# Actor input Schema

## `query` (type: `string`):

Required. Enter one keyword, phrase, or source-compatible Boolean query.

## `patentScope` (type: `string`):

Required. Choose whether to search granted patents only or include published pending applications.

## `patentTypes` (type: `array`):

Optional. Choose one or more patent types. Leave this empty to include all types supported by the source. The Patent scope field controls whether granted patents only or published pending applications are included.

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

Optional. Add one or more assignee, owner, or applicant names. Results must match at least one name in this list.

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

Optional. Add one or more inventor names. Results must match at least one name in this list.

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

Optional. Add one or more Cooperative Patent Classification codes, such as H01M or G06F.

## `statuses` (type: `array`):

Optional. Choose one or more source-supported patent status categories.

## `dateField` (type: `string`):

Choose which patent date the optional From and To fields filter. The choice is ignored when both date fields are empty.

## `dateFrom` (type: `string`):

Optional. Start of the inclusive date window in YYYY-MM-DD format.

## `dateTo` (type: `string`):

Optional. End of the inclusive date window in YYYY-MM-DD format.

## `sortBy` (type: `string`):

Optional. Choose the publication date order for returned records.

## `maxItems` (type: `integer`):

Optional stop for broad searches. Enter a positive number to stop after that many records. Leave this empty to get all available results until the source is exhausted.

## Actor input object example

```json
{
  "query": "\"solid state\" AND battery",
  "patentScope": "granted",
  "patentTypes": [
    "utility"
  ],
  "dateField": "filing",
  "sortBy": "publication-desc",
  "maxItems": 20
}
```

# Actor output Schema

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

Open the patent records returned by this search.

# 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 = {
    "query": "semiconductor",
    "patentScope": "granted",
    "patentTypes": [
        "utility"
    ],
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("maximedupre/uspto-patent-search").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 = {
    "query": "semiconductor",
    "patentScope": "granted",
    "patentTypes": ["utility"],
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("maximedupre/uspto-patent-search").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "query": "semiconductor",
  "patentScope": "granted",
  "patentTypes": [
    "utility"
  ],
  "maxItems": 20
}' |
apify call maximedupre/uspto-patent-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,maximedupre/uspto-patent-search"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/R4KYYSPH0W0PqOewJ/builds/QCfNrNe7hKcu2ouyD/openapi.json
