USPTO trademark search API
Search US trademark applications and registrations (USPTO) by wordmark, to check whether a brand name is already taken before using or filing it.
What you get
- US trademark applications and registrations matching a wordmark
- Serial number, mark, owner, status (live or dead), filing and registration dates
- Nice classes and a link to the USPTO TSDR record
Parameters
qstringrequiredqueryWordmark
2–200 characters
statuslive | dead | alloptionalqueryLive, dead or all marks
default live
limitintegeroptionalqueryMaximum number of marks
1 to 25 · default 10
matchall | anyoptionalqueryRequire all words or any word
default all
Try it
Example response
[
{
"serial": "77724923",
"mark": "ACME",
"owner": "Acme Products Company (CORPORATION; MISSOURI, USA)",
"status": "live",
"filed": "2009-04-29",
"registered": "2010-04-06",
"classes": [
"012"
],
"url": "https://tsdr.uspto.gov/#caseNumber=77724923&caseType=SERIAL_NO&searchType=statusSearch"
}
]
First of 3 live marks our test fixture returns.
HTTP
curl "https://402check.com/v1/us/trademark?q=acme"
curl -H "Authorization: Bearer rk_YOUR_KEY" "https://402check.com/v1/us/trademark?q=acme"
MCP
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "us_trademark",
"arguments": {
"q": "acme"
}
}
}
Endpoint https://402check.com/mcp. Setup for Cursor, Claude and other clients is in the docs.
Source and limits
Data from USPTO Trademark Search.
- US marks only
- The USPTO search backend is undocumented and can change without notice (then 502 upstream_error, not charged)
- At most 25 marks per call; match=all requires every word, match=any accepts any
Questions
How much does a search cost?
$0.02 per successful call. The first 10 calls a day per IP address are free.
Do I need an account?
No. Call it without credentials on the free tier, pay per call with x402 over HTTP, or send a prepaid rk_ key bought by card.
Does it include dead marks?
Only when asked: status defaults to live; pass status=dead or status=all.
Am I charged for a failed call?
No. Credits are deducted and x402 payments settled only on a 2xx response; errors such as invalid_query or upstream_error cost nothing.