PatentRef

Data version 20261027.2, as of 2026-10-27: the build these pages were checked against. API version 1.21.0.

/api/v1/publication/

In data version 20261027.2 this endpoint answers 501 ERR_NOT_IMPLEMENTED: publications: pre-grant publications (/api/v1/publication/, /api/v1/publication/rel_app_text/ and the pg_claim, pg_brf_sum_text, pg_detail_desc_text and pg_draw_desc_text endpoints), deferred to a later build.

Upstream view PublicationList (index publications, response key publications). Deferred: pre-grant publications are not in this snapshot yet; the endpoint answers 501 with X-Status-Reason-Code ERR_NOT_IMPLEMENTED. Any field may be null where the bulk data has no value. Default fields (f): document_number, publication_title, publication_date. Default sort (s): [{"document_number": "asc"}]. Nested groups usable in q and f with dotted names: assignees, cpc_at_issue, cpc_current, foreign_priority, gov_interest_organizations, granted_pregrant_crosswalk, inventors, ipcr, pct_data, us_parties, us_related_documents, uspc_at_issue, wipo.

Routes
GET POST /api/v1/publication/ GET POST /api/v1/publication/{pk}/
Response key
publications
Default f
document_number, publication_title, publication_date
Default s
[{"document_number": "asc"}]
Default o
{}
q
required on the list route
Detail key
document_number in the path; a "/" in a key is written ":"
Nested groups
assignees, cpc_at_issue, cpc_current, foreign_priority, gov_interest_organizations, granted_pregrant_crosswalk, inventors, ipcr, pct_data, us_parties, us_related_documents, uspc_at_issue, wipo

Example

curl -s -G -H "X-Api-Key: $KEY" https://patentref.io/api/v1/publication/ \
  --data-urlencode 'q={"_and": [{"_eq": {"inventors.inventor_city": "Boston"}}, {"assignees.assignee_city": "Boston"}]}'
import json, os, requests

base_url = "https://patentref.io"
headers = {"X-Api-Key": os.environ["PATENTREF_KEY"]}
params = {"q": {"_and": [{"_eq": {"inventors.inventor_city": "Boston"}}, {"assignees.assignee_city": "Boston"}]}}
r = requests.get(base_url + "/api/v1/publication/", headers=headers,
                 params={k: json.dumps(v) for k, v in params.items()})
r.raise_for_status()
data = r.json()
print(data["total_hits"], data["publications"][:3])

More requests on this endpoint: test_pub_text_all.

Fields

Kind is how q treats the field (grammar, Field kinds). Sortable fields go in s. Nested fields are named with a dot in q and f; naming the group returns its upstream fields, and a field whose note says it is present only when f names it comes back only then. The rows of a group come in the order of their source (grammar, the response and paging).

FieldTypeKindSortableNote
document_numberintegerkeywordyes
publication_titlestringtext
publication_typestringkeywordyes
publication_countrystringreturned, not searchable
publication_datestringdateyes
publication_yearnumbernumberyes
publication_abstractstringtext
publication_kindstringkeywordyes
publication_application_numberintegerreturned, not searchable
series_codeintegerkeywordyes
rule_47_flagbooleanbooleanyes
assigneesgroup (list of objects)Nested group: name it in f ("assignees") for every field of the group, or "assignees.<field>" for one; query its fields in q with the same dotted names.
assignees.assigneestring (URL)returned, not searchableLink to the detail record: https://patentref.io/api/v1/assignee/<id>/, with a "/" in the id written ":"; null when the id is null. Kind: none: the index has no search field for it, so a query on it matches nothing, as upstream; query the id field of the group instead. It comes back beside that id: f naming the id field or the whole group returns both, and f naming this link alone returns nothing.
assignees.assignee_idstringkeyword
assignees.assignee_typestringkeyword
assignees.assignee_individual_name_firststringtext with a keyword form
assignees.assignee_individual_name_laststringtext with a keyword form
assignees.assignee_organizationstringtext with a keyword form
assignees.assignee_location_idstringkeyword
assignees.assignee_citystringtext with a keyword form
assignees.assignee_statestringtext with a keyword form
assignees.assignee_countrystringtext with a keyword formAn ISO 3166-1 alpha-2 country code in capitals, as PatentsView gives it: the United Kingdom is "GB", and "UK" matches nothing.
assignees.assignee_sequenceintegernumber
cpc_at_issuegroup (list of objects)Nested group: name it in f ("cpc_at_issue") for every field of the group, or "cpc_at_issue.<field>" for one; query its fields in q with the same dotted names.
cpc_at_issue.cpc_sequencenumbernumber
cpc_at_issue.cpc_section_idstringreturned, not searchable
cpc_at_issue.cpc_classstring (URL)keywordLink to the detail record: https://patentref.io/api/v1/cpc_class/<id>/, with a "/" in the id written ":"; null when the id is null. Kind: keyword: in q this name matches the id behind the link (for example "H01" for cpc_current.cpc_class), not the URL.
cpc_at_issue.cpc_class_idstringkeyword
cpc_at_issue.cpc_subclassstring (URL)keywordLink to the detail record: https://patentref.io/api/v1/cpc_subclass/<id>/, with a "/" in the id written ":"; null when the id is null. Kind: keyword: in q this name matches the id behind the link (for example "H01" for cpc_current.cpc_class), not the URL.
cpc_at_issue.cpc_subclass_idstringkeyword
cpc_at_issue.cpc_groupstring (URL)keywordLink to the detail record: https://patentref.io/api/v1/cpc_group/<id>/, with a "/" in the id written ":"; null when the id is null. Kind: keyword: in q this name matches the id behind the link (for example "H01" for cpc_current.cpc_class), not the URL.
cpc_at_issue.cpc_group_idstringkeyword
cpc_at_issue.action_datestringdate
cpc_at_issue.document_numberintegerreturned, not searchable
cpc_currentgroup (list of objects)Nested group: name it in f ("cpc_current") for every field of the group, or "cpc_current.<field>" for one; query its fields in q with the same dotted names.
cpc_current.cpc_sequencenumbernumber
cpc_current.cpc_section_idstringreturned, not searchable
cpc_current.cpc_classstring (URL)keywordLink to the detail record: https://patentref.io/api/v1/cpc_class/<id>/, with a "/" in the id written ":"; null when the id is null. Kind: keyword: in q this name matches the id behind the link (for example "H01" for cpc_current.cpc_class), not the URL.
cpc_current.cpc_class_idstringkeyword
cpc_current.cpc_subclassstring (URL)keywordLink to the detail record: https://patentref.io/api/v1/cpc_subclass/<id>/, with a "/" in the id written ":"; null when the id is null. Kind: keyword: in q this name matches the id behind the link (for example "H01" for cpc_current.cpc_class), not the URL.
cpc_current.cpc_subclass_idstringkeyword
cpc_current.cpc_groupstring (URL)keywordLink to the detail record: https://patentref.io/api/v1/cpc_group/<id>/, with a "/" in the id written ":"; null when the id is null. Kind: keyword: in q this name matches the id behind the link (for example "H01" for cpc_current.cpc_class), not the URL.
cpc_current.cpc_group_idstringkeyword
cpc_current.action_datestringreturned, not searchable
cpc_current.document_numberintegerreturned, not searchable
foreign_prioritygroup (list of objects)Nested group: name it in f ("foreign_priority") for every field of the group, or "foreign_priority.<field>" for one; query its fields in q with the same dotted names.
foreign_priority.priority_claim_kindstringkeyword
foreign_priority.foreign_application_idstringkeyword
foreign_priority.filing_datestringdate
foreign_priority.foreign_country_filedstringkeywordThe two-letter office code printed on the grant: mostly the WIPO codes (GB, EP for the European Patent Office, WO for international applications), with "UK" on some older rows.
foreign_priority.priority_claim_sequenceintegernumber
gov_interest_organizationsgroup (list of objects)Nested group: name it in f ("gov_interest_organizations") for every field of the group, or "gov_interest_organizations.<field>" for one; query its fields in q with the same dotted names.
gov_interest_organizations.fedagency_namestringtext with a keyword form
gov_interest_organizations.level_onestringtext with a keyword form
gov_interest_organizations.level_twostringtext with a keyword form
gov_interest_organizations.level_threestringtext with a keyword form
granted_pregrant_crosswalkgroup (list of objects)Nested group: name it in f ("granted_pregrant_crosswalk") for every field of the group, or "granted_pregrant_crosswalk.<field>" for one; query its fields in q with the same dotted names.
granted_pregrant_crosswalk.patent_idstringkeyword
granted_pregrant_crosswalk.document_numberstringkeyword
granted_pregrant_crosswalk.application_numberstringkeyword
granted_pregrant_crosswalk.current_document_number_flagbooleanboolean
granted_pregrant_crosswalk.current_patent_id_flagbooleanboolean
inventorsgroup (list of objects)Nested group: name it in f ("inventors") for every field of the group, or "inventors.<field>" for one; query its fields in q with the same dotted names.
inventors.inventorstring (URL)returned, not searchableLink to the detail record: https://patentref.io/api/v1/inventor/<id>/, with a "/" in the id written ":"; null when the id is null. Kind: none: the index has no search field for it, so a query on it matches nothing, as upstream; query the id field of the group instead. It comes back beside that id: f naming the id field or the whole group returns both, and f naming this link alone returns nothing.
inventors.inventor_idstringkeyword
inventors.inventor_name_firststringtext with a keyword form
inventors.inventor_name_laststringtext with a keyword form
inventors.inventor_gender_codestringkeyword
inventors.inventor_location_idstringkeyword
inventors.inventor_citystringtext with a keyword form
inventors.inventor_statestringtext with a keyword form
inventors.inventor_countrystringtext with a keyword formAn ISO 3166-1 alpha-2 country code in capitals, as PatentsView gives it: the United Kingdom is "GB", and "UK" matches nothing.
inventors.inventor_sequenceintegernumber
ipcrgroup (list of objects)Nested group: name it in f ("ipcr") for every field of the group, or "ipcr.<field>" for one; query its fields in q with the same dotted names.
ipcr.ipc_idstringkeyword
ipcr.ipc_sequenceintegernumber
ipcr.ipc_action_datestringdate
ipcr.ipc_sectionstringkeyword
ipcr.ipc_classstringkeyword
ipcr.ipc_subclassstringkeyword
ipcr.ipc_main_groupstringkeyword
ipcr.ipc_subgroupstringkeyword
ipcr.ipc_symbol_positionstringkeyword
ipcr.ipc_classification_data_sourcestringkeyword
ipcr.ipc_classification_valuestringkeyword
ipcr.ipc_class_levelstringkeyword
ipcr.ipc_class_statusstringkeyword
pct_datagroup (list of objects)Nested group: name it in f ("pct_data") for every field of the group, or "pct_data.<field>" for one; query its fields in q with the same dotted names.
pct_data.published_filed_datestringdate
pct_data.pct_371_datestringdate
pct_data.pct_102_datestringdate
pct_data.application_kindstringkeyword
pct_data.pct_doc_numberstringkeyword
pct_data.pct_doc_typestringkeyword
pct_data.filed_countrystringkeywordThe two-letter office code printed on the grant: mostly the WIPO codes (GB, EP for the European Patent Office, WO for international applications), with "UK" on some older rows.
us_related_documentsgroup (list of objects)Nested group: name it in f ("us_related_documents") for every field of the group, or "us_related_documents.<field>" for one; query its fields in q with the same dotted names.
us_related_documents.related_doc_typestringkeyword
us_related_documents.related_doc_kindstringkeyword
us_related_documents.related_doc_numberstringkeyword
us_related_documents.published_countrystringkeywordThe two-letter office code printed on the grant: mostly the WIPO codes (GB, EP for the European Patent Office, WO for international applications), with "UK" on some older rows.
us_related_documents.related_doc_published_datestringdate
us_related_documents.related_doc_sequenceintegernumber
us_partiesgroup (list of objects)Nested group: name it in f ("us_parties") for every field of the group, or "us_parties.<field>" for one; query its fields in q with the same dotted names.
us_parties.us_party_typestringkeyword
us_parties.us_party_designationstringtext
us_parties.location_idstringkeyword
us_parties.us_party_name_firststringtext with a keyword form
us_parties.us_party_name_laststringtext with a keyword form
us_parties.us_party_organizationstringtext with a keyword form
us_parties.us_party_sequenceintegernumber
us_parties.applicant_authoritystringkeyword
uspc_at_issuegroup (list of objects)Nested group: name it in f ("uspc_at_issue") for every field of the group, or "uspc_at_issue.<field>" for one; query its fields in q with the same dotted names.
uspc_at_issue.uspc_mainclassstring (URL)keywordLink to the detail record: https://patentref.io/api/v1/uspc_mainclass/<id>/, with a "/" in the id written ":"; null when the id is null. Kind: keyword: in q this name matches the id behind the link (for example "H01" for cpc_current.cpc_class), not the URL.
uspc_at_issue.uspc_mainclass_idstringkeyword
uspc_at_issue.uspc_subclassstring (URL)keywordLink to the detail record: https://patentref.io/api/v1/uspc_subclass/<id>/, with a "/" in the id written ":"; null when the id is null. Kind: keyword: in q this name matches the id behind the link (for example "H01" for cpc_current.cpc_class), not the URL.
uspc_at_issue.uspc_subclass_idstringkeyword
uspc_at_issue.uspc_sequenceintegernumber
wipogroup (list of objects)Nested group: name it in f ("wipo") for every field of the group, or "wipo.<field>" for one; query its fields in q with the same dotted names.
wipo.wipo_field_idstringkeyword
wipo.wipo_fieldstringkeyword
wipo.wipo_sector_titlestringkeyword
wipo.wipo_sequenceintegernumber

Machine-readable: this page's data as JSON, and the operation in openapi.json (operationId PublicationList).