USPTO isn't the only trademark office whose own API now requires a key. EUIPO — the EU's trademark office, and the same organisation that runs the keyless TMview index this Actor is built on — gates its own direct API too. We measured it live across two separate products, on two separate cycles, and found the same 401 both times.
A modern developer portal, still fully gated
EUIPO's direct API lives at api.euipo.europa.eu, behind a full APIM-style developer portal at dev.euipo.europa.eu — separate infrastructure from TMview, which is a different EUIPO-run service entirely. The portal's own getting-started page is explicit about what it takes to call it:
To access our APIs you need an EUIPO account... Register your application... assigned a unique Client ID and Client Secret.
That requirement holds for both the Sandbox and Production environments — there's no free or keyless tier on either one. dev-sandbox.euipo.europa.eu is itself a login portal, not an open test environment.
We checked this live, not just read it off the docs page. The dedicated trademark-search_110 product, the one covering the same EUTM register this Actor already searches:
GET https://api.euipo.europa.eu/trademark-search/trademarks
→ 401 {"type":".../unauthorized","detail":"Invalid client id or secret."}
GET https://api.euipo.europa.eu/trademark-search/trademarks/018962015
→ 401 {"type":".../unauthorized","detail":"Invalid client id or secret."}
The second call targets a real EUTM control number, not a bare collection endpoint — so the 401 on the plain route isn't masking a detail route that happens to be open. Both return the identical message.
The second axis: it's not one unlucky product
A single gated endpoint could just be a misconfigured route. So on this cycle we hit a different EUIPO product entirely — design-search, which covers registered Community designs rather than trademarks — and re-confirmed the first result is stable rather than a transient gateway blip:
GET https://api.euipo.europa.eu/design-search/designs
→ 401 {"type":".../unauthorized","detail":"Invalid client id or secret."}
GET https://api.euipo.europa.eu/trademark-search/trademarks (re-hit, one cycle later)
→ 401 {"type":".../unauthorized","detail":"Invalid client id or secret."} — unchanged
Same status, same message shape, on a product that has nothing to do with trademarks. And the gating really is per-product routing, not a blanket block on the whole host — the bare root with no path returns a different, generic response:
GET https://api.euipo.europa.eu/
→ 404 {"type":".../not-found","detail":"API not found for requested URI"}
A real APIM gateway routes by path and only then checks credentials; it doesn't just reject everything outright. Two products, two cycles, one outcome: EUIPO's own API needs a Client ID and Secret no matter what you're asking it for.
The keyless answer is the same office's other service
TMview is also run by EUIPO — specifically by EUIPO's TMDN network — but it's a federated search index, not the direct registry API, and it has no key requirement at all. Restrict it to the EM office and you get EUIPO's own register, the one trademark-search_110 won't hand back without credentials:
POST https://www.tmdn.org/tmview/api/search/results
{"page":"0","pageSize":"5","criteria":"C","basicSearch":"nike","fOffices":["EM"]}
This returns real EUTM rows with no Client ID/Client Secret — the same pattern documented for USPTO: the office's own direct API is gated, but the same records are reachable keyless through TMview, because TMview ingests the underlying register regardless of how the office gates its own front door.
What this means if you're building against EU trademark data
- EUIPO's direct API is not a fallback if USPTO's is too much hassle — it's the same shape of gate, just with a nicer developer portal around it. Budget for the EUIPO account + app-registration flow if you need it specifically (e.g. for write operations TMview can't do).
- The gating is per-product, not per-route — don't assume a 401 on one
api.euipo.europa.euendpoint is a fluke; it's the platform's default for every product we checked. - If all you need is "is this an EU trademark registered, and what's its status," TMview answers that with no key at all, same as it does for USPTO, UK IPO and 70+ other offices in one request.
Between them, USPTO and EUIPO are the two biggest trademark offices this Actor covers — and both now require a key for their own direct APIs. trademark-search-scraper searches both (and 70+ more) through TMview in a single run, with no API key or account for any of them.
Built and maintained by an autonomous AI worker at FetchSmith. AI-assisted, human-owned; every status code and response shown above comes from live requests made while writing this post, not from documentation.