Exact, contains & fuzzy mark search
Match a mark literal exactly, as a substring, or by trigram similarity to surface confusingly similar marks — something the USPTO TSDR API can't do.
See the docs →A fast JSON REST API for USPTO trademark data — a developer-friendly alternative to scraping TSDR. Search 14M+ records by exact or fuzzy mark literal, look up serial-number status, and filter by owner, class, and date. Bearer-token auth, predictable JSON, pagination built in.
Or start free — 200 calls/month, no credit card.
Building an AI agent? The same data is available as a trademark MCP server — search and filter, not just serial lookups. Included with every plan.
Only need to look up a known serial number? See how the USPTO TSDR API compares — it retrieves one record by number; this API searches the whole register.
The same data that powers our attorney-grade monitoring — exposed as a clean REST API for your application, docketing system, or client portal. It's our own continuously-refreshed copy of the USPTO trademark dataset, updated daily (occasionally a day behind), not a live connection to USPTO systems.
Match a mark literal exactly, as a substring, or by trigram similarity to surface confusingly similar marks — something the USPTO TSDR API can't do.
See the docs →GET any serial number and read its current USPTO status code and date in clean JSON. Perfect for status-tracking and docketing tools.
See the docs →Filter by owner name, attorney, international class, goods/services text, and filing/registration date ranges — combine filters with AND logic.
See the docs →Page through full result sets up to 500 records per call, with total counts and per-call quota usage returned in every response.
See the docs →Authenticate with a Bearer token and send JSON. You get JSON back.
curl -X POST https://www.goalieip.com/api/v1/trademarks/search \
-H "Authorization: Bearer gip_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "markLiteral": "ACME", "markLiteralMode": "exact",
"currentStatusCode": ["700", "800"], "pageSize": 25 }'{
"data": [
{ "serialNumber": "97123456", "markLiteral": "ACME",
"currentStatusCode": "700", "ownerName": "Acme, Inc." }
],
"meta": { "total": 12, "page": 1, "pageSize": 25,
"callsUsed": 1, "callsRemaining": 4999 }
}The USPTO's TSDR API only returns one record at a time by serial or registration number — there is no way to search. Here's the difference.
| Capability | USPTO TSDR API | Goalie IP API |
|---|---|---|
| Search by mark text (exact / contains / fuzzy) | No — lookup only | Yes |
| Pseudo-mark / translation / transliteration search | No | Yes |
| Design search code filtering | No | Yes |
| Full-text goods/services search (word stemming) | No | Yes |
| Filter by owner, class, status, date | No | Yes |
| Serial-number status as JSON | Yes (verbose) | Yes (clean JSON) |
| Pagination over result sets | No | Up to 500 / page |
| Quota usage in every response | No | callsUsed / callsRemaining |
| Free tier | Throttled, key required | 200 calls/mo, no card |
Every plan includes the REST API, the MCP server, and all filters. One quota covers both, pooled across your API keys and reset monthly. Full details on the plans page.
Kick the tires and prototype against real USPTO data.
For developers and small teams building on trademark data. Enough volume for most search-driven applications.
For production applications and law firms running high-volume trademark searches at scale.
For AI agents and high-volume platforms. Agents make several calls per question, so usage climbs faster than a scripted integration.
Yes. The Goalie IP Trademark Search API is a JSON REST API over a daily-refreshed copy of the USPTO trademark register — 14M+ records. Authenticate with a Bearer token, then POST to /api/v1/trademarks/search to search by mark literal, pseudo mark, translation, owner, attorney, design search code, status, international class, and filing date, or GET /api/v1/trademarks/{serialNumber} for a single record. Goalie IP is not affiliated with or endorsed by the USPTO.
Every request and response uses JSON. A search returns a data array of trademark records plus a meta object with total, page, pageSize, and your callsUsed / callsRemaining quota — clean, predictable JSON built for application use rather than the verbose payloads of the USPTO TSDR API.
The USPTO's TSDR API only returns one record at a time by serial or registration number — there is no way to search by mark text, owner, or class. The Goalie IP API adds exact, contains, and fuzzy mark-literal search, pseudo-mark, translation, and transliteration search, design search code filtering, owner/class/status/date filtering, and pagination up to 500 records per call, all as clean JSON.
Yes. GET /api/v1/trademarks/{serialNumber} returns the record's currentStatusCode and currentStatusDate as JSON, so you can track current USPTO status inside docketing, clearance, and monitoring tools.
Yes — a free tier of 200 calls per month with no credit card required. Paid plans are $19/month for 5,000 calls (Starter), $49/month for 30,000 calls (Professional), and $149/month for 150,000 calls (Business). Every plan includes both endpoints and all filters. Going past your allowance does not cut you off: additional calls are billed per-call at the end of the month.
Goalie IP is not affiliated with, or endorsed by, the United States Patent and Trademark Office (USPTO). The API serves Goalie IP's own copy of USPTO trademark data, refreshed daily.