{"openapi":"3.1.0","info":{"title":"Open Trademarks API","version":"1.0.0","description":"Free trademark search across the US, EU and Israeli registers. A register search, not legal advice. No key, no account; 60 requests a minute per address."},"servers":[{"url":"https://api.opentrademarks.org"}],"paths":{"/v1/check":{"get":{"operationId":"checkTrademark","summary":"Check a name against the live marks of the registers.","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":120}},{"name":"goods","in":"query","description":"What will be sold, free text; mapped to Nice classes.","schema":{"type":"string"}},{"name":"classes","in":"query","description":"Comma-separated Nice classes, 1 to 45.","schema":{"type":"string","example":"9,42"}},{"name":"registers","in":"query","description":"Comma-separated subset of us, eu, il. All three when omitted.","schema":{"type":"string","example":"us,eu,il"}}],"responses":{"200":{"description":"The verdict with its evidence. Also available as text/markdown through the Accept header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckResult"}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"The name is missing or too short."}}}},"/v1/search":{"get":{"operationId":"searchTrademarks","summary":"Ranked live marks that share a query's spelling or sound.","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"registers","in":"query","description":"Comma-separated subset of us, eu, il. All three when omitted.","schema":{"type":"string","example":"us,eu,il"}},{"name":"limit","in":"query","schema":{"type":"integer","default":20,"maximum":100}}],"responses":{"200":{"description":"Marks, ranked, with the read date of each register and the notice."}}}},"/v1/marks/{register}/{number}":{"get":{"operationId":"getMark","summary":"One office record as the register holds it.","parameters":[{"name":"register","in":"path","required":true,"schema":{"type":"string","enum":["us","eu","il"]}},{"name":"number","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The record."},"404":{"description":"Not in the registers read."}}}},"/v1/registers":{"get":{"operationId":"getRegisters","summary":"When each register was last read.","responses":{"200":{"description":"The three read dates."}}}}},"components":{"schemas":{"CheckResult":{"type":"object","properties":{"verdict":{"type":"string","enum":["exact_live_mark","similar_live_marks","no_live_match","not_checked"],"description":"not_checked means no register in the check has been read yet; it is not a verdict."},"conflicts":{"type":"array","items":{"$ref":"#/components/schemas/MatchedMark"}},"other_classes":{"type":"array","items":{"$ref":"#/components/schemas/MatchedMark"}},"dead":{"type":"object","properties":{"count":{"type":"integer"},"latest":{"type":"string","nullable":true}}},"registers":{"type":"array","items":{"type":"object","properties":{"register":{"type":"string"},"loaded_at":{"type":"string","nullable":true},"stale":{"type":"boolean"}}}},"notice":{"type":"string","description":"What the answer means, the Israeli Hebrew-only gap when Israel is checked, and the fixed line last. Show it with any result."}}},"MatchedMark":{"type":"object","properties":{"register":{"type":"string"},"number":{"type":"string"},"mark":{"type":"string"},"state":{"type":"string","enum":["live","dead"]},"classes":{"type":"array","items":{"type":"integer"}},"signals":{"type":"array","items":{"type":"string","enum":["exact","variant","pseudo","sound","spelling","contains","hebrew"]}},"class_overlap":{"type":"array","items":{"type":"integer"}},"office_url":{"type":"string"}}}}}}