# USPTO Trademark Assignment Scraper (`parseforge/uspto-trademark-scraper`) Actor

Search and extract trademark assignment data from the USPTO Assignment Center. Look up by owner name, serial number, or registration number. Get mark text, filing dates, owners, assignees, conveyance info, and document links. Covers millions of US trademark records.

- **URL**: https://apify.com/parseforge/uspto-trademark-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 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.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

![ParseForge Banner](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)

## ⚖️ USPTO Trademark Assignment Scraper

Whether you're an IP attorney researching trademark ownership chains, an M&A analyst auditing brand portfolios, or a brand manager monitoring competitor trademark activity, this tool makes it easy to collect structured trademark assignment data from the United States Patent and Trademark Office (USPTO) Assignment Center.

> **The USPTO Trademark Assignment Scraper collects ownership transfer records with assignee/assignor details, correspondent info, conveyance types, recording dates, and document references. Search by owner name, serial number, or registration number.**

### ✨ What Does It Do

- 📋 **Trademark records** - collect mark text, serial numbers, and registration numbers for every assignment
- 👤 **Ownership details** - get assignee and assignor names, addresses, entity types, and citizenship information
- 🔄 **Conveyance data** - extract transfer types including assignments, mergers, security interests, and releases
- 📅 **Key dates** - track recording dates, filing dates, registration dates, and execution dates
- 📞 **Correspondent info** - get correspondent names and addresses for each record
- 📄 **Document access** - reel/frame references and direct URLs to download assignment documents

### 🔧 Input

- **Owner / Assignee Name** - search by company or individual name (e.g., "APPLE INC.", "GOOGLE LLC"). Supports partial matching
- **Max Items** - how many records to collect (free users get 10 items, paid users up to 1,000,000)
- **Serial Numbers** - look up specific trademarks by their USPTO serial number (comma-separated)
- **Registration Numbers** - look up by USPTO registration number (comma-separated)

```json
{
    "searchQuery": "APPLE INC.",
    "maxItems": 10
}
````

### 📊 Output

Each trademark assignment record includes up to 30+ data fields. Download as JSON, CSV, or Excel.

| 📌 Field | 📄 Description |
|----------|---------------|
| 📋 mark | Trademark name/text |
| 🔢 serialNumber | USPTO serial number |
| 🔢 registrationNumber | USPTO registration number |
| 👤 currentOwner | Current trademark owner |
| 👥 assigneeName | Name of the party receiving the trademark |
| 📍 assigneeAddress | Full address of the assignee |
| 🏢 assigneeEntityType | Entity type (LLC, corporation, etc.) |
| 👤 assignorName | Name of the party transferring the trademark |
| 🔄 conveyance | Type of transfer (assignment, merger, security interest) |
| 📅 recordationDate | Date the assignment was recorded |
| 📞 correspondentName | Legal correspondent name |
| 📄 reelFrame | Document reel/frame reference |
| 🔗 imageUrl | URL to download the assignment document |

```json
{
    "mark": "A A IS FOR APPLE AUTISM, SPEECH & OCCUPATIONAL THERAPY",
    "serialNumber": "86661323",
    "registrationNumber": "4901211",
    "currentOwner": "A Is For Apple, Inc.",
    "applicationFilingDate": "06/12/2015",
    "registrationDate": "02/16/2016",
    "assigneeName": "AUTISM LEARNING PARTNERS LLC",
    "assigneeAddress": "1333 SOUTH MAYFLOWER AVENUE, SUITE 220",
    "assigneeCity": "MONROVIA",
    "assigneeState": "CALIFORNIA",
    "assigneeZipCode": "91016",
    "assigneeCountry": "UNITED STATES",
    "assigneeCitizenship": "DELAWARE",
    "assigneeEntityType": "LIMITED LIABILITY COMPANY",
    "assignorName": "ALLY BANK, AS ADMINISTRATIVE AGENT",
    "assignorExecutionDate": "08/16/2024",
    "assignorCitizenship": "UNITED STATES",
    "assignorEntityType": "NATIONAL BANKING ASSOCIATION",
    "correspondentName": "KRISTOPHER PHIPPS",
    "correspondentAddress": "CHAPMAN AND CUTLER LLP, 1270 AVENUE OF THE AMERICAS 30TH FLOOR, NEW YORK, NY 10020",
    "conveyance": "RELEASE OF SECURITY INTEREST",
    "reelFrame": "8566/0398",
    "recordationDate": "09/03/2024",
    "mailDate": "09/12/2024",
    "pageCount": 5,
    "imageUrl": "https://assignmentcenter.uspto.gov/ipas/search/api/v2/public/download/trademark/8566/0398",
    "scrapedAt": "2026-04-07T17:01:23.081Z"
}
```

### 💎 Why Choose the USPTO Trademark Assignment Scraper?

| Feature | Our Tool | Manual USPTO Search |
|---------|----------|---------------------|
| Batch collection | ✅ Up to 1M records | ❌ Browse one at a time |
| Multiple search modes | ✅ Name, serial, registration | ⚠️ One at a time |
| Full ownership chain | ✅ Complete transfer history | ⚠️ Click through each |
| Structured output | ✅ JSON, CSV, Excel | ❌ HTML pages only |
| Automated scheduling | ✅ Daily/weekly monitoring | ❌ Manual visits |
| Document URLs | ✅ Direct download links | ⚠️ Navigate to each |

### 📋 How to Use

1. **Sign Up** - [Create a free account w/ $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp)
2. **Configure** - enter an owner name, serial numbers, or registration numbers
3. **Run It** - click "Start" and get structured trademark data in seconds

No coding, no setup, no API key required.

### 🎯 Business Use Cases

- ⚖️ **IP attorneys** - research trademark ownership chains for litigation and verify current owners before filing new applications
- 🏢 **M\&A analysts** - audit trademark portfolios during corporate acquisitions and verify clean title on IP assets
- 🏷️ **Brand managers** - monitor trademark assignments in your industry and track competitor brand portfolio changes
- 📊 **Researchers** - build comprehensive databases of trademark ownership and analyze trends in IP transfers
- 🔍 **Due diligence teams** - identify all IP assets owned by a target company and verify assignment chains
- 🏦 **Financial institutions** - track security interests and liens on trademark portfolios for lending decisions

### ❓ FAQ

⚖️ **What is the USPTO Assignment Center?**
The USPTO Assignment Center is a free, public government database that records trademark ownership transfers, security interests, mergers, name changes, and other conveyances filed with the United States Patent and Trademark Office.

🔍 **Can I search by trademark name?**
The assignment database is searchable by owner/assignee name, serial number, and registration number. To search by trademark name (mark text), first find the serial or registration number using the USPTO trademark search at tmsearch.uspto.gov.

📋 **What types of assignments are recorded?**
Assignments, mergers, security interests, releases, name changes, and other conveyances. The conveyance field in the output tells you the specific type for each record.

⏱️ **How long does a run take?**
Most runs complete in under 30 seconds. The scraper connects directly to the USPTO API with no browser overhead.

📅 **Do I need an API key?**
No. Unlike the TSDR API, this scraper requires no API key registration or authentication. Just enter your search criteria and run.

### 🔗 Integrate USPTO Trademark Scraper with any app

- [Make](https://docs.apify.com/platform/integrations/make) - Automate trademark monitoring workflows
- [Zapier](https://docs.apify.com/platform/integrations/zapier) - Get alerts when new assignments match your criteria
- [Slack](https://docs.apify.com/platform/integrations/slack) - Get notified in your team channel
- [Google Drive](https://docs.apify.com/platform/integrations/drive) - Export trademark data to spreadsheets
- [Webhooks](https://docs.apify.com/platform/integrations/webhooks) - Trigger actions when runs complete

### 💡 Recommended Actors

Looking for more government and business data tools? Check out these related actors:

| Actor | Description | Link |
|-------|-------------|------|
| FINRA BrokerCheck Scraper | Collect financial advisor and broker data from FINRA | [Link](https://apify.com/parseforge/finra-brokercheck-scraper) |
| GSA eLibrary Scraper | Collect government contract data from GSA | [Link](https://apify.com/parseforge/gsa-elibrary-scraper) |
| FAA Aircraft Registry Scraper | Extract aircraft registration data from the FAA | [Link](https://apify.com/parseforge/faa-aircraft-registry-scraper) |
| PR Newswire Scraper | Extract press release data from PR Newswire | [Link](https://apify.com/parseforge/pr-newswire-scraper) |
| Smart Apify Actor Scraper | Collect actor data with 70+ fields and quality metrics | [Link](https://apify.com/parseforge/smart-apify-actor-scraper) |

**Pro Tip:** 💡 Browse our complete collection of [data collection actors](https://apify.com/parseforge) to find the perfect tool for your needs.

### 🆘 Need Help?

- Check the FAQ section above for common questions
- Visit the [Apify documentation](https://docs.apify.com) for platform guides
- Contact us at [Tally contact form](https://tally.so/r/BzdKgA)

### ⚠️ Disclaimer

> This Actor is an independent tool and is not affiliated with, endorsed by, or connected to the United States Patent and Trademark Office (USPTO) or any government agency. It accesses only publicly available data through the USPTO Assignment Center public API.

# Actor input Schema

## `searchQuery` (type: `string`):

Search for trademarks by owner or assignee name (e.g., 'APPLE INC.', 'GOOGLE LLC'). Partial name matching is supported.

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `serialNumbers` (type: `string`):

Comma-separated list of USPTO serial numbers to look up (e.g., '88197894,86661323'). Use this OR Owner Name, not both.

## `registrationNumbers` (type: `string`):

Comma-separated list of USPTO registration numbers to look up (e.g., '4901211,5252622')

## Actor input object example

```json
{
  "searchQuery": "APPLE INC.",
  "maxItems": 10
}
```

# Actor output Schema

## `overview` (type: `string`):

Overview of trademark assignments with key fields

## `fullData` (type: `string`):

Complete dataset with all scraped trademark assignment fields

# 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 = {
    "searchQuery": "APPLE INC.",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/uspto-trademark-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 = {
    "searchQuery": "APPLE INC.",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/uspto-trademark-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 '{
  "searchQuery": "APPLE INC.",
  "maxItems": 10
}' |
apify call parseforge/uspto-trademark-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "USPTO Trademark Assignment Scraper",
        "description": "Search and extract trademark assignment data from the USPTO Assignment Center. Look up by owner name, serial number, or registration number. Get mark text, filing dates, owners, assignees, conveyance info, and document links. Covers millions of US trademark records.",
        "version": "0.0",
        "x-build-id": "eUzR96Tq58fNhvYCg"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~uspto-trademark-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-uspto-trademark-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/parseforge~uspto-trademark-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-uspto-trademark-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/parseforge~uspto-trademark-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-uspto-trademark-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": {
                    "searchQuery": {
                        "title": "Owner / Assignee Name",
                        "type": "string",
                        "description": "Search for trademarks by owner or assignee name (e.g., 'APPLE INC.', 'GOOGLE LLC'). Partial name matching is supported."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "serialNumbers": {
                        "title": "Serial Numbers",
                        "type": "string",
                        "description": "Comma-separated list of USPTO serial numbers to look up (e.g., '88197894,86661323'). Use this OR Owner Name, not both."
                    },
                    "registrationNumbers": {
                        "title": "Registration Numbers",
                        "type": "string",
                        "description": "Comma-separated list of USPTO registration numbers to look up (e.g., '4901211,5252622')"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
