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
9 days 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, or searches the register by mark text, owner, Nice class, live or dead status and filing dates. It returns mark, status, goods and services, classes, owner, attorney and prosecution history documents, and in monitor mode it delivers and charges only new or changed marks. Export CSV, Excel, JSON or XML. No login, no API key. Updated 2026-10-11. Pricing: $0.02 per trademark record on the Free tier.
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 mark you point it at, either by number or through the official USPTO Trademark Search index. 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). Loose formats such asUS 88,888,888work. - Search the register by mark text (phrase, all words or exact), owner name, Nice classes 1 to 45, live or dead status, and a filing-date window. Every hit is read live from TSDR.
- Monitor mode:
onlyChangedwith a namedmonitorKeydelivers, and charges, only marks that are new or whose status changed. - Get goods and services, live flag, mark image link, examining attorney, design codes and filing basis on the main row.
- Pull registered classes (one row per class), the owner (name, address, entity type, plus a portfolio record), the attorney of record and the prosecution history (one row per document 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, registrationNumber | USPTO numbers (N/A if not registered) |
filingDate, register, markType | Filing date, Principal or Supplemental, Trademark or Service Mark |
status, statusDate, url | Current status in the USPTO's own words, its date, source TSDR page |
isLive, tm5Status | Live or dead flag and the official TM5 status descriptor |
goodsAndServices, niceClasses, designCodes | Goods and services text, class list, design codes (empty list when none) |
markImageUrl, examiningAttorney, lawOffice | Image link built from the serial number, examining attorney, assigned law office |
registrationDate, publicationDate, filingBasis, markDrawingType, disclaimer, translation | Dates, filing basis and mark details |
changeType, previousStatus | Monitor mode only: new or status-changed, and the status delivered last time |
searchTerm | Search mode only: the term that found the mark |
for, internationalClasses, usClasses, classStatus | Class rows (goods and services, class codes, status) |
ownerName, ownerAddress, legalEntityType, stateOrCountry | Owner rows |
attorneyName, docketNumber, attorneyEmail, correspondentName | Attorney rows (N/A if not published) |
docId, description, displayDate, pageCount, downloadUrls | Prosecution history document rows |
errorType | Error rows only: not-found, invalid-number, lookup-failed, invalid-input, documents-unavailable |
scrapedAt | UTC timestamp of the lookup |
🧾 Sample output
Row from our run on 2026-10-03 (serial 88888889), shown with the original columns plus markImageUrl, which is built from the serial number. Current runs add the other columns listed above:
{"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"}
💰 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 Gold and above).
| Event | When it is charged | Price |
|---|---|---|
trademark-record | One trademark delivered, by number lookup, search hit or monitor change | $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 |
Worked example at Free-tier prices: 1,000 trademarks with no extras cost 1,000 x $0.02 = $20.00. A mark with one class, one owner and one attorney row costs $0.065; at Gold it costs $0.055. Searches bill each hit as a normal trademark record. With onlyChanged on, unchanged marks are skipped and never charged, so a second run on the same input delivers 0 rows and costs nothing. Portfolio records are free. 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 either paste serial or registration numbers into Serial or registration numbers (add
rnbefore a registration number) or fill the search fields (mark text, owner, Nice classes, status, filing dates). - Switch on only the extras you need: Classes, Owner, Attorney, Prosecution history documents. For a watch list, turn on Only new or changed marks and pick a monitor key.
- Click Start, then download the dataset as JSON, CSV, Excel or XML.
⚙️ Input
| Field | Description |
|---|---|
numbers | Serial or registration numbers. Default ["88888888"], ignored when a search field is filled. Duplicates are removed |
maxItems | Max trademarks across lookups and searches (free plan capped at 10). Extra rows do not count against it |
searchTerms, markMatch | Mark text, one search per entry; phrase, all-words or exact |
ownerName | Owner name as registered; every word must appear |
niceClasses | Nice classes 1 to 45; a mark matches any listed class |
statusFilter | any, live or dead; needs another search field |
filedFrom, filedTo | Filing-date window, YYYY-MM-DD |
includeClasses, includeOwner, includeAttorney, includeDocuments | Extra rows per mark (default off) |
onlyChanged, monitorKey, resetMonitor | Monitor mode: deliver only new or changed marks, name the watch list, or reset its baseline |
Search example:
{"ownerName": "Nike, Inc.","niceClasses": ["25"],"statusFilter": "live","filedFrom": "2024-01-01","maxItems": 10}
Number lookup example:
{"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. A number with no USPTO record produces one error row (not charged) and the run status says how many were not found. A request with no numbers and no search, a Nice class outside 1 to 45, a bad date or a status filter on its own returns one free invalid-input error row. TSDR requests are spaced 2 seconds apart, so 100 marks take about 3.5 minutes. With includeOwner or includeAttorney on, the key-value store also gets OWNER-PORTFOLIO and ATTORNEY-PORTFOLIO records (marks per owner or attorney in the run).
⚖️ USPTO trademark scraper vs alternatives
Rival Store pages read on 2026-10-10. A cell says "not shown" when the page does not show the feature.
| This actor | scrapesage | memo23 | |
|---|---|---|---|
| Search | Mark text, owner, class, live or dead, dates | Mark, owner, class, status, dates | Mark, owner, goods, class, live or dead |
| Only-new monitor | Yes, unchanged marks not charged | Yes | Not shown |
| Prosecution history | Yes, rows with download links | Not shown | Stated as not included |
| Owner and attorney leads | Names and emails per mark | Lead scores, firm site | Not shown |
| Price per 1,000 marks | $20 (Free), $17.50 (Gold) | from $4 | from $7 |
We are the most expensive of the three per mark. devilscrapes/uspto-trademark-scraper (from $5 per 1,000 plus $0.20 per run) searches by mark and owner with a live or dead filter, but shows no class filter, monitor or documents. Choose a rival if you only need cheap marks and leads. Choose this actor if you need the prosecution file wrapper, every class, owner and attorney row, or a monitor that charges only for changes.
🧰 Use cases
Portfolio monitoring with onlyChanged, brand watch in your Nice classes, pre-launch name clearance, due diligence and KYB on a company's marks, and litigation prep with the full prosecution history.
🔌 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 Make, Zapier or n8n to push results to Google Sheets or Slack.
🤖 USPTO Trademark Status Scraper MCP server for AI agents
AI agents can call this actor through the Apify MCP server at https://mcp.apify.com?tools=RecordsData/uspto-trademark-status-scraper. The URL loads only this actor as a tool.
Add this to your MCP client configuration (Claude Desktop, Cursor, VS Code):
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=RecordsData/uspto-trademark-status-scraper"}}}
Example agent prompt:
Use the USPTO Trademark Status Scraper to check serial numbers 88888888 and 88888889 with owner and classes on, and tell me whether each mark is registered and who owns it.
Tool description: choose this actor when an agent has USPTO serial or registration numbers, or a mark text, owner, Nice class or filing-date filter, and needs the current trademark status, goods and services, classes, owner, attorney or prosecution history, or only the marks that changed since the last run.
🛡️ 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 public, but use them in line with applicable privacy and marketing law. This is an independent tool, not affiliated with the USPTO.
❓ Frequently asked questions
Can I search USPTO trademarks by name with the USPTO Trademark Status Scraper?
Yes. Fill mark text, owner name, Nice classes, status or a filing-date window and the USPTO Trademark Status Scraper searches the official USPTO Trademark Search index, then reads every hit live from tsdr.uspto.gov. Each hit is billed as a normal trademark record. You can also keep using known serial or registration numbers; add rn before a registration number.
Why did the USPTO Trademark Status Scraper return 0 results?
The numbers you gave do not exist at the USPTO, and the TSDR site answers HTTP 503 for unknown numbers. The USPTO Trademark Status Scraper then ends with a "No USPTO record found" status, one uncharged error row per number, and no charge. Check for typos, and add rn before registration numbers so they are not read as serial numbers.
Why does one trademark return several class rows?
A USPTO mark can register in several International and U.S. classes, and each class has its own status. The USPTO Trademark Status Scraper returns each registered class as a separate dataset row when Classes is switched on, and each one is a separate class-record event billed at the class price. Marks with one class return one class row.
Why is mark sometimes N/A in the USPTO Trademark Status Scraper?
Some USPTO applications are design-only marks with no literal text, so there is no wording to show. They are still real records. The USPTO Trademark Status Scraper delivers the trademark row for them normally, with mark set to N/A, and the serial number, status, dates and optional class, owner and attorney rows work as usual.
What is in the USPTO prosecution history returned by the scraper?
When you switch on Prosecution history documents, the USPTO Trademark Status Scraper returns one row per document in the file wrapper: application, drawing, office actions, responses, notice of allowance, publication, registration certificate and later notices. Each row has the date, page count and download links. In the 2026-10-03 test, one registered mark returned 30 documents.
Will I be charged for failed lookups in the USPTO Trademark Status Scraper?
No. The USPTO Trademark Status Scraper saves error rows, unknown numbers and empty extra rows without a charge event. You pay for the trademark-record event only when a trademark was actually looked up and saved, plus the class, owner, attorney or document rows that came back with data. The run also stops cleanly at the maximum charge you set.
Is the USPTO Trademark Status Scraper data real-time and official?
Yes. The USPTO Trademark Status Scraper reads the public Trademark Status and Document Retrieval (TSDR) pages on tsdr.uspto.gov at the time of your run, so status and status date are the USPTO's own current values, in its own words. The scrapedAt field on the trademark row shows the UTC time of that lookup.
What happens if I send an empty or invalid input to the USPTO Trademark Status Scraper?
An empty numbers list is rejected by the Apify platform with a 400 at run creation, so no run starts and nothing is charged. Other input mistakes end the USPTO Trademark Status Scraper run as SUCCEEDED with one free error row (errorType: invalid-input, plus a hint that says what to fix) and no charge is made.
Can I schedule recurring USPTO trademark status checks?
Yes. Use the Apify Scheduler on any cron schedule to run the USPTO Trademark Status Scraper daily or weekly on the same list of serial or registration numbers, for example to monitor the status of every mark in a client or competitor portfolio. Turn on Only new or changed marks to deliver, and pay for, just the marks that are new or changed since the last run.
🔗 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-11