Trademark Search Scraper
Pricing
from $0.84 / 1,000 results
Trademark Search Scraper
Search 141M+ trademarks from 70+ registers worldwide (EUIPO, WIPO, USPTO, CNIPA, JPO, UKIPO and more) in one query. Filter by office, Nice class, status and mark type. Returns owner, filing and registration numbers, dates, classes and mark images. No API key.
Pricing
from $0.84 / 1,000 results
Rating
0.0
(0)
Developer
Ibnu Adzim
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Trademark Search Scraper — TMview, 70+ Offices
Search 141 million+ trademarks from more than 70 registers worldwide in a single query — EUIPO, WIPO, USPTO, CNIPA (China), JPO (Japan), UKIPO, DPMA (Germany), INPI, IP Australia and dozens more.
No API key, no login, no account.
Why use this actor
- One search, every register. Instead of checking the EU, US, UK and Chinese offices separately, ask once and get all of them with a consistent row shape.
- Covers USPTO without a key. The USPTO's own TSDR API now requires registration ("Beginning October 2, you'll need to register for an API key…"). This route returns US marks anyway, alongside 70 other registers.
- Real clearance filters. Restrict by office, Nice class (1–45), status and mark type — all verified to genuinely narrow results, not silently ignored.
- Owner names, numbers and dates. Applicant, application and registration numbers, filing/registration/expiry dates, Nice classes, protected territories, and mark images where the office publishes one.
- Honest counts. Every search writes a summary row with the register's own match count next to how many rows the run could actually reach.
Typical uses
- Brand clearance — is this name already registered in my classes and markets?
- Trademark watch — monitor new filings that resemble your brand.
- Competitor tracking — what is a company filing, where, and in which classes?
- Portfolio audit — list every mark an owner holds across jurisdictions.
The one limit you need to know
TMview serves at most 10,000 rows per query, however many it reports as
matching. A search for apple reports 33,895 matches; you can retrieve 10,000
of them.
That ceiling is upstream — two limits apply at once (max page 200, max offset 10,000) and no tool can exceed them. This actor always fetches 100 rows per request, which is the only setting that reaches the full window: at 20 rows per request the page limit binds first and you would silently top out at 4,000.
To go wider, split the search. Each combination is its own 10,000-row window:
{ "searchTerms": ["apple"], "offices": ["US"], "niceClasses": [9] }{ "searchTerms": ["apple"], "offices": ["US"], "niceClasses": [25] }{ "searchTerms": ["apple"], "offices": ["EM"] }
The summary row tells you when this applies (upstream_total_exceeds_window).
Input
{"searchTerms": ["apple", "tesla"],"searchCriteria": "C","offices": ["EM", "US"],"niceClasses": [9],"statuses": ["Registered"],"maxItems": 100}
| Field | Type | Description |
|---|---|---|
searchTerms | array | Required. One brand name or word per entry. |
searchCriteria | string | C contains, E exact, B begins with, W word match, F fuzzy/phonetic. |
offices | array | Two-letter office codes (EM EU, WO WIPO, US, GB, DE, CN, JP…). Empty = all. |
niceClasses | array | Nice classes 1–45 (9 software, 25 clothing, 35 business, 42 IT services). |
statuses | array | Registered, Filed, Expired, Ended, Withdrawn, Refused, Opposed. |
markTypes | array | Word, Figurative, Combined, 3-D, Sound, Colour… |
goodsServices | array | Free-text terms matched against goods & services. |
maxItems | integer | Results per term, up to the 10,000 upstream ceiling. |
maxConcurrency | integer | Requests in flight. Default 3. |
minRequestInterval | number | Seconds between request starts. Default 0.4. |
A blank search is refused. TMview treats an empty term as "match everything" and reports 141 million results — this actor stops that before it starts rather than billing you for a crawl of the world's registers.
Output
Rows share one envelope, told apart by recordType: TRADEMARK,
SEARCH_SUMMARY, ERROR.
TRADEMARK
{"_input": "apple","recordType": "TRADEMARK","resultRank": 1,"st13": "EM500000000218990","markName": "APPLE","office": "EM","officeUrl": "https://www.tmdn.org/tmdsview-cdc/trademark/data/EM500000000218990","applicationNumber": "000021899","registrationNumber": "000021899","status": "Registered","markType": "Word","applicantName": ["Apple Inc."],"niceClasses": [9],"protectedIn": ["EM"],"applicationDate": "1996-04-01","registrationDate": "1998-11-25","expirationDate": "2026-04-01","markImageUrl": null}
| Field | Type | Description |
|---|---|---|
st13 | string | TMview's stable identifier for the mark. |
markName | string | The mark as registered. |
office | string | Register holding it (EM, US, CN…). |
officeUrl | string | Link to the full record. |
applicationNumber / registrationNumber | string | Official numbers. |
status | string | Registered, Filed, Expired, Ended… |
markType | string | Word, Figurative, Combined… |
applicantName | array | Owner(s) — an array, since marks can be co-owned. |
niceClasses | array | Nice classes the mark covers. |
protectedIn | array | Territories of protection. Differs from office: a WIPO filing is held at one office but protected in many. |
applicationDate / registrationDate / expirationDate | string | YYYY-MM-DD. |
markImageUrl | string | Image, where one exists — word marks have none. |
ERROR
Every search term produces at least one row, so a failure is visible in the data rather than as an absence.
Known limits
- 10,000 rows per query. Explained above; split the search to go wider.
- Not every register publishes every field. Measured across a live sample: registration number ~90%, expiry date ~67%, mark image ~55% (word marks have none). Missing values come back as explicit nulls, so columns stay stable.
- No goods & services text. TMview's per-mark detail page is HTML, laid out differently by each of 70+ national offices, so this actor does not scrape it. You can still filter by goods & services text.
- Statuses and types vary by office. They are documented rather than enforced as a closed list, because national registers use their own wording — and an unrecognised value returns a clean zero, so a typo is visible.
- Data is as current as each office's feed to TMview, which varies by country.
Attribution
Data via TMview, operated by the EUIPO with the participating national and
regional IP offices. TMview is a search tool: for legal certainty always confirm
against the official register, linked on every row as officeUrl.