USPTO Patents API

Patent search and retrieval

OpenAPI Specification

uspto-patents-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: USPTO Patent & Trademark Assignments Patents API
  description: The United States Patent and Trademark Office (USPTO) provides REST APIs for patent search, PTAB trial proceedings, trademark status lookup, and patent citation data. APIs are hosted at developer.uspto.gov and data.uspto.gov. An ODP API key is required for most endpoints.
  version: '3.0'
  contact:
    name: USPTO Open Data Portal
    url: https://developer.uspto.gov/
  license:
    name: Public Domain (U.S. Government Work)
    url: https://www.usa.gov/government-works
servers:
- url: https://data.uspto.gov/api/v1
  description: USPTO Open Data Portal API v1
- url: https://developer.uspto.gov/ds-api
  description: USPTO Data Set API (legacy)
security:
- ApiKeyHeader: []
tags:
- name: Patents
  description: Patent search and retrieval
paths:
  /patent/applications/search:
    get:
      operationId: searchPatentApplications
      summary: Search patent applications
      description: Searches USPTO patent applications by keyword, inventor, assignee, filing date, classification code, and other criteria. Returns application metadata for published and granted patents.
      tags:
      - Patents
      parameters:
      - name: query
        in: query
        required: false
        description: Keyword search query
        schema:
          type: string
        example: autonomous vehicle lidar sensor
      - name: inventor
        in: query
        schema:
          type: string
        description: Inventor name (last name, first name)
      - name: assignee
        in: query
        schema:
          type: string
        description: Assignee/applicant company name
      - name: filingDateStart
        in: query
        schema:
          type: string
          format: date
        description: Filing date range start
      - name: filingDateEnd
        in: query
        schema:
          type: string
          format: date
        description: Filing date range end
      - name: cpcClassification
        in: query
        schema:
          type: string
        description: CPC (Cooperative Patent Classification) code
        example: B60W2050/0001
      - name: patentType
        in: query
        schema:
          type: string
          enum:
          - UTILITY
          - DESIGN
          - PLANT
          - REISSUE
        default: UTILITY
      - name: status
        in: query
        schema:
          type: string
          enum:
          - PENDING
          - GRANTED
          - ABANDONED
          - EXPIRED
      - name: offset
        in: query
        schema:
          type: integer
          default: 0
      - name: limit
        in: query
        schema:
          type: integer
          default: 25
          maximum: 100
      responses:
        '200':
          description: Patent application search results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PatentSearchResponse'
        '401':
          description: Invalid or missing API key
        '429':
          description: Rate limit exceeded
  /patent/applications/{applicationNumber}:
    get:
      operationId: getPatentApplication
      summary: Get patent application details
      description: Returns full metadata for a specific patent application including claims, abstract, inventors, assignees, filing history, and prosecution history.
      tags:
      - Patents
      parameters:
      - name: applicationNumber
        in: path
        required: true
        description: USPTO application number (e.g., 16123456)
        schema:
          type: string
        example: '16123456'
      responses:
        '200':
          description: Patent application details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PatentApplication'
        '404':
          description: Application not found
  /patent/grants/{patentNumber}:
    get:
      operationId: getGrantedPatent
      summary: Get a granted patent
      description: Returns full details for a granted United States patent by patent number.
      tags:
      - Patents
      parameters:
      - name: patentNumber
        in: path
        required: true
        description: USPTO patent number (without US prefix)
        schema:
          type: string
        example: '10234567'
      responses:
        '200':
          description: Granted patent details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GrantedPatent'
        '404':
          description: Patent not found
components:
  schemas:
    PatentSummary:
      type: object
      properties:
        applicationNumber:
          type: string
        patentNumber:
          type: string
          nullable: true
        title:
          type: string
        filingDate:
          type: string
          format: date
        grantDate:
          type: string
          format: date
          nullable: true
        status:
          type: string
          enum:
          - PENDING
          - GRANTED
          - ABANDONED
          - EXPIRED
        patentType:
          type: string
        inventors:
          type: array
          items:
            type: object
            properties:
              firstName:
                type: string
              lastName:
                type: string
        assignees:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              country:
                type: string
        cpcClassifications:
          type: array
          items:
            type: string
    PatentApplication:
      type: object
      properties:
        applicationNumber:
          type: string
        title:
          type: string
        abstract:
          type: string
        filingDate:
          type: string
          format: date
        publicationDate:
          type: string
          format: date
          nullable: true
        status:
          type: string
        patentType:
          type: string
        inventors:
          type: array
          items:
            $ref: '#/components/schemas/Inventor'
        assignees:
          type: array
          items:
            $ref: '#/components/schemas/Assignee'
        cpcClassifications:
          type: array
          items:
            $ref: '#/components/schemas/Classification'
        claims:
          type: array
          items:
            type: object
            properties:
              claimNumber:
                type: integer
              claimType:
                type: string
                enum:
                - INDEPENDENT
                - DEPENDENT
              claimText:
                type: string
        prosecutionHistory:
          type: array
          items:
            $ref: '#/components/schemas/ProsecutionEvent'
    Assignee:
      type: object
      properties:
        name:
          type: string
        entityType:
          type: string
          enum:
          - INDIVIDUAL
          - COMPANY
          - UNIVERSITY
          - GOVERNMENT
        city:
          type: string
        state:
          type: string
        country:
          type: string
    PatentSearchResponse:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/PatentSummary'
        totalResults:
          type: integer
        offset:
          type: integer
        limit:
          type: integer
    Inventor:
      type: object
      properties:
        firstName:
          type: string
        lastName:
          type: string
        city:
          type: string
        state:
          type: string
        country:
          type: string
    ProsecutionEvent:
      type: object
      properties:
        date:
          type: string
          format: date
        eventCode:
          type: string
        eventDescription:
          type: string
        documentUrl:
          type: string
          format: uri
    GrantedPatent:
      allOf:
      - $ref: '#/components/schemas/PatentApplication'
      - type: object
        properties:
          patentNumber:
            type: string
          grantDate:
            type: string
            format: date
          expirationDate:
            type: string
            format: date
    Classification:
      type: object
      properties:
        code:
          type: string
        description:
          type: string
        classificationType:
          type: string
          enum:
          - CPC
          - USPC
          - IPC
  securitySchemes:
    ApiKeyHeader:
      type: apiKey
      in: header
      name: X-API-KEY
      description: USPTO Open Data Portal API key