USPTO Bulk Data Storage System (BDSS) API

ODP Bulk Data API exposing the Bulk Data Storage System (BDSS) — SearchBulkProducts and GetBulkProduct operations for downloading patent and trademark bulk datasets (bibliographic, assignment, classification, office action weekly archives, etc.) as Entire Datasets (10-year increments) or Delta Datasets (daily increments) in XML/JSON. Methods support product lookup but do not allow general filter/limit/offset/order-by database queries.

OpenAPI Specification

uspto-bulk-data-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: USPTO Bulk Data Storage System (BDSS) API
  version: '1.0'
  description: |
    USPTO ODP Bulk Data API. Exposes the Bulk Data Storage System (BDSS) — search and download
    patent and trademark bulk datasets (bibliographic, assignment, classification, office-action
    weekly archives) as Entire Datasets (10-year increments) or Delta Datasets (daily increments)
    in XML/JSON. Does not support general filter/limit/offset/order_by database queries.
  contact: {name: USPTO API Help, email: APIhelp@uspto.gov}
servers:
- url: https://api.uspto.gov
  description: USPTO Open Data Portal
security:
- ApiKeyAuth: []
paths:
  /api/v1/datasets/products/search:
    get:
      summary: Search Bulk Products
      operationId: searchBulkProducts
      parameters:
      - {name: q, in: query, schema: {type: string}, description: Free-text query}
      - {name: productIdentifier, in: query, schema: {type: string}}
      - {name: categoryCode, in: query, schema: {type: string, enum: [PATENT, TRADEMARK, OACT]}}
      - {name: fromDate, in: query, schema: {type: string, format: date}}
      - {name: toDate, in: query, schema: {type: string, format: date}}
      - {name: offset, in: query, schema: {type: integer}}
      - {name: limit, in: query, schema: {type: integer}}
      responses:
        '200':
          description: Product search results
          content:
            application/json:
              schema: {$ref: '#/components/schemas/BulkProductSearchResponse'}
  /api/v1/datasets/products/{productIdentifier}:
    get:
      summary: Get Bulk Product
      operationId: getBulkProduct
      parameters:
      - {name: productIdentifier, in: path, required: true, schema: {type: string}}
      - {name: fromDate, in: query, schema: {type: string, format: date}}
      - {name: toDate, in: query, schema: {type: string, format: date}}
      responses:
        '200':
          description: Product metadata with file list
          content:
            application/json:
              schema: {$ref: '#/components/schemas/BulkProduct'}
  /api/v1/datasets/products/{productIdentifier}/files/{fileName}:
    get:
      summary: Download Bulk Product File
      operationId: downloadBulkProductFile
      parameters:
      - {name: productIdentifier, in: path, required: true, schema: {type: string}}
      - {name: fileName, in: path, required: true, schema: {type: string}}
      responses:
        '200':
          description: File binary
          content:
            application/octet-stream:
              schema: {type: string, format: binary}
components:
  securitySchemes:
    ApiKeyAuth: {type: apiKey, in: header, name: X-API-KEY}
  schemas:
    BulkProduct:
      type: object
      properties:
        productIdentifier: {type: string}
        productTitleText: {type: string}
        productDescriptionText: {type: string}
        productFrequencyText: {type: string}
        productFromDate: {type: string, format: date}
        productToDate: {type: string, format: date}
        mimeTypeIdentifierBag: {type: array, items: {type: string}}
        productFileBag:
          type: array
          items:
            type: object
            properties:
              fileName: {type: string}
              fileSize: {type: integer}
              fileDate: {type: string, format: date}
              fileDownloadURI: {type: string, format: uri}
    BulkProductSearchResponse:
      type: object
      properties:
        count: {type: integer}
        bulkDataProductBag:
          type: array
          items: {$ref: '#/components/schemas/BulkProduct'}