Open Trademarksfor agents
For agents and developers

The same verdict, as a tool

Two read-only tools. No key. No account.

MCP

Streamable HTTP, no auth. Inside the Just plugin, or at the host root.

https://mcp.opentrademarks.org/mcp

check_trademark({ name: "lumina",
  goods: "software for design" })
= { verdict: "similar_live_marks",
    conflicts: [ ... ],
    registers: [ ... ] }

CLI

Part of the Just CLI. JSON with a flag.

$ just trademark check lumina --goods "software"
Similar live marks · class 42
  LUMINA HEALTH  US  pending  spelling
  LUMENA         EU  live     sound

HTTP

The same fields, as JSON or markdown.

GET https://api.opentrademarks.org/v1/check
    ?name=lumina&classes=42
Accept: application/json
Accept: text/markdown
Open dataPublished where each register allows, at /open-data.
Open codeMIT, on GitHub. Thresholds change in the open.
60 requests a minutePer address, no key. Ask for more.
Reference

Endpoints

CallWhat it returns
GET /v1/check?name=&goods=&classes=&registers=The verdict: exact_live_mark, similar_live_marks or no_live_match (or not_checked while no register in the check has a read date); the conflicting live marks with how each matched (exact, variant, pseudo, sound, spelling, contains, hebrew) and which classes overlap; the live marks in other classes; the dead-mark count; when each register was read; the notice.
GET /v1/search?q=&registers=&limit=Ranked live marks that share the query's spelling or sound.
GET /v1/marks/{register}/{number}One office record: the index row, its classes and the full record as the office publishes it.
GET /v1/registersThe three read dates and row counts, with stale when a register has not been read for 36 hours.
GET /openapi.jsonThe OpenAPI 3.1 description.

The rule an agent keeps

Do not tell the user a name is clear unless it was checked during this conversation and every register in the answer was read today or yesterday. A register search is not legal advice: it does not see unregistered use, state registers, logos, or meaning in another language.

Agent surfaces