USPTO Trademark Status Scraper - Classes & Owner
Pricing
from $17.50 / 1,000 trademark records
USPTO Trademark Status Scraper - Classes & Owner
Look up USPTO trademark status by serial or registration number: mark, filing and status dates, registered classes, owner, attorney of record and prosecution history documents. Export CSV, Excel, JSON. No login or API key. Tested: 10 marks with extras in 29 seconds.
Pricing
from $17.50 / 1,000 trademark records
Rating
0.0
(0)
Developer
RecordsData
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 hours ago
Last modified
Categories
Share
®️ USPTO Trademark Status Scraper - Classes & Owner
The USPTO Trademark Status Scraper looks up official USPTO trademark records by serial or registration number and returns mark, status, filing and status dates, registered classes, owner, attorney of record and prosecution history documents. Export CSV, Excel, JSON or XML. No login, no API key. Verified 2026-10-03 against live tsdr.uspto.gov. Pricing: $0.02 per trademark record.
The USPTO Trademark Status Scraper reads the public Trademark Status and Document Retrieval (TSDR) page of the United States Patent and Trademark Office for every serial or registration number you give it. In our 2026-10-03 cloud test, 10 trademarks with classes, owner and attorney came back in 29 seconds as 39 dataset rows. It is built for trademark attorneys, brand protection teams, founders doing name clearance and compliance teams.
🔎 What does the USPTO Trademark Status Scraper do?
- Check the status of a USPTO trademark by serial number (for example
88888888) or registration number (rn4671942). - Pull registered classes (International and U.S.), one row per class, each with its own class status.
- Pull the trademark owner name, address, legal entity type and state or country of organization.
- Pull the attorney of record and correspondent contact details.
- Pull the prosecution history: one row per document (application, office actions, notice of allowance, publication, abandonment) with date, page count and download links.
- Bulk-check a whole portfolio in one run and schedule it daily or weekly.
📋 What data can you extract from the USPTO?
| Field | Description |
|---|---|
mark | The trademark text (can be N/A for design-only marks) |
serialNumber | USPTO serial number |
registrationNumber | Registration number, N/A if not registered |
filingDate | Application filing date |
register | Principal or Supplemental |
markType | Trademark, Service Mark and so on |
status | Current status in the USPTO's own words |
statusDate | Date of the current status |
url | Source TSDR page |
for, internationalClasses, usClasses, classStatus | Class rows (goods and services, class codes, status) |
ownerName, ownerAddress, legalEntityType, stateOrCountry | Owner rows |
attorneyName, docketNumber, attorneyEmail, correspondentName, correspondentEmail | Attorney rows (a field the USPTO does not publish for a case is N/A) |
docId, description, displayDate, pageCount, downloadUrls | Prosecution history document rows |
scrapedAt | UTC timestamp of the lookup |
🧾 Sample output
Real row from our run on 2026-10-03 (serial 88888889):
{"mark": "TMI THE METRO INDEX","serialNumber": "88888889","registrationNumber": "6343310","filingDate": "Apr. 27, 2020","register": "Principal","markType": "Trademark","status": "Registered. The registration date is used to determine when post-registration maintenance documents are due.","statusDate": "May 04, 2021","url": "https://tsdr.uspto.gov/statusview/sn88888889","scrapedAt": "2026-10-04T04:52:41.606Z"}
A prosecution history document row from the same mark:
{"mark": "TMI THE METRO INDEX","serialNumber": "88888889","docId": "ORC20210418055902","description": "Registration Certificate","displayDate": "May. 04, 2021","pageCount": 1,"downloadUrls": ["https://tsdrsec.uspto.gov/ts/cd/tmcasedoc/downloadproxy?url=/api/casedoc/cms/case/88888889/registration-certificate/6343310_88888889_050421_ORC.pdf"]}
💰 How much does it cost to look up USPTO trademarks?
Pay per event. Prices below are the live FREE-tier prices; paid Apify plans get lower rates (down to $0.0175 per trademark record on DIAMOND).
| Event | When it is charged | Price |
|---|---|---|
trademark-record | One trademark looked up and saved | $0.02 |
class-record | One registered class row (only if Classes is on) | $0.015 |
owner-record | One owner row (only if Owner is on) | $0.015 |
attorney-record | One attorney row (only if Attorney is on) | $0.015 |
document-record | One prosecution history document (only if Documents is on) | $0.015 |
Looking up 1,000 trademarks with no extras costs about $20. Our 10-mark test with classes, owner and attorney produced 10 trademark, 13 class, 8 owner and 8 attorney events, about $0.64 at the FREE tier. Numbers that do not exist, error rows, and extra rows the USPTO leaves empty are never charged. Set a max charge per run and the actor stops cleanly at your limit. Free users get 10 lookups per run.
🚀 How to scrape USPTO trademark status in 3 steps
- Open the actor and paste serial or registration numbers into Serial or registration numbers (add
rnbefore a registration number). - Switch on only the extras you need: Classes, Owner, Attorney, Prosecution history documents.
- Click Start, then download the dataset as JSON, CSV, Excel or XML.
⚙️ Input
| Field | Description |
|---|---|
numbers | Serial or registration numbers. Default ["88888888"]. Duplicates are removed |
maxItems | Max trademarks to look up (free plan capped at 10). Extra rows do not count against it |
includeClasses | One row per registered class (default off) |
includeOwner | Owner row (default off) |
includeAttorney | Attorney and correspondent row (default off) |
includeDocuments | Prosecution history documents, one row each (default off) |
{"numbers": ["88888888", "88888889", "rn4671942"],"maxItems": 10,"includeClasses": true,"includeOwner": true}
📦 Output
Rows go to the default dataset in the order looked up: the trademark row first, then its class, owner, attorney and document rows. Open the Overview view for the main fields or download everything. A number with no USPTO record produces one error row (not charged) and the run status says how many were not found. An empty numbers list fails the run immediately with nothing charged.
⚖️ USPTO trademark scraper vs alternatives
Prices measured from the public Apify Store on 2026-10-03:
| Actor | Event price | Classes, owner, attorney, documents |
|---|---|---|
| This actor | $0.02 per trademark record (FREE tier) | Yes, each a separate optional event |
| dev00/uspto-trademark-api | $0.003 per check on paid plans | Verification only |
| scrapesage/uspto-trademark-scraper | $0.004 per trademark | Some enrichment events |
| memo23/uspto-trademark-scraper | $0.007 per result | Single result event |
We are not the cheapest for a plain status check. If you only need a yes or no on a batch of numbers, a one-event verifier costs less. This actor costs more per mark because it reads the full TSDR record and can add every class, the owner, the attorney and the file wrapper in the same run.
🧰 Use cases
- Portfolio monitoring: re-check the status of every mark a client or competitor holds.
- Pre-launch clearance: confirm an existing registration before committing to a brand name.
- Due diligence and KYB: list the trademarks and owners behind a company.
- Litigation prep: export the complete prosecution history with download links.
🔌 Run via API, schedule and integrate
curl -X POST "https://api.apify.com/v2/acts/RecordsData~uspto-trademark-status-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"numbers":["88888888"],"includeOwner":true}'
Use Apify Scheduler for daily or weekly checks, and the Make, Zapier or n8n integrations to push results to Google Sheets, Slack or a warehouse. The actor is also callable from MCP clients through Apify's MCP server.
🛡️ Is it legal to scrape USPTO trademark data?
The actor reads public trademark records that the USPTO publishes for anyone on tsdr.uspto.gov. It does not log in or bypass anything. Owner and attorney details are part of the public record, but you are responsible for using them in line with applicable law such as privacy and marketing rules. This is an independent tool, not affiliated with the USPTO.
❓ Frequently asked questions
Can I search USPTO trademarks by name?
No. The USPTO name search sits behind a bot challenge, so this actor works from known serial or registration numbers. Find the number once in the USPTO Trademark Search tool, then use this actor for repeatable bulk lookups.
Why did I get 0 results?
The numbers you gave do not exist at the USPTO (the site answers HTTP 503 for unknown numbers). The run then ends with a "No USPTO record found" status, one uncharged error row per number, and no charge. Check for typos and add rn for registration numbers.
Why does one trademark return several class rows?
A mark can register in several International and U.S. classes, each with its own status. Each class is a separate row and a separate class-record event.
Why is mark sometimes N/A?
Some applications are design-only marks with no literal text. They are still real records, so the trademark row is delivered with mark set to N/A.
What is in the prosecution history?
Every document in the file wrapper: application, drawing, office actions, responses, notice of allowance, publication, registration certificate and later notices. In our test, one registered mark returned 30 documents.
Will I be charged for failed lookups?
No. Error rows, unknown numbers and empty extra rows are saved without a charge event.
Is the data real-time and official?
Yes, it comes from the USPTO TSDR status pages at the time of the run.
Can I schedule recurring checks?
Yes. Use Apify Scheduler on any cron schedule.
🔗 Want more public-records data?
- SEC EDGAR Filings Scraper for 10-K, 10-Q filings and insider trades
- Federal Contracts Spending Scraper for U.S. federal awards
- Sports Reference Stats Scraper for NBA and NHL stats
🆘 Support
Open an issue from the Issues tab or write to contact.punkrecordsdata@gmail.com. Last updated: 2026-10-03