14M+ trademarks behind one REST API. Everything below is the production API answering live — no key, no signup.
api.markbase.co/search?q=nike&limit=5| Mark | Owner | Filed | Status | Serial |
|---|
No results for this request.
Not just developer plumbing — every registered mark in the USPTO, owned by anyone, filed since 1870. These cards are live.
Each endpoint does one thing and returns JSON over plain HTTP — no OAuth flow, no SDK lock-in, no per-seat licence.
Fuzzy full-text matching across 14M+ records, so a misspelled query still finds the mark. Filter by status, class, filing date, owner country and state; ask for facets alongside the hits or pull the whole page as CSV.
Similarity scoring against live marks with a risk band per match, optionally scoped to a Nice class — the screening query, not a raw keyword search you have to post-process yourself.
Aggregate counts by class, status, year or country computed over the entire index, plus field distribution stats. Daily ETL from USPTO bulk data keeps all of it current.
The request you just ran, in the shape you ship it. Start with curl, move to the SDK, hand it to an agent.
curl "https://api.markbase.co/search?q=brand"npm i @radsoft/markbase@radsoft/markbase-mcp$ | Endpoint | Parameters | Returns | |
|---|---|---|---|
| GET | /search | q, status_code, international_code, filing_date_from/to, owner_country, sort, page, limit, facets, format | Full-text search with filters, facets and CSV export |
| GET | /suggest | q, limit | Lightweight autocomplete suggestions |
| GET | /clearance | mark, class, limit | Similarity check — find conflicting marks |
| GET | /owner | name, page, limit | Every mark for an owner |
| GET | /trademark/:id | serialNumber | Single trademark by serial number |
| GET | /trademark/:id/timeline | serialNumber | Prosecution history for one mark |
| POST | /trademark/batch | serials[] — Scale plan | Up to 50 marks in one request |
| GET | /aggregate | by | Distribution counts by class, status, year, country |
| GET | /classes | — | Nice classification reference |
| GET | /info | — | Index coverage and last update time |
| GET | /stats | — | Field distribution statistics |
| GET | /status | — | Service health, uptime and version |
What people build
Everything else is in the interactive docs.
No. The open tier answers 1,000 requests a month keyed by IP — that's why the console at the top of this page works. Signing up free upgrades the same endpoints to 5,000 a month with a key.
USPTO bulk trademark data, ingested daily by our ETL. The index holds 14M+ records going back to 1823 — filings, registrations, renewals, dead marks, the whole register.
A scored list of potentially conflicting marks — similarity score plus a risk band per match, optionally scoped to a Nice class. It's the screening query, not a raw keyword search you post-process yourself.
CSV via format=csv on /search, pagination everywhere, and POST /trademark/batch for up to 50 serials per request on the Scale plan. There's no separate data-dump product — the API is the dump.
Yes — npm i @radsoft/markbase gives you a typed Node client for every endpoint, and @radsoft/markbase-mcp wires the same API into AI assistants as 6 MCP tools. Plain HTTP works fine too; there's no SDK lock-in.
Start free. Upgrade when you need more — the monthly quota is the meter, cancel any time.
Sign up, get a key, keep it
For apps going to production
For high-volume applications
Need higher volume or a custom plan? Talk to us. Markbase is a product of Rad Soft.
Your first request needs nothing — no key, no signup, right now. Get a free key for 5,000 requests a month and usage analytics.
$ curl "https://api.markbase.co/search?q=your-brand"
→ 200 OK · ~109ms · 14M+ marks
{ "query": "your-brand", "hits": [ … ] }