Tools / Trademark Search — USPTO, EUIPO, Nice Classification (TMview)
Trademark Search — USPTO, EUIPO, Nice Classification (TMview)
Search registered trademarks across 70+ national and regional trademark offices — USPTO (US), EUIPO (EM), UK, DE, FR, JP, CN, WIPO (WO) and more — in one call via the official TMview database. 22 fields incl. trademark name, status, type, application/registration numbers and dates, expiration date, opposition window (start + deadline), seniority claim, applicant names, Nice classes, Vienna codes (figurative marks), territories and mark image URL. Filter by office, Nice class and status; results are deduplicated and paginated with no overlap verified up to 359 pages deep.
Run it
Pay-per-result on Apify, no FetchSmith account needed. Use your own Apify API token, or hit Run on the Store page with no token at all.
curl -X POST "https://api.apify.com/v2/acts/fetchsmith~trademark-search-scraper/run-sync-get-dataset-items?clean=true" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" -H "Content-Type: application/json" \
-d '{"maxResults": 20, "niceClasses": ["9"], "offices": ["US", "EM"], "searchTerm": "solar", "statuses": ["Registered"]}'
Returns the rows as JSON when the run finishes. A hosted FetchSmith API (one key, no Apify account, see API docs) is planned but not open yet.
Output fields
id st13 url trademarkName office status trademarkType applicationNumber registrationNumber applicationDate registrationDate expirationDate oppositionPeriodStart oppositionDeadline seniorityClaimed applicantNames niceClasses viennaCodes territories markImageUrl detailImageUrl watchLabel
Sample output
{
"applicantNames": [
"TBC Trademarks, LLC"
],
"applicationDate": "2014-09-23",
"applicationNumber": "86403823",
"detailImageUrl": "https://www.tmdn.org/tmview/api/trademark/image/US500000086403823",
"expirationDate": "2036-05-10",
"id": "US500000086403823",
"markImageUrl": "https://www.tmdn.org/tmview/api/trademark/thumbnail/US500000086403823",
"niceClasses": [
"12"
],
"office": "US",
"oppositionDeadline": null,
"oppositionPeriodStart": null,
"registrationDate": "2016-05-10",
"registrationNumber": "4956702",
"seniorityClaimed": false,
"st13": "US500000086403823",
"status": "Registered",
"territories": [
"US"
],
"trademarkName": "SOLAR",
"trademarkType": "Word",
"url": "https://www.tmdn.org/tmdsview-cdc/trademark/data/US500000086403823",
"viennaCodes": []
}
Guides
- USPTO's own trademark APIs now all require a key — the keyless answer is a different office's database — TSDR, the Open Data Portal, the old bulk-data API and the search SPA all fail without an API key as of October 2026. A federated EU-run index, TMview, answers the same question with the same official USPTO records and no key at all.
- EUIPO's own trademark API is gated too — the same federated index answers it keyless — api.euipo.europa.eu runs a modern APIM developer portal with no free tier on either Sandbox or Production — measured live against two separate products. TMview, which EUIPO itself also runs, answers the same EU register with no key.
- TMview's trademark search has three match modes, not one — and two of them are misnamed — TMview's public search API takes a "criteria" code its own web UI never varies. We tried the alphabet against it live — only three values return 200, and the other two are a whole-word match and a plain suffix match, not the prefix/suffix pair they look like.
- One key-free API searches trademarks in 70+ offices — and its worst failure returns no HTTP status at all — TMview's public search endpoint covers USPTO, EUIPO, UK, DE, JP and 70+ more registries with no key and no login. Omit one header and it doesn't 403 you, it drops the TCP connection. Every date is anchored at midday UTC on purpose, and the same field is 100% populated in one office and 0% in the next.
Only publicly accessible pages are read. Respect the source site's terms when using the data.