/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
GETPOST/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).
| Field | Type | Kind | Sortable | Note |
|---|---|---|---|---|
patent_id | string | keyword | yes | |
summary_text | string | text |
Machine-readable: this page's data as JSON, and the operation in openapi.json (operationId GBrfSumTextList).