---
title: "Find patents and applications by keywords, CPC class, filing date and owner"
method: GET
path: "/v1/search"
tags: ["patent status"]
---

# Find patents and applications by keywords, CPC class, filing date and owner

`GET /v1/search`

## Request

- Base URL: `https://api.patentdata.ai`
- URL: `https://api.patentdata.ai/v1/search`
- Auth: one of:
  - API key in header `X-API-KEY`
  - HTTP bearer

Answers: which granted patents / published applications are about X — by words in the title, abstract or claims (`q`, websearch syntax: words are ANDed, "quoted phrases" must be adjacent, `-word` excludes, `or` alternates; English stemming), and/or in a CPC level (`cpc`: C, C12, C12N, C12N15 or C12N15/88 — one level, not a free-form prefix), optionally only `doc_type` grant|publication, filed within `filed_after`..`filed_before` (inclusive, on the application's filing date), and/or in one entity's portfolio (`entity_id` from /v1/entities/search). At least one of q / cpc / entity_id is required (400 otherwise). This is keyword search over the weekly full-text products, not similarity or prior-art search. Each result: `doc_number`, `doc_type`, `kind`, `application_number`, `title`, `date` (grant/publication), `filing_date`, `cpc`, `snippet` (abstract with **matches** marked) and `rank` (ts_rank_cd; null without q). Ranked best first, then newest; page with `next_cursor`. `total` is the number of matches up to 10,000 (`total_capped: true` beyond). A query that runs longer than 10 s is a 504 computation_timeout: add a cpc level, doc_type, a date range or more specific words. Status of any hit: /v1/applications/{application_number}; its full claims: /v1/patents/{n}/claims. Costs 1 unit per 100 rows.

## Query parameters

- `q` string, nullable: Websearch query over title, abstract and claims: mRNA "lipid nanoparticle" -virus
- `cpc` string, nullable: One CPC level: C, C12, C12N, C12N15 (or C12N15/), C12N15/88.
- `doc_type` string, nullable: grant or publication; omit for both.
- `filed_after` string, date, nullable: Only applications filed on/after this ISO date.
- `filed_before` string, date, nullable: Only applications filed on/before this ISO date.
- `entity_id` string, nullable: Entity id (ent_...) or family id (fam_...) from /v1/entities/search: only that portfolio.
- `limit` integer: Page size. Each 100 rows returned costs 1 request unit.
- `cursor` string, nullable: Opaque cursor from a previous response's next_cursor. Omit for the first page.

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/patentdata/apis/patent-status-api.md) · [All operations](https://skmtc.dev/patentdata/apis/patent-status-api/llms.txt) · [OpenAPI document](https://skmtc.dev/patentdata/apis/patent-status-api/revisions/320133a82b42?raw)
