USPTO Trademark Scraper
Pricing
from $0.03 / 1,000 trademark records
USPTO Trademark Scraper
Export public USPTO trademark applications by mark, owner, identifiers, class, dates, and status for monitoring and due diligence.
Pricing
from $0.03 / 1,000 trademark records
Rating
0.0
(0)
Developer
Hanna Nosova
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
This USPTO trademark scraper searches tmsearch.uspto.gov and exports public United States Patent and Trademark Office application records by wordmark, owner, serial number, registration number, international class, filing date, and live/dead status.
Who is it for?
US intellectual-property attorneys, brand-protection teams, ecommerce sellers, and compliance analysts can use this Actor for trademark clearance research, brand-watch lists, owner portfolio reviews, ecommerce due diligence, and compliance analysis. It accepts bulk inputs, paginates results, deduplicates applications by serial number, and preserves which query found each record.
Search USPTO trademark application data with a small input
{"searchTerms": ["APPLE"],"status": "live","maxItems": 25}
Example output
{"serialNumber": "78787878","registrationNumber": "3457989","wordmark": "APPLE","status": "LIVE","alive": true,"filingDate": "2006-09-20","registrationDate": "2008-07-01","cancellationDate": null,"abandonmentDate": null,"publicationDate": "2008-04-15","priorityDate": null,"ownerNames": ["Apple Inc."],"ownerFullText": "Apple Inc.","ownerType": "CORPORATION","attorney": "Attorney of record","internationalClasses": ["009"],"usClasses": ["021", "023", "026", "036", "038"],"coordinatedClasses": ["009"],"goodsAndServices": ["Computers; computer hardware..."],"markType": "TRADEMARK","drawingCode": "4","markDescription": null,"designCodeDescriptions": [],"disclaimer": null,"translation": null,"currentBasis": ["1A"],"originalBasis": ["1B"],"registrationType": ["PRINCIPAL"],"trademarkUrl": "https://tsdr.uspto.gov/#caseNumber=78787878&caseSearchType=US_APPLICATION&caseType=DEFAULT&searchType=statusSearch","sourceQuery": "term:APPLE","scrapedAt": "2026-08-06T15:00:00.000Z"}
USPTO trademark scraper output
Export structured trademark application data for analysis, monitoring, and due diligence.
| Field | Description |
|---|---|
serialNumber | Stable USPTO application serial number |
registrationNumber | Registration number when registered |
wordmark | Text of the mark |
status, alive | Normalized LIVE/DEAD status and source flag |
filingDate, registrationDate | Application and registration dates |
cancellationDate, abandonmentDate | End-status dates when present |
publicationDate, priorityDate | Opposition publication and priority dates |
ownerNames, ownerFullText, ownerType | Public owner/applicant data |
attorney | Attorney of record when supplied |
internationalClasses, usClasses, coordinatedClasses | Trademark classifications |
goodsAndServices | Public goods/services descriptions |
markType, drawingCode, markDescription | Mark metadata |
designCodeDescriptions, disclaimer, translation | Design and text details |
currentBasis, originalBasis, registrationType | Filing and registration basis data |
trademarkUrl | Direct USPTO case-status link |
sourceQuery | Input mode and value that found the record |
scrapedAt | UTC extraction timestamp |
Input settings
| Key | Type | What it does |
|---|---|---|
searchTerms | string[] | Wordmarks or keywords |
owners | string[] | Owner/applicant names |
serialNumbers | string[] | Exact eight-digit application IDs |
registrationNumbers | string[] | Exact registration IDs |
internationalClasses | string[] | Nice Classification numbers |
status | all, live, dead | Status filter; default all |
filedAfter | date | Earliest filing date |
filedBefore | date | Latest filing date |
maxItems | integer | Maximum unique records across all queries (1–5,000) |
Provide at least one of searchTerms, owners, serialNumbers, or registrationNumbers.
Input recipes
Exact serial lookup
{"serialNumbers":["78787878"],"maxItems":1}
Owner and class portfolio search
{"owners":["Apple Inc."],"internationalClasses":["9"],"status":"live","maxItems":25}
Mixed brand watchlist
{"searchTerms":["ACME","EXAMPLE"],"filedAfter":"2025-01-01","maxItems":100}
Pricing
The Actor uses pay-per-event pricing: one small Start charge per run plus one Trademark record event per dataset item. See the live Pricing tab for current rates and volume discounts. Failed requests and duplicate records are not charged as results.
Tips and limits
- Start with 25–100 records, then increase
maxItemsafter confirming the query. - Use exact serial numbers for deterministic case lookup.
- Owner names follow USPTO public text and may include historical naming variations.
- Optional legal/mark fields can be empty because older and pending applications differ.
- USPTO can throttle or change its public service. The Actor retries temporary server failures but reports challenge or malformed responses instead of returning misleading empty success.
- This Actor exports public search records only. It does not file applications, access private correspondence, or provide legal advice.
API usage
cURL
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~uspto-trademarks-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchTerms":["APPLE"],"status":"live","maxItems":25}'
JavaScript (ApifyClient)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('fetch_cat/uspto-trademarks-scraper').call({searchTerms: ['APPLE'], status: 'live', maxItems: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Python (ApifyClient)
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('fetch_cat/uspto-trademarks-scraper').call(run_input={'searchTerms': ['APPLE'], 'status': 'live', 'maxItems': 25,})items = client.dataset(run['defaultDatasetId']).list_items().items
Use the Apify API to download the default dataset as JSON, CSV, Excel, XML, or RSS.
Use with AI agents and MCP
Connect through Apify MCP and ask an agent to search public USPTO records, compare owners/classes, or prepare a brand-watch dataset. Keep result limits bounded for interactive workflows.
FAQ
What data can I export with trademark scraper?
You can export the 31 documented fields above, including IDs, wordmarks, status, owners, attorneys, classifications, goods/services, dates, mark metadata, USPTO links, and provenance.
Can I run USPTO Trademarks Scraper through an API, schedule, or MCP client?
Yes. Use the Apify API example above, create a Schedule in Apify Console, or connect the Actor through Apify MCP.
How much does it cost to use USPTO Trademarks Scraper?
It charges one small Start event and one Trademark record event per saved result. See the live Pricing tab for current tier rates and discounts.
Does this include every USPTO document?
No. It returns structured public trademark search records. Binary prosecution documents and account-only actions are outside this Actor.
Why is an optional field empty?
USPTO records vary by application age and prosecution state. The Actor preserves nulls and empty arrays instead of guessing.
Can I search several brands at once?
Yes. Add multiple values to searchTerms; duplicate serial numbers are saved once.
Is this legal advice?
No. The Actor provides public registry data for research. Consult a qualified trademark professional for legal conclusions.
Related Actors
- SEC Filings Scraper for US public-company filing research
- Google Patents Scraper for patent prior-art workflows
Support
Open an issue from the Actor's Apify page with the input, run URL, expected result, and affected serial number or query. Do not include confidential credentials or legal correspondence.