Developer guide

USPTO TSDR API

TSDR — Trademark Status & Document Retrieval — is the USPTO's API for pulling the status and documents of a single trademark by its serial or registration number. Here's what the TSDR API does, how to authenticate, and the JSON it returns — plus the one thing it can't do: search.

Or start free — 200 API calls/month, no credit card.

Background

What is the USPTO TSDR API?

TSDR stands for Trademark Status & Document Retrieval. It is the USPTO's official service for retrieving everything on file for a known trademark application or registration: its current status, prosecution history, owner, and the underlying document images. The API lives at tsdrapi.uspto.gov/ts/cd/ and returns JSON, XML, or PDF. Since 2020 it requires a free USPTO API key. It is the machine-readable counterpart to the TSDR portal at tsdr.uspto.gov.

Reference

Endpoints, authentication & formats

Authenticate by sending your key in a USPTO-API-KEY header — get one from a MyUSPTO / USPTO Open Data Portal account. Every endpoint is keyed on a serial (sn) or registration (rn) number you already have.

What you getPath (under tsdrapi.uspto.gov/ts/cd/)
Status by serial number (JSON)casestatus/sn{serialNumber}/info.json
Status by registration number (JSON)casestatus/rn{registrationNumber}/info.json
Status as XMLcasestatus/sn{serialNumber}/info.xml
Full document bundle (PDF)casedocs/bundle.pdf?sn={serialNumber}

Fetch a mark's status as JSON in one request:

curl -H "USPTO-API-KEY: your_uspto_key" \
  "https://tsdrapi.uspto.gov/ts/cd/casestatus/sn88888888/info.json"

The USPTO enforces per-key rate limits and will throttle keys that send too many requests too quickly.

The catch

TSDR is lookup, not search

Every TSDR endpoint requires a serial or registration number up front. There is no way to search by mark text, owner, goods/services, class, or status. TSDR answers “what is the status of application 88888888?” It cannot answer “which live marks contain ACME in class 9?” — the question you actually have when clearing a name or monitoring a brand. For that you need a trademark search API.

The alternative

Searching US trademarks without a serial number

Goalie IP maintains its own daily-refreshed copy of the USPTO register and exposes it three ways — a free search UI, a JSON search API, and an MCP server for AI agents. All three do what TSDR can't: find the marks before you have their numbers, then let you pull full detail.

Free trademark search

Search our daily-refreshed copy of the USPTO register by name, with exact and fuzzy matching and filters for owner, class, and status. No key required.

Search now →

Trademark Search API

The programmatic counterpart to TSDR's lookup: POST a query and search 14M+ records by mark literal, owner, class, status, and date — clean JSON, pagination built in.

See the API →

Trademark MCP server

The same search exposed to AI agents over the Model Context Protocol — point Claude, Cursor, or any MCP client at one URL. Included with every API plan.

See the MCP server →
FAQ

USPTO TSDR API questions

What is the USPTO TSDR API?

TSDR (Trademark Status & Document Retrieval) is the USPTO's official API for retrieving the status and documents of a single trademark by its serial or registration number. Call it at https://tsdrapi.uspto.gov/ts/cd/ to get a mark's current status, prosecution history, and document images as JSON, XML, or PDF. It is a lookup service — you must already know the number.

Is the TSDR API free?

Yes. The TSDR API is free to use, but since 2020 it requires a free API key from the USPTO, obtained through a MyUSPTO / USPTO Open Data Portal account. The key is sent in a USPTO-API-KEY request header, and the USPTO enforces per-key rate limits.

How do I get a trademark's status by serial number from TSDR?

Send a GET request to https://tsdrapi.uspto.gov/ts/cd/casestatus/sn{serialNumber}/info.json with your key in the USPTO-API-KEY header. The JSON response includes the current status code and date, filing basis, owner, and prosecution history. Swap sn for rn to look up by registration number, or /info.xml for XML.

Can the TSDR API search trademarks by name?

No. TSDR only retrieves a record you already have the serial or registration number for — there is no way to search by mark text, owner, goods/services, or class. To find marks you don't have numbers for, you need a trademark search API. Goalie IP's Trademark Search API runs exact, contains, and fuzzy mark search plus owner/class/status/date filters over 14M+ USPTO records as JSON.

What is the difference between TSDR and a trademark search API?

TSDR is retrieval: it answers "what is the status of application 88888888?" A trademark search API is discovery: it answers "which live marks contain ACME in class 9?" TSDR needs the number up front; a search API searches the whole register by mark, owner, class, status, and date. Most workflows need both — search to find the marks, then retrieve full detail.

Does the TSDR API return JSON?

Yes. Status endpoints return JSON (info.json) or XML (info.xml), and document endpoints return PDF or ZIP bundles. The JSON is comprehensive but verbose, so many developers map it to a smaller shape for application use.

Goalie IP is not affiliated with, or endorsed by, the United States Patent and Trademark Office (USPTO). TSDR is a USPTO service; endpoint paths and access requirements are set by the USPTO and may change. This page is general information, not legal advice, and covers US federal (USPTO) trademark data only.

Search the whole register, not one record at a time

Explore the Trademark Search API →