PatentRef

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

/api/v1/g_brf_sum_text/

Upstream view GBrfSumTextList (index g_brf_sum_texts, response key g_brf_sum_texts). Long text of granted patents, served since 2026-10-08 from the long-text build 20261006.4; GET /api/v1/meta/health/ shows text_data_version. The last grant date covered is 2025-12-30 in all four long-text endpoints: claims, brief summaries and drawing descriptions of patents granted 1976 to 2025-12-30, detailed descriptions of 2005 to 2025-12-30. Patents granted after 2025-12-30 (the weekly grants) have no long text yet and answer 0 rows here. Search it with _text_all, _text_any or _text_phrase. _contains matches within one word (a needle with a space answers 0 rows); _contains with a one-word needle, a range or an empty _begins on the text field answers 400 ERR_Q unless patent_id (up to 1,000 values) is in the same _and, since no index serves it. A query that matches nearly every row (_neq on patent_id) answers at once. The endpoint answers 501 ERR_NOT_IMPLEMENTED only when no long-text file is in service. The long text comes from its own file: X-Data-Version on these answers names the build of the main search file, and X-Text-Data-Version (the same value as text_data_version in GET /api/v1/meta/health/) names the long-text file; cache long text under X-Text-Data-Version. Any field may be null where the bulk data has no value. Default fields (f): patent_id, summary_text. Default sort (s): [{"patent_id": "asc"}]. Default options (o): {"pad_patent_id": false}.

Routes
GET POST /api/v1/g_brf_sum_text/
Response key
g_brf_sum_texts
Default f
patent_id, summary_text
Default s
[{"patent_id": "asc"}]
Default o
{"pad_patent_id": false}
q
required on the list route

Example

curl -s -G -H "X-Api-Key: $KEY" https://patentref.io/api/v1/g_brf_sum_text/ \
  --data-urlencode 'q={"patent_id": "10000000"}'
import json, os, requests

base_url = "https://patentref.io"
headers = {"X-Api-Key": os.environ["PATENTREF_KEY"]}
params = {"q": {"patent_id": "10000000"}}
r = requests.get(base_url + "/api/v1/g_brf_sum_text/", 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["g_brf_sum_texts"][:3])

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
patent_idstringkeywordyes
summary_textstringtext

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