PatentRef API docs
PatentRef is a hosted, PatentsView-compatible US patent data API. It answers the PatentSearch v1 grammar (same endpoint paths, same q/f/s/o parameters, same response shape, same error codes as the USPTO PatentSearch API that PatentsView paused on 2026-03-20) from PatentRef's own snapshot of USPTO PatentsView bulk data. Existing PatentsView clients work by changing the base URL and adding a key: the base URL becomes https://patentref.io, and every data request sends a PatentRef key in the X-Api-Key header (a PatentsView key does not work here).
- Base URL
https://patentref.io/api/v1/- Key header
X-Api-Key; a Free key at /api/v1/meta/signup/ (1,000 requests a month, 45 a minute)- Grammar
- PatentSearch v1: the parameters
q,f,sando, GET or POST - Every answer
- carries
X-Data-Version, the build it was answered from - Machine-readable
- openapi.json (OpenAPI 3.1), llms.txt, llms-full.txt; /swagger-ui/ shows openapi.json as an interactive page, as upstream's did
- Snapshot
- the data as SQLite files, on Zenodo: snapshot download
Start here
- Quick start: A key, a first request in curl and Python, paging, and the response shape.
- Query grammar: q, f, s and o; every operator; field kinds; what answers 400; the cost cap; paging.
- Endpoints: Every route with its fields, defaults, sortable fields, nested groups and an example.
- Lapse fields: PatentRef's additions: expiry and maintenance-fee status, the lapse group, nearest patents.
- Claim trees: PatentRef's addition: the claim tree of a patent, every part located in the claim text.
- Claim counts: PatentRef's addition: a patent's claim counts, each field defined against the USPTO Patent Claims Research Dataset.
- Known differences: Where PatentRef answers differently from the upstream PatentSearch API, and why.
- Moving from PatentsView: What to change in a script, the PatentsView code examples, the R and Python clients and MCP servers.
- Keys, limits and errors: Getting a key, what counts toward the month, status codes and error codes.
- Examples: The 31 requests of the upstream contract and the worked examples, ready to run.
- Data, licenses and attribution: Where the data comes from, its license, the attribution line, the code's license.
- Snapshot download: The data behind the API as three SQLite files: the Zenodo record and DOI, download links, SHA-256.
- Error codes: every X-Status-Reason-Code with what to do.
A first request
curl -s -G -H "X-Api-Key: $KEY" https://patentref.io/api/v1/patent/ \
--data-urlencode 'q={"patent_id": "10905426"}' \
--data-urlencode 'f=["patent_id", "patent_title", "patent_date"]'
Moving a script or client from PatentsView: change the base URL to https://patentref.io and add a PatentRef key; nothing else (details).