USPTO Trademark Status Scraper - Classes & Owner avatar

USPTO Trademark Status Scraper - Classes & Owner

Pricing

from $17.50 / 1,000 trademark records

Go to Apify Store
USPTO Trademark Status Scraper - Classes & Owner

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

RecordsData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

RecordsData

®️ 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 as US 88,888,888 work.
  • 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: onlyChanged with a named monitorKey delivers, 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?

FieldDescription
markThe trademark text (can be N/A for design-only marks)
serialNumber, registrationNumberUSPTO numbers (N/A if not registered)
filingDate, register, markTypeFiling date, Principal or Supplemental, Trademark or Service Mark
status, statusDate, urlCurrent status in the USPTO's own words, its date, source TSDR page
isLive, tm5StatusLive or dead flag and the official TM5 status descriptor
goodsAndServices, niceClasses, designCodesGoods and services text, class list, design codes (empty list when none)
markImageUrl, examiningAttorney, lawOfficeImage link built from the serial number, examining attorney, assigned law office
registrationDate, publicationDate, filingBasis, markDrawingType, disclaimer, translationDates, filing basis and mark details
changeType, previousStatusMonitor mode only: new or status-changed, and the status delivered last time
searchTermSearch mode only: the term that found the mark
for, internationalClasses, usClasses, classStatusClass rows (goods and services, class codes, status)
ownerName, ownerAddress, legalEntityType, stateOrCountryOwner rows
attorneyName, docketNumber, attorneyEmail, correspondentNameAttorney rows (N/A if not published)
docId, description, displayDate, pageCount, downloadUrlsProsecution history document rows
errorTypeError rows only: not-found, invalid-number, lookup-failed, invalid-input, documents-unavailable
scrapedAtUTC 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).

EventWhen it is chargedPrice
trademark-recordOne trademark delivered, by number lookup, search hit or monitor change$0.02
class-recordOne registered class row (only if Classes is on)$0.015
owner-recordOne owner row (only if Owner is on)$0.015
attorney-recordOne attorney row (only if Attorney is on)$0.015
document-recordOne 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

  1. Open the actor and either paste serial or registration numbers into Serial or registration numbers (add rn before a registration number) or fill the search fields (mark text, owner, Nice classes, status, filing dates).
  2. 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.
  3. Click Start, then download the dataset as JSON, CSV, Excel or XML.

⚙️ Input

FieldDescription
numbersSerial or registration numbers. Default ["88888888"], ignored when a search field is filled. Duplicates are removed
maxItemsMax trademarks across lookups and searches (free plan capped at 10). Extra rows do not count against it
searchTerms, markMatchMark text, one search per entry; phrase, all-words or exact
ownerNameOwner name as registered; every word must appear
niceClassesNice classes 1 to 45; a mark matches any listed class
statusFilterany, live or dead; needs another search field
filedFrom, filedToFiling-date window, YYYY-MM-DD
includeClasses, includeOwner, includeAttorney, includeDocumentsExtra rows per mark (default off)
onlyChanged, monitorKey, resetMonitorMonitor 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 actorscrapesagememo23
SearchMark text, owner, class, live or dead, datesMark, owner, class, status, datesMark, owner, goods, class, live or dead
Only-new monitorYes, unchanged marks not chargedYesNot shown
Prosecution historyYes, rows with download linksNot shownStated as not included
Owner and attorney leadsNames and emails per markLead scores, firm siteNot shown
Price per 1,000 marks$20 (Free), $17.50 (Gold)from $4from $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.

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?

🆘 Support

Open an issue from the Issues tab or write to contact.punkrecordsdata@gmail.com.

Last updated: 2026-10-11