---
title: "US Patent Search & Records API"
slug: search-uspto-patents
url: https://apyhub.com/dosvak/service/search-uspto-patents
provider: Dosvak LLC
categories: [Data Extraction]
tags: [patent search api, uspto patent api, patent data api, prior art search, patent full-text search, CPC classification api, patent citations api, patent analytics, patentsview api, IP research api]
auth: api_key
version: 0.1.0
service_type: sync
endpoints: 12
atoms: 100
mcp: true
---

# US Patent Search & Records API

Search, retrieve, and analyze US patent data. Covers full-text claims, CPC classifications, citations, assignees, and yearly trend analytics.

## Endpoints

| Method | URL | Description | Atoms |
| --- | --- | --- | --- |
| GET | `https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/search` | What it does Searches US patents using a query string, with optional year filtering and a configura… | 100 |
| GET | `https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/advanced-search` | What it does Searches US patents using the advanced query filters provided in the request query str… | 100 |
| GET | `https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/:patent_id` | What it does Retrieves details for a US patent identified by patentid and returns a JSON object con… | 100 |
| GET | `https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/:patent_id/assignees` | What it does Returns the assignees associated with a US patent identified by patentid. The response… | 100 |
| GET | `https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/:patent_id/inventors` | What it does Returns inventor metadata for a US patent identified by patentid. The response include… | 100 |
| GET | `https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/:patent_id/classifications` | What it does Returns the US patent classification metadata for a given patent ID. The request ident… | 100 |
| GET | `https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/:patent_id/citations` | What it does Retrieves US patent citation metadata for the specified patent ID. You can limit the n… | 100 |
| GET | `https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patent-text/search` | What it does Searches US patent text using the provided query and optional filters, then returns a… | 100 |
| GET | `https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patent-text/:patent_id` | What it does Retrieves US patent text section details for a given patentid. You can optionally narr… | 100 |
| GET | `https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/analytics/yearly-trend` | What it does Returns yearly US patent trend analytics for the requested year range. You can control… | 100 |
| GET | `https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/analytics/cpc-breakdown` | What it does Returns a CPC breakdown for US patents as a JSON object containing a total count, a re… | 100 |
| GET | `https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patent-text/analytics/section-breakdown` | What it does Returns a breakdown of US patent text analytics by section type. The response is a JSO… | 100 |

## Endpoint reference

### Search US Patents

`GET https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/search` · 100 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `year` | query | string | no | Year Example: `2024`. |
| `limit` | query | integer | no | Limit Default: `20`. Example: `25`. |
| `query` | query | string | yes | Query Example: `wireless charging`. |

#### Quickstart

Search US patents with the required query term and optional year/limit filters.

```bash
curl -X GET "https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/search?query=wireless%20charging&year=2024&limit=25" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with `year` (`integer` or `null`), `count` (`integer`), `query` (`string`), `results` (`array` of patent summary objects), and `attribution` (`array` of attribution objects).

```json
{
  "year": 2024,
  "count": 1,
  "query": "wireless charging",
  "results": [],
  "attribution": []
}
```

### Search US Patents (Advanced)

`GET https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/advanced-search` · 100 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `limit` | query | integer | no | Limit Default: `25`. |
| `query` | query | string | no | Query Example: `charging`. |
| `offset` | query | integer | no | Offset Default: `0`. |
| `year_to` | query | string | no | Year To Example: `2024`. |
| `wipo_kind` | query | string | no | Wipo Kind Example: `B2`. |
| `year_from` | query | string | no | Year From Example: `2020`. |
| `cpc_section` | query | string | no | Cpc Section Example: `H`. |
| `patent_type` | query | string | no | Patent Type Example: `utility`. |
| `assignee_contains` | query | string | no | Assignee Contains Example: `Tesla`. |
| `inventor_contains` | query | string | no | Inventor Contains Example: `Kim`. |

#### Quickstart

Search U.S. patents with a simple query and the default limit.

```bash
curl -X GET "https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/advanced-search?query=charging&limit=25" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with `count` as an integer, `query` as a string or `null`, `filters` as an object, `results` as an array of patent summary objects, and `attribution` as an array of attribution objects.

```json
{
  "count": 0,
  "query": "charging",
  "filters": {
    "limit": 25,
    "offset": 0,
    "year_to": null,
    "wipo_kind": null,
    "year_from": null,
    "cpc_section": null,
    "patent_type": null,
    "assignee_contains": null,
    "inventor_contains": null
  },
  "results": [],
  "attribution": []
}
```

### Get US Patent Details

`GET https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/:patent_id` · 100 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `patent_id` | path | string | yes | Patent Id Example: `12508435`. |

#### Quickstart

Fetch patent details by providing the patent ID in the path.

```bash
curl -X GET "https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/:patent_id" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with top-level fields such as `patent` (an object), `assignees` (an array), `inventors` (an array), `attribution` (an array), `cpc_current` (an array), and `citation_count` (an integer), as declared by the response schema.

```json
{
  "patent": {
    "patent_id": "12508435",
    "wipo_kind": "A1",
    "withdrawn": "0",
    "num_claims": "20",
    "patent_date": "2024-03-12",
    "patent_type": "utility",
    "patent_title": "Example patent title",
    "patent_abstract": "Example abstract text."
  },
  "assignees": [],
  "inventors": [],
  "attribution": [],
  "cpc_current": [],
  "citation_count": 0
}
```

### Get US Patent Assignees

`GET https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/:patent_id/assignees` · 100 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `patent_id` | path | string | yes | Patent Id Example: `12508435`. |

#### Quickstart

Fetch the assignee metadata for a specific patent by passing its `patent_id` in the path.

```bash
curl -X GET "https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/:patent_id/assignees" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with these top-level fields: `count` as an integer, `results` as an array of assignee objects, `patent_id` as a string, and `attribution` as an array of attribution objects.

```json
{
  "count": 1,
  "results": [
    {
      "assignee_id": "550e8400-e29b-41d4-a716-446655440000",
      "location_id": "550e8400-e29b-41d4-a716-446655440001",
      "assignee_type": "2",
      "assignee_sequence": "0",
      "disambig_assignee_organization": "Acme Technologies Inc.",
      "disambig_assignee_individual_name_last": "Smith",
      "disambig_assignee_individual_name_first": "Jane"
    }
  ],
  "patent_id": "12508435",
  "attribution": [
    {
      "url": "https://www.uspto.gov/",
      "notice": "Data provided by the USPTO",
      "source": "USPTO",
      "dataset": "Patent data",
      "license": "Public domain"
    }
  ]
}
```

### Get US Patent Inventors

`GET https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/:patent_id/inventors` · 100 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `patent_id` | path | string | yes | Patent Id Example: `12508435`. |

#### Quickstart

Fetch the inventors for a patent by putting the patent ID in the path.

```bash
curl -X GET "https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/:patent_id/inventors" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with `count` as an integer, `results` as an array of inventor objects, `patent_id` as a string, and `attribution` as an array of attribution objects.

```json
{
  "count": 2,
  "results": [
    {
      "gender_code": "M",
      "inventor_id": "123456",
      "location_id": "550e8400-e29b-41d4-a716-446655440000",
      "inventor_sequence": "0",
      "disambig_inventor_name_last": "Smith",
      "disambig_inventor_name_first": "John"
    }
  ],
  "patent_id": "12508435",
  "attribution": [
    {
      "url": "https://example.com",
      "notice": "Data provided by ...",
      "source": "USPTO",
      "dataset": "Patents",
      "license": "Public Domain"
    }
  ]
}
```

### Get US Patent Classifications

`GET https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/:patent_id/classifications` · 100 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `patent_id` | path | string | yes | Patent Id Example: `12508435`. |

#### Quickstart

Fetch the patent classifications for a single patent ID by putting the required `patent_id` in the path.

```bash
curl -X GET "https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/:patent_id/classifications" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with `count` as an integer, `results` as an array of classification objects, `patent_id` as a string, and `attribution` as an array of attribution objects.

```json
{
  "count": 1,
  "results": [
    {
      "cpc_type": "inventional",
      "cpc_class": "02",
      "cpc_group": "50/10",
      "cpc_section": "H",
      "cpc_sequence": "0",
      "cpc_subclass": "J"
    }
  ],
  "patent_id": "12508435",
  "attribution": [
    {
      "url": "https://example.com",
      "notice": "Example attribution notice",
      "source": "USPTO",
      "dataset": "Patent classifications",
      "license": "CC-BY"
    }
  ]
}
```

### Get US Patent Citations

`GET https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/:patent_id/citations` · 100 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `limit` | query | integer | no | Limit Default: `200`. |
| `direction` | query | string | no | Direction Default: `backward`. |
| `patent_id` | path | string | yes | Patent Id Example: `12508435`. |

#### Quickstart

Fetch citation metadata for a patent ID, using the required patent ID in the URL and the default backward direction.

```bash
curl -X GET "https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/:patent_id/citations" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with `count` as an integer, `results` as an array of citation objects, `direction` and `patent_id` as strings, and `attribution` as an array of attribution objects.

Each citation in `results` may include `patent_id`, `wipo_kind`, `record_name`, `citation_date`, `citation_category`, `citation_sequence`, and `citation_patent_id`.

```json
{
  "count": 0,
  "results": [],
  "direction": "backward",
  "patent_id": "12508435",
  "attribution": []
}
```

### Search US Patent Text

`GET https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patent-text/search` · 100 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `limit` | query | integer | no | Limit Default: `20`. |
| `query` | query | string | yes | Query Example: `lithium battery thermal management`. |
| `year_to` | query | string | no | Year To |
| `year_from` | query | string | no | Year From |
| `section_type` | query | string | no | Section Type Example: `g_claims_text`. |

#### Quickstart

Search US patent text with the required query parameter.

```bash
curl -X GET "https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patent-text/search?query=lithium%20battery%20thermal%20management" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with these top-level fields: `count` and `num_found` are integers, `query` is the search string, `year_from` and `year_to` are nullable integers, `section_type` is a nullable string, `results` is an array of patent section objects, and `attribution` is an array of attribution objects.

Each item in `results` includes `id`, `patent_id`, `text_len_i`, `source_file`, and `section_type`, plus optional `score` and `section_seq`.

```json
{
  "count": 1,
  "query": "lithium battery thermal management",
  "results": [
    {
      "id": "US1234567|summary_text|1",
      "score": 12.34,
      "patent_id": "US1234567",
      "text_len_i": 842,
      "section_seq": 1,
      "source_file": "us_patents.json",
      "section_type": "summary_text"
    }
  ],
  "year_to": null,
  "num_found": 1,
  "year_from": null,
  "attribution": [],
  "section_type": null
}
```

### Get US Patent Text Sections

`GET https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patent-text/:patent_id` · 100 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `limit` | query | integer | no | Limit Default: `200`. |
| `patent_id` | path | string | yes | Patent Id Example: `12508435`. |
| `section_type` | query | string | no | Section Type Example: `g_claims_text`. |

#### Quickstart

Fetch patent text sections for a specific patent ID. `patent_id` goes in the path, and the optional filters are passed as query parameters.

```bash
curl -X GET "https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patent-text/:patent_id" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with `count` and `num_found` integer fields, a `results` array of patent section objects, and top-level `patent_id`, `section_type`, and `attribution` fields.

Each item in `results` includes `id`, `patent_id`, `text_len_i`, `source_file`, and `section_type`, with optional `score` and `section_seq` fields.

```json
{
  "count": 1,
  "results": [
    {
      "id": "12508435|g_claims_text|1",
      "patent_id": "12508435",
      "text_len_i": 1240,
      "section_seq": 1,
      "source_file": "patent_12508435.pdf",
      "section_type": "g_claims_text"
    }
  ],
  "num_found": 1,
  "patent_id": "12508435",
  "attribution": [],
  "section_type": "g_claims_text"
}
```

### Get US Patent Yearly Trends

`GET https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/analytics/yearly-trend` · 100 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `year_to` | query | integer | no | Year To Default: `2025`. |
| `year_from` | query | integer | no | Year From Default: `2015`. |

#### Quickstart

Fetch the yearly patent trend for a date range using the required query parameters.

```bash
curl -X GET "https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/analytics/yearly-trend?year_from=2015&year_to=2025" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with `count` as an integer, `results` as an array of yearly trend objects, `year_to` and `year_from` as integers, and `attribution` as an array of attribution objects.

```json
{
  "count": 2,
  "results": [
    {
      "patents": 120,
      "grant_year": 2024,
      "avg_num_claims": "14.5"
    }
  ],
  "year_to": 2025,
  "year_from": 2015,
  "attribution": [
    {
      "url": "https://example.com",
      "notice": "Data provided for analytics",
      "source": "Patent dataset",
      "dataset": "yearly-trend",
      "license": "CC BY 4.0"
    }
  ]
}
```

### Get US Patent CPC Breakdown

`GET https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/analytics/cpc-breakdown` · 100 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `limit` | query | integer | no | Limit Default: `50`. |

#### Quickstart

Get a CPC breakdown with the default limit.

```bash
curl -X GET "https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patents/analytics/cpc-breakdown?limit=50" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with `count` as an integer, `results` as an array of CPC breakdown objects, and `attribution` as an array of attribution objects.

```json
{
  "count": 0,
  "results": [
    {
      "patents": 0,
      "cpc_class": "string",
      "cpc_section": "string",
      "cpc_subclass": "string"
    }
  ],
  "attribution": [
    {
      "url": "https://example.com",
      "notice": "string",
      "source": "string",
      "dataset": "string",
      "license": "string"
    }
  ]
}
```

### Get US Patent Section Breakdown

`GET https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patent-text/analytics/section-breakdown` · 100 atoms · accepts `application/json` · returns `application/json`

| Parameter | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `limit` | query | integer | no | Limit Default: `20`. |

#### Quickstart

Fetch the patent text section breakdown with the default limit.

```bash
curl -X GET "https://api.eu.apyhub.com/dosvak/search-uspto-patents/api/v1/uspto/patent-text/analytics/section-breakdown?limit=20" \
  -H "apy-token: $APY_TOKEN"
```

#### What you'll get back

Returns a JSON object with `count` as an integer, `results` as an array of objects, and `attribution` as an array of attribution objects.

```json
{
  "count": 0,
  "results": [
    {
      "docs": 0,
      "section_type": "string"
    }
  ],
  "attribution": [
    {
      "url": "https://example.com",
      "notice": "string",
      "source": "string",
      "dataset": "string",
      "license": "string"
    }
  ]
}
```

## About

## What it does
US Patent Intelligence gives you a complete working surface over PatentsView-disambiguated US patent grant data — search, full record detail, related entities, full-text sections, and portfolio-level analytics — all in one API.

Start with search: `/patents/search` handles simple keyword + year lookups against title and abstract, while `/patents/advanced-search` adds multi-constraint filtering by patent type, WIPO kind, CPC section, assignee name, inventor name, and an explicit year range with pagination via `limit`/`offset`. Both return `patent_id`, `patent_title`, `patent_date`, `patent_type`, `wipo_kind`, and `num_claims` for each hit.

Once you have a `patent_id`, `/patents/{patent_id}` returns the full technical envelope: core grant metadata and abstract, disambiguated assignee records, disambiguated inventor records, active CPC classifications, and an aggregate citation count. If you only need one slice of that envelope, dedicated endpoints are available for `/assignees`, `/inventors`, `/classifications`, and `/citations` (the latter supporting `backward` or `forward` direction to trace prior art or later filings that cite the patent).

For full-text work, `/patent-text/search` runs relevance-ranked search across indexed patent sections (claims, abstract, description, summary) with optional `section_type` and year-range filters, and `/patent-text/{patent_id}` retrieves all indexed text sections for a specific patent in order.

Three analytics endpoints round out the API for reporting and dashboards: `/patents/analytics/yearly-trend` (granted volume and average claims by year), `/patents/analytics/cpc-breakdown` (top classification combinations by volume), and `/patent-text/analytics/section-breakdown` (document counts by section type).

Use US Patent Intelligence for prior-art review, competitive research, patent discovery tools, or any workflow that needs both patent metadata and searchable patent text without building an index from scratch. Every response includes `attribution` data for source and license tracking.

## Usage

Base URL: `https://api.eu.apyhub.com` (default region — see
`GET https://apyhub.com/api/public/regions` for the rest).

Authenticate with an ApyHub API key in the `apy-token` header.
Full docs and a live playground: https://apyhub.com/dosvak/service/search-uspto-patents
