USPTO Trademark Watch — New Filings & Status, No Login, $20/1k
Pricing
from $20.00 / 1,000 alerts
USPTO Trademark Watch — New Filings & Status, No Login, $20/1k
Watch USPTO trademarks by word mark, owner, Nice class or serial number and get only NEW applications and status changes since the last run, with owner, attorney, classes, goods and TSDR link. Weekly schedule. No login or API key. MCP-ready. $20 per 1,000 alerts.
Pricing
from $20.00 / 1,000 alerts
Rating
0.0
(0)
Developer
Peter Skotte
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
USPTO Trademark Watch — new filings & status alerts, no API key
A trademark watch service you schedule yourself. Each run reports only the new USPTO applications that match your word marks, owner names and Nice classes, plus status and office-action changes on the serial numbers you are tracking. The monitor remembers everything it has already reported, so a weekly run emits just the delta, posts a summary to your webhook, and costs you only for what actually changed. No USPTO login, no API key, no TESS/TSDR clicking.
Built for IP paralegals, brand owners and law firms who pay $50+/month for watch subscriptions and want the same feed inside their own docketing, Slack or spreadsheet.
How it works
- Queries the public USPTO trademark search backend (the same index that powers tmsearch.uspto.gov, updated
the morning after each filing day) for applications filed in the last
filedSinceDayswhose word mark contains a word starting with one of yourwatchTerms, or whose applicant matches one of yourownerNames, optionally limited toniceClasses. - For every unseen filing it pulls the TSDR case record (status, status date, owner address, attorney,
latest prosecution-history event) and emits it with
changeType: "new". - For every serial in
watchSerialsit compares the current status, status date and latest prosecution event against the saved state and emits a record when anything changed (changeType: "updated"), or once with the current status the first time the serial is added (changeType: "new"). - Saves the state, then POSTs a run summary to
webhookUrlif set.
State lives in a named key-value store tm-watch-<hash of monitorId> in your Apify account, capped at 50,000
serial numbers (oldest dropped first). Delete the store to reset a monitor.
Input
| Field | Default | Notes |
|---|---|---|
watchTerms | ["apple", "nimbus"] | Word-mark watches. apple matches APPLE, APPLEGATE FARM, GOLDEN APPLE (word-prefix match on the mark and its pseudo mark). One watch per term |
ownerNames | [] | Applicant watches, phrase match on the owner name: ["Nike"], ["Procter & Gamble"] |
niceClasses | [] | Restrict word-mark and owner watches to classes, e.g. ["9", "42"]. Empty = all |
watchSerials | [] | 8-digit application serial numbers to track for status changes |
filedSinceDays | 7 | Only applications filed within N days. 7 for a weekly schedule, 30 for a first baseline |
maxNewPerTerm | 5 | Cap on new filings per watch term per run; the rest come out next run |
maxItems | 10 | Overall cap on records per run |
firstRunMode | emitAll | emitAll reports every current match on the first run; baseline records them silently |
webhookUrl | "" | Optional POST target for the run summary |
monitorId | default | One state store per ID: run one monitor per client or brand |
usptoApiKey | "" | Optional key from account.uspto.gov/api-manager for the official TSDR API. Not required |
Recommended setup for a weekly watch
- Create a task per client or brand family and set
monitorIdaccordingly (acme-brands). - Put the client's marks in
watchTerms(short distinctive elements work best:zephyr,nimbus,bluefin) and their competitors inownerNames. AddniceClassesif the client only cares about, say, classes 9, 35 and 42. - First run: set
firstRunModetobaselineandfiledSinceDaysto 30. This records everything currently matching without emitting a backlog. - Switch
firstRunModeback toemitAll(it only matters while the state is empty), setfiledSinceDaysto 10 for a weekly schedule (a safe overlap; the state prevents duplicates) and raisemaxNewPerTerm/maxItemsto whatever you are willing to review. - Add the serials of the client's own pending applications and any opposed marks to
watchSerialsto be told when they are assigned to an examiner, get an office action, are published for opposition, register, or go abandoned. - Schedule weekly, e.g. Monday 07:00 America/New_York. New filings appear in the USPTO index the morning after they are filed.
- Point
webhookUrlat Slack, Zapier, Make or your docketing system.
The default settings ({}) run in emitAll mode for the terms apple and nimbus so you see real output
on the first try.
Example: brand watch for a client in software and apparel
{"watchTerms": ["zephyr", "zephyrly"],"ownerNames": ["Zephyr Labs"],"niceClasses": ["9", "25", "42"],"watchSerials": ["98123456", "98234567"],"filedSinceDays": 10,"maxNewPerTerm": 50,"maxItems": 500,"firstRunMode": "baseline","webhookUrl": "https://hooks.slack.com/services/XXX/YYY/ZZZ","monitorId": "zephyr-labs"}
Other quick profiles:
- Competitor filings:
watchTerms: [],ownerNames: ["Nike", "Adidas", "Puma"],niceClasses: ["25", "28"] - Docket status only:
watchTerms: [],watchSerials: [...]and a daily schedule - Class sweep:
watchTerms: ["ai", "gpt"],niceClasses: ["9", "42"]
Output
One record per new filing or status change:
{"serialNumber": "50122612","registrationNumber": null,"markText": "NIMBUS VERSE","markType": "TRADEMARK","drawingType": "(4) STANDARD CHARACTER MARK","owner": "Bozhou (Hong Kong) Co., Limited","ownerAddress": "FLAT A 10/F, BLOCK A, TUNG CHUN INDUSTRIAL BUILDING, 9-11 CHEUNG WING ROAD, KWAI CHUNG, NEW TERRITORIES, Hong Kong, 999077, China","filingDate": "2026-09-22","registrationDate": null,"status": "NEW APPLICATION - RECORD INITIALIZED NOT ASSIGNED TO EXAMINER","statusDetail": "LIVE/APPLICATION/Awaiting Examination","statusDate": "2026-09-22","liveDead": "Live","publicationDate": null,"niceClasses": ["028"],"goodsServices": "IC 028: Party balloons; Golf balls; Golf tees; Golf accessories, namely, ...","attorney": "William Bak","lastEventDate": "2026-09-22","lastEvent": "APPLICATION FILING RECEIPT MAILED","tsdrUrl": "https://tsdr.uspto.gov/#caseNumber=50122612&caseType=SERIAL_NO&searchType=statusSearch","matchedTerm": "nimbus","changeType": "new","firstSeenAt": "2026-09-28T19:14:30.872Z","monitorId": "default"}
matchedTerm is the watch term or owner name that matched, or serial:<number> for serial watches.
goodsServices is truncated to 500 characters; the full identification is one click away on tsdrUrl.
niceClasses uses the USPTO three-digit form ("009").
Webhook payload
POSTed once per run as application/json, also saved as the SUMMARY record in the run's key-value store:
{"monitorId": "zephyr-labs","runAt": "2026-09-29T11:00:03.118Z","newCount": 3,"updatedCount": 1,"scanned": 41,"seenTotal": 212,"baseline": false,"records": [ { "...first 50 records, same shape as the dataset..." } ]}
Pricing
Pay per event: a small start fee plus a per-alert fee only for records emitted. A weekly watch that finds nothing new costs just the start fee.
Notes
- Word-mark matching is word-prefix based:
applematchesAPPLEGATEbut notPINEAPPLE. Use several short terms to cover variants. - Word-mark and owner watches only report new filings; to follow a filing after you have seen it, add
its serial to
watchSerials. - A watch scans at most 1,000 filings per run (newest first). Narrow with
niceClassesor a shorterfiledSinceDaysif a term is that common. - The status snapshot comes from TSDR and takes a few seconds per record; large watchlists take correspondingly longer but cost the same.