Skip to main content

Python client for accessing USPTO OPD APIs

Project description

pyUSPTO

PyPI version License: MIT Python 3.10+

A Python client library for interacting with the USPTO APIs.

This package provides clients for interacting with both the USPTO Bulk Data API and the USPTO Patent Data API. It features comprehensive type hints and docstrings for improved developer experience.

Quick Start

Installation

Requirements: Python ≥3.10

pip install pyUSPTO

Or install from source:

git clone https://github.com/DunlapCoddingPC/pyUSPTO.git
cd pyUSPTO
pip install -e .

Configuration Options

There are multiple ways to configure the USPTO API clients:

from pyUSPTO import PatentDataClient
from pyUSPTO.config import USPTOConfig
import os

# Method 1: Direct API key initialization
client1 = PatentDataClient(api_key="your_api_key_here")

# Method 2: Using USPTOConfig with explicit parameters
config = USPTOConfig(
    api_key="your_api_key_here",
    bulk_data_base_url="https://api.uspto.gov/api/v1/datasets",
    patent_data_base_url="https://api.uspto.gov/api/v1/patent"
)
client2 = PatentDataClient(config=config)

# Method 3: Using environment variables (recommended for production)
os.environ["USPTO_API_KEY"] = "your_api_key_here"
config_from_env = USPTOConfig.from_env()
client3 = PatentDataClient(config=config_from_env)

Patent Data API

# Search for applications by inventor name
inventor_search = client1.search_applications(inventor_name_q="Smith")
print(f"Found {inventor_search.count} applications with 'Smith' as inventor")
# > Found 104926 applications with 'Smith' as inventor.

Features

  • Access to both USPTO Bulk Data API and Patent Data API
  • Search for products and patents using various filters
  • Download files and documents from the APIs

Data Models

The library uses Python dataclasses to represent API responses. All data models include proper type annotations for attributes and methods, making them fully compatible with static type checkers.

Bulk Data API

  • BulkDataResponse: Top-level response from the API
  • BulkDataProduct: Information about a specific product
  • ProductFileBag: Container for file data elements
  • FileData: Information about an individual file

Patent Data API

  • PatentDataResponse: Top-level response from the API
  • PatentFileWrapper: Information about a patent application
  • ApplicationMetaData: Metadata about a patent application
  • Address: Represents an address in the patent data
  • Person, Applicant, Inventor, Attorney: Person-related data classes
  • Assignment, Assignor, Assignee: Assignment-related data classes
  • Continuity, ParentContinuity, ChildContinuity: Continuity-related data classes
  • PatentTermAdjustmentData: Patent term adjustment information
  • And many more specialized classes for different aspects of patent data

License

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

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines on how to contribute to this project.


For badges: You'll need to add these to the top of your README after the title:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyuspto-0.1.2.tar.gz (8.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyuspto-0.1.2-py3-none-any.whl (32.8 kB view details)

Uploaded Python 3

File details

Details for the file pyuspto-0.1.2.tar.gz.

File metadata

  • Download URL: pyuspto-0.1.2.tar.gz
  • Upload date:
  • Size: 8.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyuspto-0.1.2.tar.gz
Algorithm Hash digest
SHA256 5b10af97d11d479567244744d37b4139690c974031fe937afdea3bd698359baa
MD5 5dca296b6786f496b7502b75865dc196
BLAKE2b-256 cb77ae353ef92d8d8f7f83d4e5cf0d47cc0fb62557c41c2c177ae206861fbb22

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyuspto-0.1.2.tar.gz:

Publisher: publish-to-test-pypi.yml on DunlapCoddingPC/pyUSPTO

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyuspto-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: pyuspto-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 32.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyuspto-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 cc9f7b39adad3869d6d4468123fcf233078cf85e7834ab03c8fe5fe2d0070b20
MD5 7734aab330ba5d845d1d0686930db80a
BLAKE2b-256 be66c0980c624d82fe78d030de39bf1707e632bee83d7ebdd89ab963b69f5be8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyuspto-0.1.2-py3-none-any.whl:

Publisher: publish-to-test-pypi.yml on DunlapCoddingPC/pyUSPTO

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page