# USPTO Patent Assignment Search Scraper (`crawlerbros/uspto-patent-assignment-search-scraper`) Actor

Search USPTO's official Patent Assignment Center for patent ownership-transfer records. Look up by patent number, application number, publication number, PCT number, reel/frame, or search by assignee/assignor/correspondent name. No login required.

- **URL**: https://apify.com/crawlerbros/uspto-patent-assignment-search-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Developer tools, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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.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

## USPTO Patent Assignment Search Scraper

Search the official USPTO Assignment Center for **patent ownership-transfer records** — every recorded assignment, security interest, merger, and name change on a US patent since August 1980. No login, no API key, no cookies required.

### What is a patent assignment?

When a patent's ownership changes hands — an inventor assigns rights to their employer, a startup is acquired, a patent is used as loan collateral, or a company changes its legal name — the transaction is recorded with the USPTO's Assignment Center. This actor pulls those public records directly from the same database that powers `assignmentcenter.uspto.gov`.

### What you can search

- **By patent number** — full assignment history for one issued patent
- **By application number** — full assignment history for one filed application
- **By publication number** — pre-grant publication number lookup
- **By PCT number** — international (PCT) application number lookup
- **By international registration number** — WIPO-linked national-phase lookup
- **By reel/frame** — the exact USPTO recordation identifier for one assignment document
- **By assignee (owner) name** — every assignment where a company/person received rights, e.g. `Google LLC`
- **By assignor (seller) name** — every assignment where a company/person gave up rights, e.g. an inventor or an acquired company
- **By correspondent name** — every assignment filed through a specific law firm or agent

### Output fields

Each row is one patent-assignment record:

| Field | Description |
|---|---|
| `patentNumber`, `applicationNumber`, `publicationNumber`, `pctNumber`, `internationalRegistrationNumber` | Whichever identifiers exist for the underlying patent/application |
| `inventionTitle`, `inventors[]` | Bibliographic details of the underlying patent |
| `filingDate`, `issueDate`, `publicationDate` | ISO `YYYY-MM-DD` dates |
| `assignors[]` | `{ name, entityNumber, executionDate, acknowledgedDate }` — who gave up rights, their order among co-assignors, and when they signed |
| `assignorNames[]` | Flat list of assignor names |
| `assignees[]` | `{ name, entityNumber, address, city, state, stateCode, zipCode, country, countryCode }` — who received rights; `stateCode`/`countryCode` are USPTO's standardized short codes (US state abbreviation / ISO-3166 alpha-2) |
| `assigneeNames[]` | Flat list of assignee names |
| `correspondentName`, `correspondentAddress` | Law firm / agent of record on the filing |
| `conveyanceText`, `conveyanceCode` | Type of transaction and its official USPTO code, e.g. "ASSIGNMENT OF ASSIGNOR'S INTEREST" (23), "SECURITY INTEREST" (27), "MERGER" (28), "CHANGE OF NAME" (33) — see the full list under `conveyanceType` below |
| `assignmentSequence` | This assignment's position in the patent's full recordation history (1 = earliest) |
| `isDeleted`, `deletionNote` | Whether USPTO has flagged this specific recordation as later superseded/corrected, and its note (only present on exact-identifier modes) |
| `reelNumber`, `frameNumber` | USPTO's official recordation identifier |
| `recordationDate`, `mailDate`, `receiptDate`, `assignorExecutionDate` | ISO `YYYY-MM-DD` dates |
| `pageCount`, `attorneyDocketNumber`, `domesticRepresentative` | Filing metadata, when present |
| `documentUrl` | Direct PDF of the recorded assignment document — omitted when USPTO has no scanned image on file for that recordation |
| `sourceUrl` | Link back into the USPTO Assignment Center for this record |
| `recordType`, `scrapedAt` | Always `"patentAssignment"` and the UTC scrape timestamp |

Fields that USPTO doesn't have data for on a given record are simply omitted — no `null`/`"N/A"` placeholders.

### Input

| Field | Type | Applies to | Description |
|---|---|---|---|
| `mode` | select | — | Which search axis to use (see list above) |
| `patentNumber` | string | `byPatentNumber` | e.g. `7379963` |
| `applicationNumber` | string | `byApplicationNumber` | e.g. `09615663` |
| `publicationNumber` | string | `byPublicationNumber` | e.g. `20140053053` |
| `pctNumber` | string | `byPctNumber` | e.g. `PCT/US21/36002` |
| `internationalRegNumber` | string | `byInternationalRegNumber` | WIPO international registration number |
| `reelNumber` / `frameNumber` | string | `byReelFrame` | e.g. `69252` / `524` |
| `assigneeName` | string | `byAssigneeName` | Case-insensitive substring match |
| `assignorName` | string | `byAssignorName` | Case-insensitive substring match |
| `correspondentName` | string | `byCorrespondentName` | Case-insensitive substring match |
| `executionDateFrom` / `executionDateTo` | date (`YYYY-MM-DD`) | all modes | Restrict to assignments the assignor(s) signed (executed) in this window |
| `recordationDateFrom` / `recordationDateTo` | date (`YYYY-MM-DD`) | all modes | Restrict to assignments USPTO officially recorded in this window (distinct from execution date) |
| `filingDateFrom` / `filingDateTo` | date (`YYYY-MM-DD`) | all modes | Restrict to assignments whose underlying patent/application was filed in this window |
| `mailDateFrom` / `mailDateTo` | date (`YYYY-MM-DD`) | exact-identifier modes | Restrict to assignments USPTO mailed a recordation notice for in this window |
| `conveyanceTypeContains` | string | all modes | Case-insensitive substring filter on the transaction type |
| `conveyanceType` | select | exact-identifier modes | Restrict to one official USPTO conveyance/transaction type (19 official types, e.g. Assignment, Security interest, Merger, License, Change of name) |
| `maxItems` | integer | all modes | Hard cap on emitted records (1–1000) |
| `proxyConfiguration` | proxy | all modes | Optional — USPTO does not block datacenter IPs; used only as an automatic fallback |

#### Example: full assignment history of a patent

```json
{
  "mode": "byPatentNumber",
  "patentNumber": "7379963",
  "maxItems": 50
}
````

#### Example: every patent Google LLC has acquired since 2020

```json
{
  "mode": "byAssigneeName",
  "assigneeName": "Google LLC",
  "executionDateFrom": "2020-01-01",
  "maxItems": 100
}
```

#### Example: everything a specific law firm has filed

```json
{
  "mode": "byCorrespondentName",
  "correspondentName": "Fish & Richardson",
  "maxItems": 100
}
```

#### Example: only one specific conveyance type on a patent, recorded in a given year

```json
{
  "mode": "byPatentNumber",
  "patentNumber": "6285999",
  "conveyanceType": "39",
  "recordationDateFrom": "2002-01-01",
  "recordationDateTo": "2002-12-31",
  "maxItems": 50
}
```

### FAQ

**Do I need a USPTO account or API key?**
No. Patent assignment search is public. USPTO only requires an account to *file* a new assignment, not to search existing ones.

**Why is my assignee/assignor/correspondent search capped at 100 results?**
USPTO's own name-search API returns a maximum of ~100 rows per query with no further pagination. Narrow your search with an execution-date range, or use one of the exact-identifier modes (patent/application/publication/PCT number, reel/frame) which support full pagination.

**What does "reel/frame" mean?**
It's USPTO's internal filing identifier for one recorded assignment document — the paper-based equivalent of a page number in a giant ledger. Every recorded assignment has a unique reel and frame.

**Can I download the actual assignment document?**
Yes — every record includes a `documentUrl` pointing directly to the scanned PDF USPTO has on file.

**Is this the same as trademark assignment search?**
No — this actor covers **patents** only. Trademark ownership records live in a separate USPTO database.

**Why doesn't `conveyanceTypeContains` or `conveyanceType` narrow my assignee/assignor/correspondent search?**
USPTO's name-search API doesn't return a conveyance/transaction type field at all (only the exact-identifier lookups — patent/application/publication/PCT number, reel/frame — do). When conveyance data isn't available for a record, the filter passes it through rather than silently hiding it.

**Why doesn't `mailDateFrom`/`mailDateTo` narrow my assignee/assignor/correspondent search?**
Same reason — USPTO's mailroom notification date is only returned by the exact-identifier lookups, not the name-search API. `recordationDateFrom`/`recordationDateTo` has the same limitation for name searches (`executionDateFrom`/`executionDateTo` and `filingDateFrom`/`filingDateTo` work everywhere, since those dates come from fields present in both endpoints).

**What is `isDeleted`?**
USPTO occasionally flags a previously recorded assignment as superseded — usually because a corrective assignment was filed to fix an error. `isDeleted` (and the accompanying `deletionNote`, when USPTO supplies one) surfaces that flag; it's only available on exact-identifier lookups.

### Data source

All data comes directly from USPTO's public Assignment Center (`assignmentcenter.uspto.gov`), the official successor to the legacy "Patent Assignment Search" and "Assignments on the Web" tools. Records cover patent assignments recorded from August 1980 to the present.

# Actor input Schema

## `mode` (type: `string`):

Which USPTO Assignment Center lookup axis to use.

## `patentNumber` (type: `string`):

US patent number, digits only, e.g. `7379963`.

## `applicationNumber` (type: `string`):

US patent application serial number, e.g. `09615663`.

## `publicationNumber` (type: `string`):

US patent application publication number, e.g. `20140053053`.

## `pctNumber` (type: `string`):

PCT international application number, e.g. `PCT/US21/36002`.

## `internationalRegNumber` (type: `string`):

WIPO international registration number linked to a US national-phase patent.

## `reelNumber` (type: `string`):

USPTO assignment recordation reel number, e.g. `69252`.

## `frameNumber` (type: `string`):

USPTO assignment recordation frame number, e.g. `524`.

## `assigneeName` (type: `string`):

Company or individual name that received patent rights, e.g. `Google LLC`. Case-insensitive substring match.

## `assignorName` (type: `string`):

Inventor or company that transferred patent rights away, e.g. `Page, Larry`. Case-insensitive substring match.

## `correspondentName` (type: `string`):

Law firm or agent of record on the assignment filing, e.g. `Fish & Richardson`. Case-insensitive substring match.

## `executionDateFrom` (type: `string`):

Only include assignments with an assignor execution date on/after this ISO date (`YYYY-MM-DD`). Applies to all modes.

## `executionDateTo` (type: `string`):

Only include assignments with an assignor execution date on/before this ISO date (`YYYY-MM-DD`). Applies to all modes.

## `conveyanceTypeContains` (type: `string`):

Case-insensitive substring filter on the conveyance/transaction type, e.g. `security`, `merger`, `assignment`, `change of name`.

## `conveyanceType` (type: `string`):

Restrict results to one official USPTO conveyance/transaction type. Only exact-identifier modes (patent/application/publication/PCT/international-reg number, reel/frame) carry this code; assignee/assignor/correspondent name searches don't return it and pass through unfiltered.

## `recordationDateFrom` (type: `string`):

Only include assignments USPTO recorded on/after this ISO date (`YYYY-MM-DD`). This is USPTO's own filing-receipt date, distinct from the assignor's execution date. Only exact-identifier modes carry this date; name searches pass through unfiltered.

## `recordationDateTo` (type: `string`):

Only include assignments USPTO recorded on/before this ISO date (`YYYY-MM-DD`). Only exact-identifier modes carry this date; name searches pass through unfiltered.

## `filingDateFrom` (type: `string`):

Only include assignments whose underlying patent/application was filed on/after this ISO date (`YYYY-MM-DD`). Applies to all modes.

## `filingDateTo` (type: `string`):

Only include assignments whose underlying patent/application was filed on/before this ISO date (`YYYY-MM-DD`). Applies to all modes.

## `mailDateFrom` (type: `string`):

Only include assignments USPTO mailed a recordation notice for on/after this ISO date (`YYYY-MM-DD`). Only exact-identifier modes carry this date; name searches pass through unfiltered.

## `mailDateTo` (type: `string`):

Only include assignments USPTO mailed a recordation notice for on/before this ISO date (`YYYY-MM-DD`). Only exact-identifier modes carry this date; name searches pass through unfiltered.

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

Hard cap on emitted assignment records. Name-based searches (assignee/assignor/correspondent) are capped at 100 matches per USPTO's export API.

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

USPTO's Assignment Center does not block datacenter IPs, so this is optional and used only as an automatic fallback if direct requests are rate-limited.

## Actor input object example

```json
{
  "mode": "byPatentNumber",
  "patentNumber": "7379963",
  "conveyanceType": "",
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `assignments` (type: `string`):

Dataset containing all scraped USPTO patent assignment records.

# 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 = {
    "mode": "byPatentNumber",
    "patentNumber": "7379963",
    "conveyanceType": "",
    "maxItems": 20,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/uspto-patent-assignment-search-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 = {
    "mode": "byPatentNumber",
    "patentNumber": "7379963",
    "conveyanceType": "",
    "maxItems": 20,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/uspto-patent-assignment-search-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 '{
  "mode": "byPatentNumber",
  "patentNumber": "7379963",
  "conveyanceType": "",
  "maxItems": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call crawlerbros/uspto-patent-assignment-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "USPTO Patent Assignment Search Scraper",
        "description": "Search USPTO's official Patent Assignment Center for patent ownership-transfer records. Look up by patent number, application number, publication number, PCT number, reel/frame, or search by assignee/assignor/correspondent name. No login required.",
        "version": "1.0",
        "x-build-id": "43v6VTZhydw9w2fAc"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~uspto-patent-assignment-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-uspto-patent-assignment-search-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/crawlerbros~uspto-patent-assignment-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-uspto-patent-assignment-search-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/crawlerbros~uspto-patent-assignment-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-uspto-patent-assignment-search-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",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Search mode",
                        "enum": [
                            "byPatentNumber",
                            "byApplicationNumber",
                            "byPublicationNumber",
                            "byPctNumber",
                            "byInternationalRegNumber",
                            "byReelFrame",
                            "byAssigneeName",
                            "byAssignorName",
                            "byCorrespondentName"
                        ],
                        "type": "string",
                        "description": "Which USPTO Assignment Center lookup axis to use.",
                        "default": "byPatentNumber"
                    },
                    "patentNumber": {
                        "title": "Patent number (mode=byPatentNumber)",
                        "type": "string",
                        "description": "US patent number, digits only, e.g. `7379963`.",
                        "default": "7379963"
                    },
                    "applicationNumber": {
                        "title": "Application number (mode=byApplicationNumber)",
                        "type": "string",
                        "description": "US patent application serial number, e.g. `09615663`."
                    },
                    "publicationNumber": {
                        "title": "Publication number (mode=byPublicationNumber)",
                        "type": "string",
                        "description": "US patent application publication number, e.g. `20140053053`."
                    },
                    "pctNumber": {
                        "title": "PCT number (mode=byPctNumber)",
                        "type": "string",
                        "description": "PCT international application number, e.g. `PCT/US21/36002`."
                    },
                    "internationalRegNumber": {
                        "title": "International registration number (mode=byInternationalRegNumber)",
                        "type": "string",
                        "description": "WIPO international registration number linked to a US national-phase patent."
                    },
                    "reelNumber": {
                        "title": "Reel number (mode=byReelFrame)",
                        "type": "string",
                        "description": "USPTO assignment recordation reel number, e.g. `69252`."
                    },
                    "frameNumber": {
                        "title": "Frame number (mode=byReelFrame)",
                        "type": "string",
                        "description": "USPTO assignment recordation frame number, e.g. `524`."
                    },
                    "assigneeName": {
                        "title": "Assignee / owner name (mode=byAssigneeName)",
                        "type": "string",
                        "description": "Company or individual name that received patent rights, e.g. `Google LLC`. Case-insensitive substring match."
                    },
                    "assignorName": {
                        "title": "Assignor / seller name (mode=byAssignorName)",
                        "type": "string",
                        "description": "Inventor or company that transferred patent rights away, e.g. `Page, Larry`. Case-insensitive substring match."
                    },
                    "correspondentName": {
                        "title": "Correspondent name (mode=byCorrespondentName)",
                        "type": "string",
                        "description": "Law firm or agent of record on the assignment filing, e.g. `Fish & Richardson`. Case-insensitive substring match."
                    },
                    "executionDateFrom": {
                        "title": "Execution date from",
                        "type": "string",
                        "description": "Only include assignments with an assignor execution date on/after this ISO date (`YYYY-MM-DD`). Applies to all modes."
                    },
                    "executionDateTo": {
                        "title": "Execution date to",
                        "type": "string",
                        "description": "Only include assignments with an assignor execution date on/before this ISO date (`YYYY-MM-DD`). Applies to all modes."
                    },
                    "conveyanceTypeContains": {
                        "title": "Conveyance type contains",
                        "type": "string",
                        "description": "Case-insensitive substring filter on the conveyance/transaction type, e.g. `security`, `merger`, `assignment`, `change of name`."
                    },
                    "conveyanceType": {
                        "title": "Conveyance type (exact)",
                        "enum": [
                            "",
                            "20",
                            "21",
                            "23",
                            "24",
                            "25",
                            "26",
                            "27",
                            "28",
                            "29",
                            "30",
                            "31",
                            "32",
                            "33",
                            "34",
                            "35",
                            "36",
                            "37",
                            "38",
                            "39"
                        ],
                        "type": "string",
                        "description": "Restrict results to one official USPTO conveyance/transaction type. Only exact-identifier modes (patent/application/publication/PCT/international-reg number, reel/frame) carry this code; assignee/assignor/correspondent name searches don't return it and pass through unfiltered.",
                        "default": ""
                    },
                    "recordationDateFrom": {
                        "title": "Recordation date from",
                        "type": "string",
                        "description": "Only include assignments USPTO recorded on/after this ISO date (`YYYY-MM-DD`). This is USPTO's own filing-receipt date, distinct from the assignor's execution date. Only exact-identifier modes carry this date; name searches pass through unfiltered."
                    },
                    "recordationDateTo": {
                        "title": "Recordation date to",
                        "type": "string",
                        "description": "Only include assignments USPTO recorded on/before this ISO date (`YYYY-MM-DD`). Only exact-identifier modes carry this date; name searches pass through unfiltered."
                    },
                    "filingDateFrom": {
                        "title": "Patent filing date from",
                        "type": "string",
                        "description": "Only include assignments whose underlying patent/application was filed on/after this ISO date (`YYYY-MM-DD`). Applies to all modes."
                    },
                    "filingDateTo": {
                        "title": "Patent filing date to",
                        "type": "string",
                        "description": "Only include assignments whose underlying patent/application was filed on/before this ISO date (`YYYY-MM-DD`). Applies to all modes."
                    },
                    "mailDateFrom": {
                        "title": "USPTO mail date from",
                        "type": "string",
                        "description": "Only include assignments USPTO mailed a recordation notice for on/after this ISO date (`YYYY-MM-DD`). Only exact-identifier modes carry this date; name searches pass through unfiltered."
                    },
                    "mailDateTo": {
                        "title": "USPTO mail date to",
                        "type": "string",
                        "description": "Only include assignments USPTO mailed a recordation notice for on/before this ISO date (`YYYY-MM-DD`). Only exact-identifier modes carry this date; name searches pass through unfiltered."
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard cap on emitted assignment records. Name-based searches (assignee/assignor/correspondent) are capped at 100 matches per USPTO's export API.",
                        "default": 20
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "USPTO's Assignment Center does not block datacenter IPs, so this is optional and used only as an automatic fallback if direct requests are rate-limited.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
