US Patent and Trademark Office Patent Search API

Search and retrieve patent application data

Operations 13

POST /api/v1/patent/applications/search Search Patent Applications by JSON Payload #
GET /api/v1/patent/applications/search Search Patent Applications by Query Parameters #
POST /api/v1/patent/applications/search/download Download Patent Application Search Results #
GET /api/v1/patent/applications/{applicationNumberText} Get Patent Application by Application Number #
GET /api/v1/patent/applications/{applicationNumberText}/meta-data Get Patent Application Metadata #
GET /api/v1/patent/applications/{applicationNumberText}/adjustment Get Patent Application Patent Term Adjustment #
GET /api/v1/patent/applications/{applicationNumberText}/assignment Get Patent Application Assignment Data #
GET /api/v1/patent/applications/{applicationNumberText}/attorney Get Patent Application Attorney Information #
GET /api/v1/patent/applications/{applicationNumberText}/continuity Get Patent Application Continuity Data #
GET /api/v1/patent/applications/{applicationNumberText}/foreign-priority Get Patent Application Foreign Priority #
GET /api/v1/patent/applications/{applicationNumberText}/transactions Get Patent Application Transaction History #
GET /api/v1/patent/applications/{applicationNumberText}/documents Get Patent Application Documents #
GET /api/v1/patent/status-codes Get Patent Application Status Codes #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/us-patent-and-trademark-office-patent-search-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

us-patent-and-trademark-office-patent-search-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: USPTO Open Data Portal Patent Search API
  description: The USPTO Open Data Portal (ODP) API allows public users to discover, search, and extract USPTO patent, trademark, PTAB trial, petition decision, and bulk dataset data at no cost. An ODP API key is required, passed via the X-API-KEY request header.
  version: 1.0.0
  contact:
    name: USPTO
    email: data@uspto.gov
    url: https://data.uspto.gov/apis/getting-started
  x-source-url: https://data.uspto.gov/swagger/swagger.yaml
servers:
- url: https://api.uspto.gov
security:
- ApiKeyAuth: []
tags:
- name: Patent Search
  description: Search and retrieve patent application data
paths:
  /api/v1/patent/applications/search:
    post:
      tags:
      - Patent Search
      operationId: searchPatentApplicationsPost
      summary: Search Patent Applications by JSON Payload
      description: Search patent applications by supplying a JSON request payload with optional query fields, date filters, and pagination options.
      requestBody:
        description: Patent search request payload. All fields are optional.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatentSearchRequest'
      responses:
        '200':
          description: Successful patent search response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PatentDataResponse'
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
    get:
      tags:
      - Patent Search
      operationId: searchPatentApplicationsGet
      summary: Search Patent Applications by Query Parameters
      description: Search patent applications using query parameters. When no parameters are supplied, the top 25 applications are returned.
      parameters:
      - name: q
        in: query
        description: Search query string supporting boolean operators (AND, OR, NOT), wildcards (*), and exact phrases ("").
        schema:
          type: string
      - name: dateRangeData.startDate
        in: query
        description: Start date for date range filter (YYYY-MM-DD)
        schema:
          type: string
          format: date
      - name: dateRangeData.endDate
        in: query
        description: End date for date range filter (YYYY-MM-DD)
        schema:
          type: string
          format: date
      - name: start
        in: query
        description: Pagination start offset
        schema:
          type: integer
          default: 0
      - name: rows
        in: query
        description: Number of rows to return (max 25)
        schema:
          type: integer
          default: 25
          maximum: 25
      responses:
        '200':
          description: Successful patent search response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PatentDataResponse'
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
  /api/v1/patent/applications/search/download:
    post:
      tags:
      - Patent Search
      operationId: downloadPatentApplicationsSearch
      summary: Download Patent Application Search Results
      description: Download a bulk export of patent application search results.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatentSearchRequest'
      responses:
        '200':
          description: Download initiated
        '400':
          description: Bad Request
        '403':
          description: Forbidden
  /api/v1/patent/applications/{applicationNumberText}:
    get:
      tags:
      - Patent Search
      operationId: getPatentApplication
      summary: Get Patent Application by Application Number
      description: Retrieve full details for a specific patent application.
      parameters:
      - name: applicationNumberText
        in: path
        required: true
        description: Patent application number (e.g., 14412875)
        schema:
          type: string
      responses:
        '200':
          description: Patent application details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PatentApplicationData'
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v1/patent/applications/{applicationNumberText}/meta-data:
    get:
      tags:
      - Patent Search
      operationId: getPatentApplicationMetaData
      summary: Get Patent Application Metadata
      description: Retrieve metadata for a specific patent application.
      parameters:
      - name: applicationNumberText
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Patent application metadata
          content:
            application/json:
              schema:
                type: object
        '403':
          description: Forbidden
        '404':
          description: Not Found
  /api/v1/patent/applications/{applicationNumberText}/adjustment:
    get:
      tags:
      - Patent Search
      operationId: getPatentApplicationAdjustment
      summary: Get Patent Application Patent Term Adjustment
      parameters:
      - name: applicationNumberText
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Patent term adjustment information
          content:
            application/json:
              schema:
                type: object
        '404':
          description: Not Found
  /api/v1/patent/applications/{applicationNumberText}/assignment:
    get:
      tags:
      - Patent Search
      operationId: getPatentApplicationAssignment
      summary: Get Patent Application Assignment Data
      parameters:
      - name: applicationNumberText
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Assignment data
          content:
            application/json:
              schema:
                type: object
        '404':
          description: Not Found
  /api/v1/patent/applications/{applicationNumberText}/attorney:
    get:
      tags:
      - Patent Search
      operationId: getPatentApplicationAttorney
      summary: Get Patent Application Attorney Information
      parameters:
      - name: applicationNumberText
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Attorney information
          content:
            application/json:
              schema:
                type: object
        '404':
          description: Not Found
  /api/v1/patent/applications/{applicationNumberText}/continuity:
    get:
      tags:
      - Patent Search
      operationId: getPatentApplicationContinuity
      summary: Get Patent Application Continuity Data
      parameters:
      - name: applicationNumberText
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Continuity data
          content:
            application/json:
              schema:
                type: object
        '404':
          description: Not Found
  /api/v1/patent/applications/{applicationNumberText}/foreign-priority:
    get:
      tags:
      - Patent Search
      operationId: getPatentApplicationForeignPriority
      summary: Get Patent Application Foreign Priority
      parameters:
      - name: applicationNumberText
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Foreign priority data
          content:
            application/json:
              schema:
                type: object
        '404':
          description: Not Found
  /api/v1/patent/applications/{applicationNumberText}/transactions:
    get:
      tags:
      - Patent Search
      operationId: getPatentApplicationTransactions
      summary: Get Patent Application Transaction History
      parameters:
      - name: applicationNumberText
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Transaction history
          content:
            application/json:
              schema:
                type: object
        '404':
          description: Not Found
  /api/v1/patent/applications/{applicationNumberText}/documents:
    get:
      tags:
      - Patent Search
      operationId: getPatentApplicationDocuments
      summary: Get Patent Application Documents
      parameters:
      - name: applicationNumberText
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Document list
          content:
            application/json:
              schema:
                type: object
        '404':
          description: Not Found
  /api/v1/patent/status-codes:
    get:
      tags:
      - Patent Search
      operationId: getPatentStatusCodes
      summary: Get Patent Application Status Codes
      description: Retrieve the list of all patent application status codes and their descriptions.
      responses:
        '200':
          description: Status codes list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
components:
  schemas:
    PatentApplicationData:
      type: object
      description: Patent application record
      properties:
        applicationNumberText:
          type: string
          description: Patent application number
        applicationTypeLabelName:
          type: string
          description: Type of patent application (Utility, Design, Plant, etc.)
        applicationStatusCode:
          type: string
          description: Current status code
        applicationStatusDate:
          type: string
          format: date
          description: Date of current status
        applicationFilingDate:
          type: string
          format: date
          description: Date application was filed
        grantDate:
          type: string
          format: date
          description: Date patent was granted (if granted)
        patentNumber:
          type: string
          description: Issued patent number
        inventionTitle:
          type: string
          description: Title of the invention
        inventors:
          type: array
          items:
            type: object
            properties:
              inventorNameText:
                type: string
              inventorCity:
                type: string
              inventorStateCode:
                type: string
              inventorCountryCode:
                type: string
        applicants:
          type: array
          items:
            type: object
            properties:
              applicantNameText:
                type: string
              applicantCity:
                type: string
              applicantStateCode:
                type: string
              applicantCountryCode:
                type: string
        attorneys:
          type: array
          items:
            type: object
            properties:
              registrationNumber:
                type: string
              fullName:
                type: string
        classifications:
          type: array
          items:
            type: object
            properties:
              classificationSymbolText:
                type: string
              uspcSymbolText:
                type: string
    PatentDataResponse:
      type: object
      description: Response from patent application search
      properties:
        count:
          type: integer
          description: Total number of matching records
        patents:
          type: array
          items:
            $ref: '#/components/schemas/PatentApplicationData'
        requestIdentifier:
          type: string
          description: Unique request identifier for support
    PatentSearchRequest:
      type: object
      description: Request body for patent application search
      properties:
        q:
          type: string
          description: Search query string with boolean operator support
        dateRangeData:
          type: object
          properties:
            startDate:
              type: string
              format: date
              description: Start date for filtering (YYYY-MM-DD)
            endDate:
              type: string
              format: date
              description: End date for filtering (YYYY-MM-DD)
            fieldName:
              type: string
              description: Field to apply the date filter to
        start:
          type: integer
          description: Pagination offset
          default: 0
        rows:
          type: integer
          description: Number of results (max 25)
          default: 25
          maximum: 25
        sort:
          type: string
          description: Sort field and direction (e.g., "applicationFilingDate desc")
        fields:
          type: array
          items:
            type: string
          description: Specific fields to return
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-KEY