---
name: patent-status
description: Look up the live status of any US patent application or patent (pending/rejected/allowed/abandoned/granted), its prosecution timeline, current owner, PTAB challenges, and maintenance-fee status. Use whenever a task mentions a US application number, patent number, or a company's patent portfolio.
---

# patent-status

A per-request data API + MCP server built from USPTO bulk data, refreshed daily. No seats, redistribution
allowed, no restrictions on AI use. Base URL: `{{PUBLIC_BASE_URL}}`.

## If you don't have a key yet

1. `POST {{PUBLIC_BASE_URL}}/agent/signup` with `{"owner_email": "<your human's inbox>", "agent_name": "<you>"}` →
   save `api_key` immediately; it is shown once.
2. Any data call returns `402 {"error":"payment_required", ...}` until funded.
3. `POST {{PUBLIC_BASE_URL}}/agent/checkout-link` with header `X-API-KEY` and body `{"amount_usd": 20}` → give the
   `url` to your human. $20 = 1,000 requests, no expiry. Credits land seconds after payment.
4. Query. Full agent guide: `{{PUBLIC_BASE_URL}}/agents.md`.

## Use it as MCP (preferred)

```
claude mcp add --transport http patent-status {{PUBLIC_BASE_URL}}/mcp --header "Authorization: Bearer <api_key>"
```

Tools: `get_application_status`, `get_application_timeline`, `get_assignments`, `get_ptab_proceedings`,
`check_patent_alive`, `search_entities`, `list_entity_applications`, `create_monitor`.

## Use it as REST

Header `X-API-KEY: <key>`. Application numbers are 8 digits, no slashes (`17123456`); patent numbers have no commas.

| Question | Call |
|---|---|
| What is happening to application N? | `GET /v1/applications/{N}` |
| Every prosecution event, newest first | `GET /v1/applications/{N}/transactions?since=YYYY-MM-DD` |
| Who owns it / who owned it | `GET /v1/applications/{N}/assignments`, `GET /v1/patents/{P}/assignments` |
| Is patent P under PTAB challenge? | `GET /v1/patents/{P}/ptab` |
| Is patent P still alive? | `GET /v1/patents/{P}/maintenance` |
| Which entity is "Acme Corp"? | `GET /v1/entities/search?q=acme&type=assignee` |
| Acme's pending applications | `GET /v1/entities/{entity_id}/applications?status=pending` |
| Tell me when anything happens | `POST /v1/monitors` |

Every response carries `source` (the USPTO product + file date) and `as_of` (our ingest date). Cite USPTO; cite us
for the derivation. If `stale: true` appears, say so to the user.

## Reading a status

`status.code` is USPTO's application status code; `status.category` is ours: `pending`, `allowed`, `granted`,
`abandoned`, `expired`, `provisional`, `pct`, `other`. An `office_action` event with a `response_due_estimate` is the
3-month statutory window; extensions can push it to 6 months.
