Developers

USPTO Trademark Search API

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.

What you can build

One API for the entire USPTO trademark 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.

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 →

Serial-number status as JSON

GET any serial number and read its live USPTO status code and date in clean JSON. Perfect for status-tracking and docketing tools.

See the docs →

Owner, class & date filters

Filter by owner name, attorney, international class, goods/services text, and filing/registration date ranges — combine filters with AND logic.

See the docs →

Pagination over 14M+ records

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 →
Quick example

A search is one POST request

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 }
}

More examples — Python, Node & curl →

vs. USPTO TSDR

Why not just use TSDR?

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.

CapabilityUSPTO TSDR APIGoalie IP API
Search by mark text (exact / contains / fuzzy)No — lookup onlyYes
Filter by owner, class, status, dateNoYes
Serial-number status as JSONYes (verbose)Yes (clean JSON)
Pagination over result setsNoUp to 500 / page
Quota usage in every responseNocallsUsed / callsRemaining
Free tierThrottled, key required200 calls/mo, no card
Pricing

Start free, scale when you ship

Every plan includes both endpoints and all filters. Quotas are pooled across your API keys and reset monthly. Full details on the plans page.

Free

0/ mo
No credit card required

Kick the tires and prototype against live USPTO data.

  • 200 calls / month
  • Search + serial-number lookup
  • All filters included
Most popular

API Professional

49/ mo
Auto-renews monthly · cancel any time

For production apps and firms running high-volume searches.

  • 30,000 calls / month
  • Up to 5 API keys
  • +$0.002 per overage call

API Starter

19/ mo
Auto-renews monthly · cancel any time

For developers and small teams building on trademark data.

  • 5,000 calls / month
  • Up to 5 API keys
  • +$0.004 per overage call
FAQ

USPTO trademark API — frequently asked questions

Is there a USPTO trademark API for developers?

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, owner, 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.

Does the trademark API return JSON?

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.

How is it different from 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, owner/class/status/date filtering, and pagination up to 500 records per call, all as clean JSON.

Can I look up a trademark's status by serial number?

Yes. GET /api/v1/trademarks/{serialNumber} returns the record's currentStatusCode and currentStatusDate as JSON, so you can track live USPTO status inside docketing, clearance, and monitoring tools.

Is there a free trademark API tier?

Yes — a free tier of 200 calls per month with no credit card required. Paid plans are $19/month for 5,000 calls (Starter) and $49/month for 30,000 calls (Professional). Every plan includes both endpoints and all filters.

Read the full API documentation →

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.

Build on the USPTO trademark register

View API plans & get a key →