/api/v1/inventor/
Upstream view InventorList (index inventors, response key inventors). Any field may be null where the bulk data has no value. Default fields (f): inventor_id, inventor_name_first, inventor_name_last. Default sort (s): [{"inventor_id": "asc"}]. Nested groups usable in q and f with dotted names: inventor_years. When the build in service does not carry this endpoint's data set it answers 501 with X-Status-Reason-Code ERR_NOT_IMPLEMENTED and X-Status-Reason naming the data set.
- Routes
GETPOST/api/v1/inventor/GETPOST/api/v1/inventor/{pk}/- Response key
inventors- Default f
inventor_id,inventor_name_first,inventor_name_last- Default s
[{"inventor_id": "asc"}]- Default o
{}- q
- required on the list route
- Detail key
inventor_idin the path; a "/" in a key is written ":"- Nested groups
inventor_years
Example
curl -s -G -H "X-Api-Key: $KEY" https://patentref.io/api/v1/inventor/ \
--data-urlencode 'q={"_or": [{"_and": [{"inventor_name_first": "George"}, {"inventor_name_last": "Washington"}]}, {"_and": [{"inventor_name_first": "Abraham"}, {"inventor_name_last": "Lincoln"}]}]}'
import json, os, requests
base_url = "https://patentref.io"
headers = {"X-Api-Key": os.environ["PATENTREF_KEY"]}
params = {"q": {"_or": [{"_and": [{"inventor_name_first": "George"}, {"inventor_name_last": "Washington"}]}, {"_and": [{"inventor_name_first": "Abraham"}, {"inventor_name_last": "Lincoln"}]}]}}
r = requests.get(base_url + "/api/v1/inventor/", 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["inventors"][: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 |
|---|---|---|---|---|
inventor_id | string | keyword | yes | |
inventor_name_first | string | text with a keyword form | yes | |
inventor_name_last | string | text with a keyword form | yes | |
inventor_gender_code | string | keyword | yes | |
inventor_lastknown_city | string | text | ||
inventor_lastknown_state | string | text | ||
inventor_lastknown_country | string | text | An ISO 3166-1 alpha-2 country code in capitals, as PatentsView gives it: the United Kingdom is "GB", and "UK" matches nothing. | |
inventor_lastknown_latitude | number | number | yes | |
inventor_lastknown_longitude | number | number | yes | |
inventor_lastknown_location | string (URL) | keyword | Link to the detail record: https://patentref.io/api/v1/location/<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. | |
inventor_num_patents | number | number | yes | |
inventor_num_assignees | number | number | yes | |
inventor_first_seen_date | string | date | yes | |
inventor_last_seen_date | string | date | yes | |
inventor_years_active | number | number | yes | |
inventor_years | group (list of objects) | Nested group: name it in f ("inventor_years") for every field of the group, or "inventor_years.<field>" for one; query its fields in q with the same dotted names. | ||
inventor_years.year | integer | number | ||
inventor_years.num_patents | integer | number |
Machine-readable: this page's data as JSON, and the operation in openapi.json (operationId InventorList).