TheUSPTO,butactuallyusable.
- Platform
- REST API · SDK · MCP server
- Status
- Live · 2M+ requests served
- Scope
- API, data pipeline, SDKs, site

The problem
The trademark register is public, but it's hostile — bulk XML dumps, a query syntax nobody speaks, and search tools priced per seat.
The idea
Put the whole register behind a dozen GET endpoints that each do one job — and answer the first question before anyone reaches for a signup form.
Three jobs, twelve endpoints.
Typo-tolerant search
Fuzzy full-text matching across every record on the register — a misspelled query still finds the mark. Filter by status, class, filing date or state; facets come back with the hits.
GET /search · /suggestClearance scoring
Similarity scoring against live marks with a risk band per match, optionally scoped to a Nice class — a screening query, not a keyword search you post-process.
GET /clearance · /ownerRegister-wide analytics
Aggregate counts by class, status, year or country over the whole index, plus field-distribution stats. A daily ETL from the USPTO bulk feed keeps it current.
GET /aggregate · /stats · /infoA terminal that learned typography.
The redesign leans into what the product is — a console. Near-black slate surfaces, one sky accent for the mark and the action that matters. Bricolage Grotesque sets the headlines, Geist the interface, Geist Mono the data.
The mark is a joined MB monogram — sky on slate, set to lift off the dark.
Under the hood
A Rust pipeline feeds a search index; a Bun edge meters and serves it. The data refreshes every night and watches itself.
API
- Hono + zod-openapi on Bun
- Twelve GET endpoints, plain JSON
- No OAuth flow, no SDK lock-in
Index
- Meilisearch over 14M+ marks
- Typo-tolerant, ranked results
- Filters on status, class, date, state
Pipeline
- Rust ETL, daily USPTO pull
- Filings since 1823, normalized
- Freshness monitored, self-alerting
Metering
- Monthly quota + per-minute burst
- Keyless tier metered by IP
- X-Quota-* headers on every response
Accounts
- Magic-link auth, mb_ API keys
- Stripe checkout + billing portal
- Free tier — 5,000 requests a month
Surface
- Scalar docs themed to match
- @radsoft/markbase typed Node SDK
- MCP server — six tools for agents
In the wild

Have a dataset worth opening up?
We build APIs people actually enjoy calling.