patentgrepDocs

Search API

Search patents

Search US grants and published applications by words, by query syntax or by a description of the idea. Results come with match highlights and, if you ask, facet counts.

GET/v1/search

Three ways to search

Best match needs every word. If nothing has them all, it falls back to at least half of them and sets relaxed to true. Exact words reads query syntax: fields, AND / OR / NOT, phrases and NEAR. Describe it takes a sentence about the invention and needs at least half of its significant words.

Searches title, abstract and every claim by default. Each claim is matched on its own, and snippet shows the best one.

Try itDemo key
GET /v1/search?q=solid+electrolyte+lithium&mode=best&type=grant&from=2024&sort=newest&facets=false
Response200Recorded 11 Oct 2026
{
  "total": 1096,
  "page": 1,
  "page_size": 25,
  "terms": ["solid", "electrolyte", "lithium"],
  "hits": [
    {
      "doc_id": "US12756070B2",
      "number": "12756070",
      "feed": "grant",
      "kind": "B2",
      "title": "System and method for a self-protecting separator for a battery",
      "date": 20261006,
      "filed": 20230118,
      "cpc_main": "H01M 50/457",
      "assignee": "GM GLOBAL TECHNOLOGY OPERATIONS LLC",
      "num_claims": 18,
      "match": 1.0,
      "snippet": "micrometers to 100 micrometers, wherein the battery cell comprises a <b>…"
    }
    // 24 more
  ],
  "elapsed_ms": 18.7,
  "relaxed": false,
  "suggestion": null,
  "next": "eyJ2IjoxLCJrZXkiOiI1NmRiYTZhZTJiMWNiM2ViYmNjNjdhMjg0NzlmMjg0MzA3NzA2Yjdl…"
}

Query parameters

qstringup to 500 characters

Words, query syntax or a description, depending on mode. Leave it empty to filter and count without words.

modeenumDefault best
bestEvery word; falls back to at least half of them.exactQuery syntax: fields, AND / OR / NOT, phrases, NEAR, wildcards.describeA sentence about the idea; at least half of its significant words.
typeenumDefault: both

grant or application.

fromstring

Inclusive start, as a year or YYYY-MM-DD. Use to for an inclusive end year, or before for an exclusive end date.

dateenumDefault published

Which date from, before, the year facet and date sorting use: published, filed or priority (the earliest claimed filing).

cpcstring, repeatable

CPC subclass such as H01M. Repeat the parameter to match any of several.

assigneestring, repeatable

An assignee name exactly as it appears in the facets.

sortenumDefault relevance

relevance, newest or oldest.

pageintegerDefault 1, 1–40

25 hits per page. Past page 40, follow next with after.

facetsbooleanDefault true

Counts by year, CPC subclass, assignee and document type. Set hits=false to get counts only.

curl -G https://api.patentgrep.com/v1/search \
  -H "X-Api-Key: $PATENTGREP_KEY" \
  --data-urlencode "q=solid electrolyte lithium" \
  -d type=grant \
  -d from=2024 \
  -d sort=newest

Response

totalinteger

Documents that match, across all pages.

hitsarray of objects

Up to 25 documents with doc_id, title, abstract, date and filed as YYYYMMDD numbers, cpc_main, assignee, match from 0 to 1, and a snippet with matching words in <b>.

facetsobject

years, cpc, assignees and feeds, each a list of {value, count}.

relaxedboolean

true when Best match fell back because no document had every word.

suggestionstring or null

A spelling suggestion for rare words. Results still use the original query.

nextstring or null

Cursor for the next page. Pass it as after with the same query and filters.

Spelling suggestion200q=electrolite separator
{
  "total": 2,
  "suggestion": "electrolyte separator",
  "hits": [ … ]
}
Facetsq=solid electrolyte lithium
"facets": {
  "feeds": [{"value": "application", "count": 8405},
            {"value": "grant", "count": 5260}],
  "cpc": [{"value": "H01M", "count": 12882}, …],
  "assignees": [
    {"value": "Samsung Electronics Co., Ltd.", "count": 619}, …],
  "years": [ …, {"value": 2026, "count": 995}]
}

Exact words syntax

With mode=exact, combine words, fields and dates.

WriteTo find
"solid electrolyte"The exact phrase
sulfide OR argyroditeEither word; AND and NOT work too
"cell vent"~5Both words within 5 words of each other
electrolyt*Any word starting with electrolyt
title:separatorA word in one field: title, abstract, claims, assignee, inventors, cpc
filed:>=20200101Dates as YYYYMMDD; ranges like [20180101 TO 20261231]
Example
curl -G https://api.patentgrep.com/v1/search \
  -H "X-Api-Key: $PATENTGREP_KEY" \
  -d mode=exact \
  --data-urlencode 'q="solid electrolyte" AND (sulfide OR argyrodite) AND filed:>=20200101'

Errors

A query that can't be read returns 400 with the reason. See Errors for every status.

400 Bad request400mode=exact, q=(battery AND
{
  "detail": "Could not read that query: failed to parse query: `((battery AND)`"
}