Skip to content

USPTO ODP Python Client

uspto_odp_python_logo

Simple, lightweight Python client library

Access the USPTO Open Data Portal (ODP) API with ease

Overview

The USPTO ODP Python Client is a simple, easy-to-use library for accessing the USPTO Open Data Portal API. This library provides a clean, async interface to interact with all available USPTO endpoints, including:

  • Patent Applications - Search, metadata, documents, assignments, and more
  • Status Codes - Query patent application status codes
  • Petition Decisions - Access petition decision records
  • PTAB Trials - Proceedings, decisions, and documents
  • PTAB Appeals - Appeal decisions
  • PTAB Interferences - Interference decisions
  • Bulk Datasets - Search and download bulk dataset products

Key Features

  • โœ… 100% API Coverage - All 53 API methods fully supported
  • ๐Ÿš€ Async/Await - Built on aiohttp for high-performance async operations
  • ๐Ÿ“ฆ Type Hints - Full type annotations for better IDE support
  • ๐Ÿ”’ Error Handling - Comprehensive error handling with custom exceptions
  • ๐Ÿ“š Well Documented - Extensive docstrings and examples
  • ๐Ÿงช Fully Tested - Comprehensive unit and integration tests

Quick Example

import asyncio
from uspto_odp import USPTOClient

async def main():
    # Initialize the client
    client = USPTOClient(api_key="your-api-key-here")

    # Search for patent applications
    results = await client.search_patent_applications_get(
        q="applicationNumberText:14412875"
    )

    # Get patent metadata
    metadata = await client.get_app_metadata("14412875")

    print(f"Application: {metadata.application_number}")

    # Clean up
    await client.session.close()

asyncio.run(main())

Installation

pip install uspto_odp

For development:

pip install -e ".[dev]"

Requirements

Documentation

Endpoint Categories

Browse detailed documentation for each endpoint category:

License

This project is licensed under the MIT License. See the LICENSE file for details.