USPTO Status API

Trademark case status

Operations 7

GET /ts/cd/casestatus/sn{serialNumber}/info.xml Get Case Status By Serial Number XML #
GET /ts/cd/casestatus/sn{serialNumber}/info.json Get Case Status By Serial Number JSON #
GET /ts/cd/casestatus/rn{registrationNumber}/info.xml Get Case Status By Registration Number XML #
GET /ts/cd/casestatus/rn{registrationNumber}/info.json Get Case Status By Registration Number JSON #
GET /ts/cd/casestatus/rf{referenceNumber}/info.xml Get Case Status By Reference Number XML #
GET /ts/cd/casestatus/ir{internationalRegistrationNumber}/info.xml Get Case Status By International Registration Number XML #
GET /ts/cd/casestatus/sn{serialNumber}/info.st96.xml Get Case Status ST.96 By Serial Number #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/uspto-gov-status-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

uspto-gov-status-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: USPTO Trademark and Document Retrieval (TSDR) Status API
  version: '1.0'
  description: 'Programmatic access to U.S. trademark case status, file wrapper documents, and images.

    TSDR exposes status and document endpoints by serial number, registration number, reference

    number, or international registration number. Status responses are available in ST.66 XML,

    ST.96 XML, and JSON. Document and image bundles are delivered as PDFs and ZIPs.

    Rate limits: 60 requests/min/key for status; 4 requests/min/key for PDF/ZIP downloads.

    '
  contact:
    name: USPTO API Help
    email: APIhelp@uspto.gov
servers:
- url: https://tsdrapi.uspto.gov
  description: USPTO TSDR API
security:
- ApiKeyAuth: []
tags:
- name: Status
  description: Trademark case status
paths:
  /ts/cd/casestatus/sn{serialNumber}/info.xml:
    get:
      tags:
      - Status
      summary: Get Case Status By Serial Number XML
      operationId: getCaseStatusBySerialNumberXml
      parameters:
      - name: serialNumber
        in: path
        required: true
        schema:
          type: string
          pattern: ^[0-9]{8}$
      responses:
        '200':
          description: Case status in ST.66 XML
          content:
            application/xml:
              schema:
                type: string
  /ts/cd/casestatus/sn{serialNumber}/info.json:
    get:
      tags:
      - Status
      summary: Get Case Status By Serial Number JSON
      operationId: getCaseStatusBySerialNumberJson
      parameters:
      - name: serialNumber
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Case status JSON
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrademarkCase'
  /ts/cd/casestatus/rn{registrationNumber}/info.xml:
    get:
      tags:
      - Status
      summary: Get Case Status By Registration Number XML
      operationId: getCaseStatusByRegistrationNumberXml
      parameters:
      - name: registrationNumber
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ST.66 XML
          content:
            application/xml:
              schema:
                type: string
  /ts/cd/casestatus/rn{registrationNumber}/info.json:
    get:
      tags:
      - Status
      summary: Get Case Status By Registration Number JSON
      operationId: getCaseStatusByRegistrationNumberJson
      parameters:
      - name: registrationNumber
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Case status JSON
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrademarkCase'
  /ts/cd/casestatus/rf{referenceNumber}/info.xml:
    get:
      tags:
      - Status
      summary: Get Case Status By Reference Number XML
      operationId: getCaseStatusByReferenceNumberXml
      parameters:
      - name: referenceNumber
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ST.66 XML
          content:
            application/xml:
              schema:
                type: string
  /ts/cd/casestatus/ir{internationalRegistrationNumber}/info.xml:
    get:
      tags:
      - Status
      summary: Get Case Status By International Registration Number XML
      operationId: getCaseStatusByIrNumberXml
      parameters:
      - name: internationalRegistrationNumber
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ST.66 XML
          content:
            application/xml:
              schema:
                type: string
  /ts/cd/casestatus/sn{serialNumber}/info.st96.xml:
    get:
      tags:
      - Status
      summary: Get Case Status ST.96 By Serial Number
      operationId: getCaseStatusBySerialNumberSt96
      parameters:
      - name: serialNumber
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: ST.96 XML
          content:
            application/xml:
              schema:
                type: string
components:
  schemas:
    TrademarkCase:
      type: object
      properties:
        serialNumber:
          type: string
        registrationNumber:
          type: string
        markIdentification:
          type: string
        statusCode:
          type: string
        statusDescription:
          type: string
        statusDate:
          type: string
          format: date
        filingDate:
          type: string
          format: date
        registrationDate:
          type: string
          format: date
        applicationFilingBasis:
          type: string
        owners:
          type: array
          items:
            type: object
            properties:
              partyName:
                type: string
              partyType:
                type: string
              addressLine:
                type: string
              cityName:
                type: string
              geographicRegionName:
                type: string
              countryCode:
                type: string
              legalEntityType:
                type: string
        goodsServices:
          type: array
          items:
            type: object
            properties:
              internationalClass:
                type: string
              usClass:
                type: string
              goodsServicesText:
                type: string
        prosecutionHistory:
          type: array
          items:
            type: object
            properties:
              eventCode:
                type: string
              eventDescription:
                type: string
              eventDate:
                type: string
                format: date
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: USPTO-API-KEY