Skip to content

New Official SDKs for TypeScript, Python and Go

SerpKite
Get API key
Docs menu / Google Patents

Google Patents

Patents with number, assignee, inventor, priority and publication dates, PDF.

POST https://api.serpkite.com/v1/patents Credits: 1 per page Try in playground
View as Markdown

Google Patents results with publication number, assignee, inventor, priority, filing, grant and publication dates, and the PDF.

Request body

Send a JSON object with Content-Type: application/json. The same parameters also work as a query string on GET /v1/patents. JSON arrays are rejected: to run many queries at once, use POST /v1/batches at half price. Unknown parameters return 400 invalid_request with a message that names the replacement; see strict validation.

ParameterTypeDefaultDescription
q requiredstringThe search query. Required. Up to 2,048 characters.
numinteger10Results per call. 10 per page; 100 fetches the top 100 as a depth bundle for 7 credits instead of 10. One of: 10, 20, 30, 50, 100.
pageinteger1Results page, 1–10. Each page is billed separately.
formatstringjsonResponse format. markdown is LLM-ready prose; compact is JSON with only the fields agents need. One of: json, compact, markdown.
fieldsstringComma-separated projection, e.g. results.title,results.link,knowledge_graph. Cuts tokens.

Example request

Authenticate with Authorization: Bearer $SERPKITE_API_KEY (GET requests may pass ?api_key= instead). The official SDKs read SERPKITE_API_KEY for you. See Authentication.

curl https://api.serpkite.com/v1/patents \
  -H "Authorization: Bearer $SERPKITE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"q":"solid state battery electrolyte"}'

Response fields

FieldTypeDescription
requestobjectThe normalised request, with defaults filled in: endpoint, engine, q, country, language, location, num, page, device, autocorrect…
results[]arrayposition, title, snippet, link, publication_number, priority_date, filing_date, grant_date, publication_date, inventor, assignee, language, pdf_url, thumbnail_url.
metaobjectrequest_id, credits_used, cached, cached_at, engine (the provider that answered), route (provider attempts, see Search providers), latency_ms, parse_quality (ok, partial, empty), resolved_urls.

Every billed response also carries credit and latency headers (X-Credits-Used, X-Credits-Remaining, X-Request-Id…).

Example response

200 OK · illustrative
{
  "request": {
    "endpoint": "patents",
    "engine": "google",
    "q": "solid state battery electrolyte"
  },
  "results": [
    {
      "position": 1,
      "title": "Solid electrolyte composition and all-solid-state battery",
      "snippet": "A sulfide solid electrolyte with improved ionic conductivity…",
      "link": "https://patents.example.com/patent/US0000000A1",
      "publication_number": "US0000000A1",
      "priority_date": "2024-03-01",
      "filing_date": "2025-02-27",
      "publication_date": "2026-09-03",
      "inventor": "Jane Example",
      "assignee": "Example Energy Co",
      "language": "en",
      "pdf_url": "https://patents.example.com/pdf/US0000000A1.pdf"
    }
  ],
  "meta": {
    "request_id": "req_01J8ZK4M6Q2V7",
    "credits_used": 1,
    "cached": false,
    "engine": "google",
    "latency_ms": 1034,
    "parse_quality": "ok",
    "resolved_urls": true
  }
}

Errors

Errors use one shape: {"error":{"code","message","request_id"}}. Errors are never billed. Full list in Errors.

StatusCodeMeaning
400invalid_requestA parameter is missing or invalid.
401unauthorizedThe API key is missing, invalid or revoked.
402insufficient_creditsYour balance is too low. Buy a pack or wait for the monthly free grant.
429rate_limitedToo many requests per second for your plan. Retry after the Retry-After header.
503upstream_errorGoogle could not be fetched or parsed. Not billed; retry after Retry-After.