USPTO for the age of AI

US patent data for AI agents

Application status, office actions, ownership, PTAB, and maintenance for every US patent application since 2001.

Get an API key

Works with claude mcp add, ChatGPT, Cursor, Codex, or plain curl. No USPTO account needed.

GET/v1/applications/17942951
200 · 41 ms
// a real response, fetched from api.patentdata.ai
{
  "application_number": "17942951",
  "title": "GROUND MEAT REPLICAS",
  "applicant_name": "Impossible Foods Inc.",
  "applicant_entity_id": "ent_c54d3fb3c2cf593ba26a",
  "status": {
    "code": "41",
    "description": "Non Final Action Mailed",
    "category": "pending",
    "date": "2026-08-26"
  },
  "patent_number": null,
  "art_unit": "1636",
  "counts": {
    "office_actions": 6,
    "assignments": 1,
    "ptab_proceedings": 0,
    "cited_by": 0
  },
  "source": {
    "product": "PTFWPRD",
    "file_date": "2026-09-12"
  },
  "as_of": "2026-09-22"
}
  • 2026-08-22CTNFNon-Final Rejection
  • 2026-07-16RCEXRequest for Continued Examination (RCE)
  • 2026-04-18CTFRFinal Rejection
  • 2026-03-20A...Response after Non-Final Action
2001 →application file wrappers
2011 →office-action full text
Dailyrefresh, with an as_of on every response
$0.02per request, starts free
[21] · [45] · [73] · CTNF · IPR · M1551 the fields, and what happened after them

Seven questions your agent can answer in one call.

Each answer cites the USPTO product and file date it came from. Pick a question to see the shape of the response.

GET/v1/applications/17942951
200
{
  "application_number": "17942951",
  "filing_date": "2022-09-12",
  "status": {
    "code": "41",
    "description": "Non Final Action Mailed",
    "category": "pending",
    "date": "2026-08-26"
  },
  "patent_number": null,
  "publication_number": "US20230080435A1",
  "publication_date": "2023-03-16",
  "entity_status": "undiscounted",
  "art_unit": "1636",
  "examiner_name": "DACE DENITO, ALEXANDRA GERALDINE",
  "examiner_stats_summary": {
    "sample_size": 149,
    "allowance_rate": 0.438,
    "median_months_to_first_action": 32.7
  },
  "continuity": {
    "parents": [
      {
        "application_number": "61973181",
        "relationship": "PRO",
        "status_description": "Provisional Application Expired"
      },
      {
        "application_number": "62058230",
        "relationship": "PRO",
        "status_description": "Provisional Application Expired"
      },
      {
        "application_number": "15300339",
        "relationship": "CON",
        "status_description": "Patented Case"
      }
    ],
    "children": []
  },
  "as_of": "2026-09-22"
}
GET/v1/applications/17942951/office-actions
200

Every action carries its reply deadline. The application object carries examiner_stats_summary — how often this examiner allows and how long a first action takes — and GET /v1/examiners/{name}/stats has the full record.

// office-action text and USPTO's parsed rejections; response_due_estimate is the shortened statutory period for that action type (37 CFR 1.134)
{
  "application_number": "17942951",
  "count": 5,
  "office_actions": [
    {
      "document_code": "CTNF",
      "type": "non-final",
      "mailed_date": "2026-08-26",
      "response_due_estimate": "2026-11-26",
      "response_due_max": "2027-02-26",
      "restarts_period": true,
      "art_unit": "1636",
      "statutes": ["103"],
      "sections": null,
      "section_chars": 16338,
      "text_chars": 46785
    }
  ],
  "source": {
    "product": "OA-API",
    "file_date": "2026-09-22"
  },
  "as_of": "2026-09-22"
}
GET/v1/applications/17942951/transactions?since=2025-07-01
200
// USPTO's code and description are verbatim; event_type is our timeline vocabulary (the events feed and webhooks use its prosecution subset)
{
  "application_number": "17942951",
  "since": "2025-07-01",
  "count": 36,
  "transactions": [
    {
      "date": "2026-08-22",
      "code": "CTNF",
      "description": "Non-Final Rejection",
      "event_type": "office_action"
    },
    {
      "date": "2026-07-16",
      "code": "RCEX",
      "description": "Request for Continued Examination (RCE)",
      "event_type": "rce"
    },
    {
      "date": "2026-07-16",
      "code": "BRCE",
      "description": "Workflow - Request for RCE - Begin",
      "event_type": "rce"
    },
    {
      "date": "2026-04-18",
      "code": "CTFR",
      "description": "Final Rejection",
      "event_type": "office_action"
    },
    {
      "date": "2026-03-20",
      "code": "A...",
      "description": "Response after Non-Final Action",
      "event_type": "response_filed"
    },
    {
      "date": "2025-12-19",
      "code": "CTNF",
      "description": "Non-Final Rejection",
      "event_type": "office_action"
    }
  ]
}
GET/v1/patents/12302769/assignments
200
// recorded, not verified, by the USPTO — same caveat the source carries
{
  "patent_number": "12302769",
  "application_number": "18331486",
  "count": 1,
  "assignments": [
    {
      "reel_frame": "063963/0276",
      "recorded_date": "2023-06-15",
      "execution_date": "2023-06-05",
      "conveyance_type": "ASSIGNMENT OF ASSIGNOR'S INTEREST",
      "assignors": [
        {
          "name": "WHITE, HAROLD"
        }
      ],
      "assignees": [
        {
          "name": "LIMITLESS SPACE INSTITUTE",
          "entity_id": "ent_3492c891cccf906b8a1a",
          "city": "HOUSTON",
          "state": "TEXAS"
        }
      ],
      "properties": [
        {
          "application_number": "18331486",
          "patent_number": "12302769"
        }
      ]
    }
  ]
}
GET/v1/patents/12302769/ptab
200
{
  "patent_number": "12302769",
  "count": 1,
  "proceedings": [
    {
      "proceeding_number": "IPR2026-00469",
      "type": "IPR",
      "petitioner": "EverWave Inc. et al.",
      "patent_owner": null,
      "filed_date": "2026-09-03",
      "status": "Pending",
      "instituted": null,
      "claims_outcome": null,
      "final_decision_date": null,
      "decisions": []
    }
  ],
  "source": {
    "product": "PTAB-API",
    "file_date": "2026-09-22"
  }
}
GET/v1/patents/8116990/maintenance
200
{
  "patent_number": "8116990",
  "grant_date": "2012-02-14",
  "small_entity": true,
  "windows": {
    "3.5y": "paid",
    "7.5y": "paid",
    "11.5y": "paid"
  },
  "alive": true,
  "expired": false,
  "expiration_estimate": "2030-12-14",
  "estimate": true,
  "events": [
    {
      "date": "2023-10-02",
      "code": "REM.",
      "description": "Maintenance Fee Reminder Mailed."
    },
    {
      "date": "2023-10-30",
      "code": "M2553",
      "description": "Payment of Maintenance Fee, 12th Yr, Small Entity."
    },
    {
      "date": "2023-10-30",
      "code": "M2556",
      "description": "11.5 yr surcharge- late pmt w/in 6 mo, Small Entity."
    }
  ],
  "source": {
    "product": "PTMNFEE2",
    "file_date": "2026-09-22"
  }
}
GET/v1/entities/ent_c54d3fb3c2cf593ba26a/applications?status=pending
200
41 granted5 pending, no action due9 office action outstanding4 abandoned or expired
// the disambiguated entity layer PatentsView used to publish, kept current
{
  "entity": {
    "entity_id": "ent_c54d3fb3c2cf593ba26a",
    "canonical_name": "Impossible Foods Inc.",
    "aliases": ["Impossible Foods Inc."],
    "family_id": null,
    "source": {
      "product": "ours",
      "file_date": "2026-09-22"
    }
  },
  "counts": {
    "applications": 144,
    "patents": 40,
    "pending": 15
  },
  "applications": [
    {
      "application_number": "19210371",
      "title": "PURIFIED PROTEIN COMPOSITION",
      "status": {
        "description": "Docketed New Case - Ready for Examination",
        "date": "2025-05-28"
      },
      "art_unit": "OPAP"
    },
    {
      "application_number": "18989155",
      "title": "NON-ANIMAL-BASED WHOLE-CUT FOOD PRODUCTS",
      "status": {
        "description": "Non Final Action Mailed",
        "date": "2026-09-18"
      },
      "art_unit": "1792"
    }
  ],
  "next_cursor": "eyJhcHBsaWNhdGlvbl9udW1iZXIiOiIxODk4OTE1NSJ9"
}
GET/v1/entities/ent_c54d3fb3c2cf593ba26a/stats
200
// portfolio, velocity, prosecution record, CPC mix, PTAB exposure, acquisitions — with definitions
{
  "entity_id": "ent_c54d3fb3c2cf593ba26a",
  "canonical_name": "Impossible Foods Inc.",
  "portfolio": {
    "known": 144,
    "granted": 40,
    "patents": 40,
    "pending": 15,
    "abandoned": 20,
    "applications": 144,
    "alive_patents": 39,
    "computed_over": {
      "filing_date_max": "2025-05-16",
      "filing_date_min": "2011-07-12"
    },
    "not_prosecuted": 69,
    "expiring_within_12_months": 0
  },
  "prosecution": {
    "allowance_rate": 0.667,
    "median_months_to_first_action": 15.6,
    "median_months_to_grant": 27.4,
    "avg_office_actions_per_disposed": 2.9,
    "rce_rate": 0.467,
    "appeal_rate": 0.067,
    "sample_size": 144
  },
  "velocity": {
    "filings_per_year": [
      {
        "n": 11,
        "year": 2024,
        "partial": false
      },
      {
        "n": 1,
        "year": 2025,
        "partial": true
      },
      {
        "n": 0,
        "year": 2026,
        "partial": true
      }
    ],
    "grants_per_year": [
      {
        "n": 6,
        "year": 2024
      },
      {
        "n": 4,
        "year": 2025
      },
      {
        "n": 0,
        "year": 2026
      }
    ]
  },
  "where": {
    "cpc_subclasses": [
      {
        "n": 41,
        "share": 0.586,
        "subclass": "A23J"
      },
      {
        "n": 39,
        "share": 0.557,
        "subclass": "A23L"
      },
      {
        "n": 25,
        "share": 0.357,
        "subclass": "C12N"
      }
    ],
    "cpc_coverage": 0.486,
    "art_units": [
      {
        "n": 14,
        "art_unit": "1791"
      },
      {
        "n": 13,
        "art_unit": "1792"
      }
    ]
  },
  "who": {
    "examiners": [
      {
        "n": 19,
        "key": "GWARTNEY, ELIZABETH A",
        "name": "GWARTNEY, ELIZABETH A"
      },
      {
        "n": 8,
        "key": "ZILBERING, ASSAF",
        "name": "ZILBERING, ASSAF"
      }
    ]
  },
  "ptab": {
    "as_petitioner": {
      "instituted": 0,
      "proceedings": 0
    },
    "as_patent_owner": {
      "instituted": 1,
      "claims_lost": 1,
      "proceedings": 7
    }
  },
  "ownership": {
    "sold": 0,
    "since": "2023-09-22",
    "acquired": 6
  },
  "definitions": "\u2026",
  "computed_at": "2026-09-22T22:26:19.997049+00:00",
  "source": {
    "product": "PTFWPRD",
    "file_date": "2026-09-21"
  }
}
GET/v1/patents/12722607/claims
200
// claims with dependencies, abstract and CPC at issue, from the weekly grant XML
{
  "doc_number": "12722607",
  "kind": "B2",
  "application_number": "18545568",
  "title": "Battery electric vehicle operator to charge technician interlock",
  "date": "2026-09-01",
  "abstract": "An electric vehicle includes a battery and an external charging port on the vehicle. A charging interlock system on the vehicle includes a charging interlock module configured to: when engaged by an operator of the vehicle, prevent movement of the vehicle during a battery charging procedure executable by a battery charging technician outside the vehicle and, when disengaged by the battery charging technician following the battery charging procedure, allow movement of the vehicle.",
  "cpc": ["B60T7/16", "B60H1/00642", "B60L3/00", "B60L50/60", "B60L53/16", "B60L53/18", "B60Q1/44", "H02J7/70", "B60L1/003", "B60L2200/40", "B60T2270/89", "G07C5/0825"],
  "claim_count": 19,
  "independent_claims": [1, 10, 18],
  "claims": [
    {
      "number": 1,
      "text": "An electric vehicle comprising a battery and an external charging port on the vehicle, the vehicle further comprising:\na charging interlock system comprising a charging interlock module configured to:\nwhen engaged, prevent movement of the vehicle by disabling a propulsion system powering the vehicle during a battery charging procedure executable by a battery charging technician outside the vehicle, and\nwhen disengaged by the battery charging technician following the battery charging procedure, allow movement of the vehicle by enabling the propulsion system.",
      "dependent_on": []
    },
    {
      "number": 2,
      "text": "The vehicle of claim 1, wherein the charging interlock module is engaged from within a cab of the electric vehicle by an operator of the vehicle.",
      "dependent_on": [1]
    }
  ],
  "source": {
    "product": "PTGRXML",
    "file_date": "2026-09-01"
  }
}
GET/v1/patents/9520482/citations?direction=forward
200
// forward citations: every loaded grant citing this patent number; backward = its own references
{
  "patent_number": "9520482",
  "forward": {
    "count": 3304,
    "next_cursor": "eyJjb3VudCI6MzMwNCwicGF0ZW50X251bWJlciI6IjEyNzQ1NDQwIiwic29ydF9rZXkiOjEyNzQ1NDQwfQ",
    "patents": [
      {
        "patent_number": "12745574",
        "grant_date": "2026-09-22",
        "title": "Semiconductor device, memory cell and method of forming the same",
        "categories": ["applicant"]
      },
      {
        "patent_number": "12745448",
        "grant_date": "2026-09-22",
        "title": "Semiconductor structure and method for manufacturing the same",
        "categories": ["applicant"]
      },
      {
        "patent_number": "12745440",
        "grant_date": "2026-09-22",
        "title": "Gate structures in semiconductor devices",
        "categories": ["applicant"]
      }
    ]
  },
  "source": {
    "product": "PTGRXML",
    "file_date": "2026-09-22"
  }
}
GET/v1/search?q=solid%20electrolyte%20lithium&cpc=H01M&filed_after=2023-01-01
200
// keyword + CPC over title, abstract and claims; not similarity search
{
  "total": 2745,
  "total_capped": false,
  "results": [
    {
      "doc_number": "US20230343997A1",
      "doc_type": "publication",
      "title": "LITHIUM-BASED SOLID ELECTROLYTE, INORGANIC SOLID ELECTROLYTE, PRODUCTION METHOD FOR LITHIUM-BASED SOLID ELECTROLYTE, MODIFIED POSITIVE ELECTRODE ACTIVE MATERIAL, MODIFIED NEGATIVE ELECTRODE ACTIVE MATERIAL, ALL-SOLID STATE SECONDARY BATTERY, ELECTRODE SHEET FOR ALL-SOLID STATE SECONDARY BATTERY, SOLID ELECTROLYTE SHEET, AND ELECTRODE FOR ALL-SOLID STATE SECONDARY BATTERY",
      "date": "2023-10-26",
      "cpc": ["H01M10/0562", "H01M2300/0068"],
      "snippet": "present invention provides a **lithium**-based **solid** **electrolyte** excellent in ion conductivity, an inorganic **solid** **electrolyte**, a production method for a **lithium**-based **solid** \u2026 electrode for an all-**solid** state secondary battery. The **lithium**-based **solid** **electrolyte** according to the present invention contains **lithium** tetraborate in a noncrystalline"
    },
    {
      "doc_number": "US20260155434A1",
      "doc_type": "publication",
      "title": "LITHIUM-BASED SOLID ELECTROLYTE, METHOD FOR PRODUCING LITHIUM-BASED SOLID ELECTROLYTE, MODIFIED POSITIVE ELECTRODE ACTIVE MATERIAL, MODIFIED NEGATIVE ELECTRODE ACTIVE MATERIAL, ALL-SOLID-STATE SECONDARY BATTERY, ELECTRODE SHEET FOR ALL-SOLID-STATE SECONDARY BATTERY, SOLID ELECTROLYTE SHEET, AND ELECTRODE FOR ALL-SOLID-STATE SECONDARY BATTERY",
      "date": "2026-06-04",
      "cpc": ["H01M10/0562", "H01M4/366", "H01M10/052", "H01M2004/027", "H01M2004/028", "H01M2300/0071"],
      "snippet": "object of the present invention is to provide a **lithium**-based **solid** **electrolyte** having excellent ion conductivity, a method for producing a **lithium**-based \u2026 electrode for an all-**solid**-state secondary battery.\n\nThe **lithium**-based **solid** **electrolyte** of the present invention contains amorphous **lithium** tetraborate, water"
    },
    {
      "doc_number": "US20250105373A1",
      "doc_type": "publication",
      "title": "Reduced Graphene Oxide Interlayered LLTZO Laminated Solid-State Electrolyte for Arresting Lithium Dendrite Growth",
      "date": "2025-03-27",
      "cpc": ["H01M10/4235", "H01M10/0562", "H01M10/0525", "H01M2300/0071"],
      "snippet": "describes a method of inhibiting **lithium** dendrite penetration through a **lithium**-based **solid** **electrolyte** by providing the **lithium**-based **solid** **electrolyte** with an interlayer \u2026 reduced Graphene Oxide. The present disclosure also describes a **lithium**-based **solid** **electrolyte** with an interlayer of reduced Graphene Oxide"
    }
  ],
  "next_cursor": "eyJkYXRlIjoiMjAyNS0wMy0yNyIsImRvY19udW1iZXIiOiJVUzIwMjUwMTA1MzczQTEiLCJxdWVyeSI6IltcIidzb2xpZCcgJiAnZWxlY3Ryb2x5dCcgJiAnbGl0aGl1bSdcIiwgXCInc29saWQnICYgJ2VsZWN0cm9seXQnICYgJ2xpdGhpdW0nICYgJ2NwYzpoMDFtJ1wiLCBudWxsLCBcIjIwMjMtMDEtMDFcIiwgbnVsbCwgbnVsbF0iLCJyYW5rIjo1LjkzNjU3OCwidG90YWwiOjI3NDUsInRvdGFsX2NhcHBlZCI6ZmFsc2V9",
  "source": {
    "product": "PTGRXML",
    "file_date": "2026-09-22"
  }
}
HOW IT'S BUILT USPTO in, three surfaces out

We maintain our own copy of the freshest US patent data

Requests takes tens of milliseconds and a thousand agents can hit it at once.

Public domain Patent File Wrapper Assignments Office Action Text, Rejections PTAB Trials, Maintenance Fees PatentsView entities Our databases Normalizeone schema across products Resolve entitiesowners + inventors → ent_… IDs Derive eventsdiff today vs yesterday → 11 types ServePostgres · p95 < 200 ms Your agent(s), any concurrency RESTGET /v1/… · X-API-KEY MCPclaude mcp add … /mcp WebhooksPOST on 11 event types
POST /agent/signup built for the agents

Agents can open an account and start querying without a human

Human only needs to pay after 50 free requests. Everything else is four HTTP calls, documented for an agent reader at /agents.md.

1 · sign up

Open an account

POST /agent/signup { "owner_email": "you@company.com", "agent_name": "docket-watch" }

Returns an API key once, with 50 free requests on it. Owner gets a confirmation email.

2 · query

Ask anything

GET /v1/applications/17942951 X-API-KEY: pd_live_…

Org-level keys, unlimited concurrency. Mint more keys under the same balance.

3 · 402

Get told to pay

402 Payment Required { "checkout": "POST /agent/checkout-link", "minimum_usd": 20 }

When the free requests run out: 402 response. See response body for what to do next.

4 · checkout

Hand your human a link

POST /agent/checkout-link { "amount_usd": 20 } → { "url": "https://checkout.stripe.com/…" }

Human pays in the browser. Credits land in seconds; $20 is 1,000 requests.

MCPhosted · streamable HTTP · same key
Claude · ChatGPT · Cursor · Codex
$ claude mcp add --transport http patent-data https://api.patentdata.ai/mcp --header "Authorization: Bearer $PATENT_API_KEY"

# tools: get_application_status · get_status_by_number · get_status_batch · get_events
#        get_application_timeline · get_office_actions · get_claims · get_assignments
#        get_ptab_proceedings · check_patent_alive · search_entities · list_entity_applications
#        list_entity_patents · get_examiner_stats · get_art_unit_stats · create_monitor
#        list_monitors · delete_monitor · get_monitor_events · get_entity_stats
#        get_citations · search_patents
The onboarding prompt "Or ask your agent to" copies
Set up access to Patent Data for me.
1. Read https://api.patentdata.ai/agents.md.
2. POST https://api.patentdata.ai/agent/signup with my email (ask me for it) and an agent name of your choice. Save the API key it returns in my secrets store; it is shown only once.
3. Call GET /v1/applications/17942951 with the X-API-KEY header and show me the result; the key starts with 50 free requests.
4. When a request answers 402, POST /agent/checkout-link for $20 and send me the URL to pay; continue once I confirm.
5. Add the MCP server https://api.patentdata.ai/mcp with the same key (Authorization: Bearer) so you can use the tools directly.
FOR IP TEAMS and anyone with a competitor

Know the day a competitor's application is rejected, allowed, abandoned, or sold.

Give patent-watch, our open-source agent, a company name. It resolves the company to an entity, lists what's pending, and messages you when something moves. Runs anywhere an MCP client runs.

Uses your own API key. The agent is MIT-licensed; the data costs one request per event.

#patentsSlack · this week
example
  • Final rejection on 18/456,789 (§103, claims 1–12)
    Contoso Drones Ltd. · art unit 3644
  • Notice of Allowance on 17/998,120
    Contoso Drones Ltd.
  • IPR petition filed against US 12,345,678 by Contoso Drones Ltd.
    IPR2026-00412 · your patent
  • Assignment recorded: 3 patents → Northwind Aerospace Holdings LLC
    reel/frame 067812/0345
  • Abandoned 16/771,430 (failure to respond)
    Contoso Drones Ltd.
PRICING per request, no seats

Start free. Pay per request.

Free
$0 to start
50 requests on signup · no card
  • All endpoints, all history
  • Hosted MCP server
  • Agent self-signup
Sign up
Starter
$20 one-time
1,000 requests · $0.02 each · never expire · agent will prompt you to buy when needed
  • Everything in Free
  • Webhooks (monitors) and the events feed
  • Extra keys under one balance
Get an API key
Scale
Volume pricing
Millions of requests · uptime SLA
  • Everything in Starter
  • Uptime SLA
  • Bulk exports on request
Talk to us
Reach out with questions

FAQs

How fresh is it?

Status, transactions, assignments, and office-action text refresh daily from USPTO's feeds; every response carries an as_of date and a stale flag if a feed is more than 48 hours behind.

Do I need a USPTO account?

No, your agents can just start.

How do I request additional features?

Send us an email.