# USPTO API

> USPTO returns trademark filings and status information as a workflow and API.

USPTO's Search trademarks method finds U.S. trademark filings for a required brand name, with optional category and inactive-filing filters. USPTO's Get trademark status method returns a mark's current status and prosecution history using a required name or number and optional owner.

- Page: https://fous.com/tools/uspto
- Handle: `@uspto`
- Category: [Legal](https://fous.com/tools/category/legal)
- Source website: https://uspto.gov
- Last verified: Sep 29, 2026

## Methods

### Get trademark status

Operation `get_trademark_status`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Get the current status and prosecution history of one U.S. trademark by name, serial number or registration number. For names, select the newest live matching mark (or matching owner) and list other matches; history includes up to 50 events. Name searches consider up to 5,000 search results.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `owner` | string | no | `"Sunbeam Products, Inc."` | Optional owner name to disambiguate a name search; for example, Sunbeam Products, Inc. |
| `trademark` | string | yes | `"Sunbeam"` | Brand name, 8-digit serial number, or 7-digit registration number; for example, Sunbeam or 90768648. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "trademark"
  ],
  "properties": {
    "owner": {
      "type": "string",
      "default": "",
      "description": "Optional owner name to disambiguate a name search; for example, Sunbeam Products, Inc.",
      "examples": [
        "Sunbeam Products, Inc."
      ]
    },
    "trademark": {
      "type": "string",
      "description": "Brand name, 8-digit serial number, or 7-digit registration number; for example, Sunbeam or 90768648.",
      "examples": [
        "Sunbeam",
        "90768648",
        "6835405"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "owner": "Sunbeam Products, Inc.",
      "trademark": "Sunbeam"
    },
    {
      "trademark": "90768648"
    },
    {
      "trademark": "6835405"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `status` | string or null | `"Registered. The registration date is used to determine when post-registration maintenance documents are due."` | Current status in plain words. |
| `mark_text` | string or null | `"SUNBEAM"` | Trademark wording. |
| `tsdr_link` | string | `"https://tsdr.uspto.gov/#caseNumber=97438443&caseType=SERIAL_NO&caseSearchType=US_APPLICATION&searchType=statusSearch"` | Link to the case in TSDR. |
| `owner_name` | string or null | `"Sunbeam Products, Inc."` | Current owner name. |
| `filing_date` | string or null | `"2022-06-01"` | Application filing date, YYYY-MM-DD. |
| `status_date` | string or null | `"2022-12-06"` | Date of current status, YYYY-MM-DD. |
| `other_matches` | array |  | Other marks matching the searched name and optional owner, ordered by live status then most recent filing. |
| `other_matches[].is_live` | boolean | `true` | Whether the filing is live. |
| `other_matches[].mark_text` | string or null | `"SUNBEAM"` | Trademark wording. |
| `other_matches[].tsdr_link` | string | `"https://tsdr.uspto.gov/#caseNumber=97164409&caseType=SERIAL_NO&caseSearchType=US_APPLICATION&searchType=statusSearch"` | Link to this case in TSDR. |
| `other_matches[].owner_name` | string or null | `"Sunbeam Products, Inc."` | Owner name. |
| `other_matches[].filing_date` | string or null | `"2021-12-09"` | Filing date, YYYY-MM-DD. |
| `other_matches[].serial_number` | string | `"97164409"` | USPTO serial number. |
| `other_matches[].registration_number` | string or null | `"7116610"` | Registration number. |
| `owner_address` | string or null | `"6655 Peachtree Dunwoody Rd., Atlanta, GEORGIA, 30328, UNITED STATES OF AMERICA"` | Current owner mailing address. |
| `serial_number` | string | `"97438443"` | USPTO serial number. |
| `mark_image_link` | string or null | `"https://tsdrsec.uspto.gov/ts/cd/standardimages/97438443/webcontent"` | Link to mark image, if available. |
| `publication_date` | string or null | `"2022-09-20"` | Publication date, YYYY-MM-DD. |
| `registration_date` | string or null | `"2022-12-06"` | Registration date, YYYY-MM-DD. |
| `attorney_of_record` | string or null | `"Juhi K. Patel"` | Attorney of record. |
| `goods_and_services` | array |  |  |
| `goods_and_services[].class` | string or null | `"011"` | International class number. |
| `goods_and_services[].description` | string or null | `"Portable fire pits and fire tables."` | Goods or services for the class. |
| `prosecution_history` | array |  |  |
| `prosecution_history[].date` | string or null | `"2025-05-23"` | Event date, YYYY-MM-DD. |
| `prosecution_history[].event` | string or null | `"TEAS CHANGE OF CORRESPONDENCE RECEIVED"` | Prosecution event description. |
| `registration_number` | string or null | `"6918439"` | USPTO registration number, if registered. |
| `abandonment_or_cancellation_date` | string or null |  | Abandonment or cancellation date, YYYY-MM-DD. |

**Example input**

```json
{
  "owner": "Sunbeam Products, Inc.",
  "trademark": "Sunbeam"
}
```

**Example output**

```json
{
  "status": "Registered. The registration date is used to determine when post-registration maintenance documents are due.",
  "mark_text": "SUNBEAM",
  "tsdr_link": "https://tsdr.uspto.gov/#caseNumber=97438443&caseType=SERIAL_NO&caseSearchType=US_APPLICATION&searchType=statusSearch",
  "owner_name": "Sunbeam Products, Inc.",
  "filing_date": "2022-06-01",
  "status_date": "2022-12-06",
  "other_matches": [
    {
      "is_live": true,
      "mark_text": "SUNBEAM",
      "tsdr_link": "https://tsdr.uspto.gov/#caseNumber=97164409&caseType=SERIAL_NO&caseSearchType=US_APPLICATION&searchType=statusSearch",
      "owner_name": "Sunbeam Products, Inc.",
      "filing_date": "2021-12-09",
      "serial_number": "97164409",
      "registration_number": "7116610"
    },
    {
      "is_live": true,
      "mark_text": "SUNBEAM",
      "tsdr_link": "https://tsdr.uspto.gov/#caseNumber=86649780&caseType=SERIAL_NO&caseSearchType=US_APPLICATION&searchType=statusSearch",
      "owner_name": "Sunbeam Products, Inc.",
      "filing_date": "2015-06-03",
      "serial_number": "86649780",
      "registration_number": "4877718"
    }
  ],
  "owner_address": "6655 Peachtree Dunwoody Rd., Atlanta, GEORGIA, 30328, UNITED STATES OF AMERICA",
  "serial_number": "97438443",
  "mark_image_link": "https://tsdrsec.uspto.gov/ts/cd/standardimages/97438443/webcontent",
  "publication_date": "2022-09-20",
  "registration_date": "2022-12-06",
  "attorney_of_record": "Juhi K. Patel",
  "goods_and_services": [
    {
      "class": "011",
      "description": "Portable fire pits and fire tables."
    }
  ],
  "prosecution_history": [
    {
      "date": "2025-05-23",
      "event": "TEAS CHANGE OF CORRESPONDENCE RECEIVED"
    },
    {
      "date": "2025-05-23",
      "event": "ATTORNEY/DOM.REP.REVOKED AND/OR APPOINTED"
    }
  ],
  "registration_number": "6918439",
  "abandonment_or_cancellation_date": null
}
```

### Search trademarks

Operation `search_trademarks`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Find US trademark filings matching a brand name, optionally limited to likely goods or service classes. Exact marks appear first; similar marks follow. Results are not a legal clearance opinion, and uncommon categories may only match goods descriptions.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `brand_name` | string | yes | `"Patagonia"` | Brand to check, for example Sunbeam. |
| `max_results` | integer | no | `10` | Maximum records returned, for example 25. |
| `include_dead` | boolean | no | `true` | Include inactive filings, for example false for live marks only. |
| `product_category` | string | no | `"clothing"` | Products or services in plain words, for example coffee, clothing or software. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "brand_name"
  ],
  "properties": {
    "brand_name": {
      "type": "string",
      "description": "Brand to check, for example Sunbeam.",
      "examples": [
        "Patagonia",
        "Sunbeam",
        "Zqxvvnqpt"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum records returned, for example 25.",
      "x-fous-developer": true,
      "examples": [
        10
      ]
    },
    "include_dead": {
      "type": "boolean",
      "default": false,
      "description": "Include inactive filings, for example false for live marks only.",
      "examples": [
        true
      ]
    },
    "product_category": {
      "type": "string",
      "default": "",
      "description": "Products or services in plain words, for example coffee, clothing or software.",
      "examples": [
        "clothing",
        "coffee"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "brand_name": "Patagonia",
      "max_results": 10,
      "include_dead": true,
      "product_category": "clothing"
    },
    {
      "brand_name": "Sunbeam",
      "product_category": "coffee"
    },
    {
      "brand_name": "Zqxvvnqpt"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `summary` | string | `"26 trademarks match Patagonia for clothing"` |  |
| `trademarks` | array |  |  |
| `trademarks[].owner` | string or null | `"Patagonia, Inc."` |  |
| `trademarks[].status` | string | `"Dead - cancelled"` |  |
| `trademarks[].classes` | array |  |  |
| `trademarks[].mark_text` | string or null | `"PATAGONIA"` |  |
| `trademarks[].filing_date` | string or null | `"2010-01-29"` |  |
| `trademarks[].serial_number` | string | `"77923689"` |  |
| `trademarks[].mark_image_link` | string or null | `"https://tmcms-docs.uspto.gov/cases/77923689/mark/large.png"` |  |
| `trademarks[].registration_date` | string or null | `"2013-12-03"` |  |
| `trademarks[].uspto_status_link` | string | `"https://tsdr.uspto.gov/#caseNumber=77923689&caseSearchType=US_APPLICATION&caseType=DEFAULT&searchType=statusSearch"` |  |
| `trademarks[].goods_and_services` | string or null | `"(CANCELLED) IC 018: [ flyfishing sports packs, backpacks ].; (CANCELLED) IC 025: [ shirts, [ shorts, pants, jackets, pu` |  |
| `trademarks[].registration_number` | string or null | `"4444060"` |  |

**Example input**

```json
{
  "brand_name": "Patagonia",
  "max_results": 10,
  "include_dead": true,
  "product_category": "clothing"
}
```

**Example output**

```json
{
  "summary": "26 trademarks match Patagonia for clothing",
  "trademarks": [
    {
      "owner": "Patagonia, Inc.",
      "status": "Dead - cancelled",
      "classes": [
        "018 - Leather goods and bags",
        "025 - Clothing, footwear and headwear"
      ],
      "mark_text": "PATAGONIA",
      "filing_date": "2010-01-29",
      "serial_number": "77923689",
      "mark_image_link": "https://tmcms-docs.uspto.gov/cases/77923689/mark/large.png",
      "registration_date": "2013-12-03",
      "uspto_status_link": "https://tsdr.uspto.gov/#caseNumber=77923689&caseSearchType=US_APPLICATION&caseType=DEFAULT&searchType=statusSearch",
      "goods_and_services": "(CANCELLED) IC 018: [ flyfishing sports packs, backpacks ].; (CANCELLED) IC 025: [ shirts, [ shorts, pants, jackets, pullovers,] fishing waders, vests [, hats ] ].",
      "registration_number": "4444060"
    },
    {
      "owner": "PATAGONIA, INC.",
      "status": "Live - registered",
      "classes": [
        "025 - Clothing, footwear and headwear"
      ],
      "mark_text": "PATAGONIA",
      "filing_date": "1980-03-31",
      "serial_number": "73256083",
      "mark_image_link": "https://tmcms-docs.uspto.gov/cases/73256083/mark/large.png",
      "registration_date": "1982-02-09",
      "uspto_status_link": "https://tsdr.uspto.gov/#caseNumber=73256083&caseSearchType=US_APPLICATION&caseType=DEFAULT&searchType=statusSearch",
      "goods_and_services": "IC 025: Mens and Womens Clothing-Namely, Sweaters, Rugby Shirts, Walking Shorts, Trousers, Jackets, Mittens, Hoods and Rainwear.",
      "registration_number": "1189402"
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@uspto",
  "visibility": "public",
  "operation": "get_trademark_status",
  "version": 1,
  "input": {
    "owner": "Sunbeam Products, Inc.",
    "trademark": "Sunbeam"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@uspto\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_trademark_status\",\n  \"version\": 1,\n  \"input\": {\n    \"owner\": \"Sunbeam Products, Inc.\",\n    \"trademark\": \"Sunbeam\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@uspto",
  "visibility": "public",
  "operation": "get_trademark_status",
  "version": 1,
  "input": {
    "owner": "Sunbeam Products, Inc.",
    "trademark": "Sunbeam"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/uspto`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_trademark_status`: Get trademark status. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `search_trademarks`: Search trademarks. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-uspto https://api.fous.com/mcp/tools/uspto --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Check a brand name against matching U.S. trademark filings.
- Narrow trademark matches to a product or service category.
- Review a mark's current status and filing dates.
- Track prosecution events for a trademark filing.
- Compare matching marks and their owners.

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this USPTO tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a USPTO account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from uspto.gov when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### Which filings match a brand name?

Search trademarks returns matching filings for a required brand name, with optional product or service category and inactive-filing filters.

### What is a trademark's current status?

Get trademark status returns the current status for a trademark searched by name, serial number, or registration number.

### What events appear in a trademark's history?

Get trademark status returns prosecution history with event dates and descriptions.

## Related

- [WIPO API](https://fous.com/tools/wipo.md): Search trademark records in the WIPO Global Brand Database.
- [Google Patents API](https://fous.com/tools/google-patents.md): Google Patents searches public records and provides patent details and company summaries; legal status is estimated, and citations, claims, and company breakdowns have record limits.
- [Espacenet API](https://fous.com/tools/espacenet.md): European Patent Office public patent search and family information.
- [CPSC API](https://fous.com/tools/cpsc.md): U.S. Consumer Product Safety Commission recalls and product safety information.
- [ClinicalTrials.gov API](https://fous.com/tools/clinicaltrials-gov.md): ClinicalTrials.gov helps users find studies and view public trial records, including sponsor-run or funded studies; site distances are approximate, and contacts, eligibility, or exact dates may be missing.
- [Federal Register API](https://fous.com/tools/federal-register.md): Search United States federal rules, proposed rules, notices, and presidential documents.
- [Trustpilot API](https://fous.com/tools/trustpilot.md): Trustpilot provides company ratings, reply and location details when available, recent public reviews, and company search results with ratings, review counts, categories, locations, and links.
- [USPS API](https://fous.com/tools/usps.md): USPS provides latest available package tracking, standardized U.S. addresses with ZIP+4, recommended cities for five-digit ZIP Codes, and estimated domestic postage and delivery dates.
- [All Legal tools](https://fous.com/tools/category/legal)
