---
title: "Search USPTO patent applications"
method: POST
path: "/legal/v1/patent-search"
tags: ["Legal"]
---

# Search USPTO patent applications

`POST /legal/v1/patent-search`

Search the USPTO Open Data Portal for US patent applications and granted patents. Supports free-text queries, field-specific search, filters by assignee/inventor/status/type, date ranges, and pagination. Covers applications filed on or after January 1, 2001. Data is refreshed daily.

## Request body

- object
  - `query` string, required — Free-text search across all patent fields, or field-specific query (e.g. "applicationMetaData.patentNumber:11234567"). Supports AND, OR, NOT operators.
  - `applicationStatus` string — Filter by application status (e.g. "Patented Case", "Abandoned", "Pending")
  - `applicationType` 'Utility' | 'Design' | 'Plant' | 'Provisional' | 'Reissue' — Filter by application type
  - `assignee` string — Filter by assignee/owner name (e.g. "Google LLC")
  - `inventor` string — Filter by inventor name
  - `filingDateFrom` string, date — Start of filing date range (YYYY-MM-DD)
  - `filingDateTo` string, date — End of filing date range (YYYY-MM-DD)
  - `grantDateFrom` string, date — Start of grant date range (YYYY-MM-DD)
  - `grantDateTo` string, date — End of grant date range (YYYY-MM-DD)
  - `limit` integer — Number of results to return (default 25, max 100)
  - `offset` integer — Starting position for pagination
  - `sortBy` 'filingDate' | 'grantDate' — Field to sort results by
  - `sortOrder` 'asc' | 'desc' — Sort order (default desc, newest first)

## Response `200`

Patent search completed successfully

- object
  - `query` string — Original search query
  - `totalResults` integer — Total number of matching patent applications
  - `offset` integer — Current pagination offset
  - `limit` integer — Number of results returned
  - `results` object[] — Array of matching patent applications
    - `applicationNumber` string — Patent application serial number
    - `patentNumber` string, nullable — Granted patent number (if granted)
    - `title` string — Invention title
    - `applicationType` string — Application type (Utility, Design, Plant, etc.)
    - `status` string — Current application status (e.g. "Patented Case", "Pending")
    - `filingDate` string, date, nullable — Date the application was filed
    - `grantDate` string, date, nullable — Date the patent was granted
    - `inventors` string[] — List of inventor names
    - `assignees` string[] — List of assignee/owner names
    - `entityStatus` string, nullable — Entity status (e.g. "Small Entity", "Micro Entity")

## Other responses

- `400` — Bad request - invalid query or parameters
- `401` — Unauthorized - invalid API key
- `403` — Forbidden - insufficient permissions for Legal service
- `502` — Bad gateway - USPTO API returned an error

---

[API](https://skmtc.net/casemark/apis/case-dev-api.md) · [All operations](https://skmtc.net/casemark/apis/case-dev-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/casemark/case-dev-api/revisions/5b7e64e6d6f9/schema)
