Clients
clients.bulk_data - Client for USPTO bulk data API
This module provides a client for interacting with the USPTO Open Data Portal (ODP) Bulk Data API. It allows you to search for and download bulk data products.
- class pyUSPTO.clients.bulk_data.BulkDataClient(api_key=None, base_url=None, config=None)[source]
Bases:
BaseUSPTOClient[BulkDataResponse]Client for interacting with the USPTO bulk data API.
- ENDPOINTS = {'download_file': '{file_download_uri}', 'product_by_id': 'products/{product_id}', 'products_search': 'products/search'}
- __init__(api_key=None, base_url=None, config=None)[source]
Initialize the BulkDataClient.
- Parameters:
api_key (
Optional[str]) – Optional API key for authenticationbase_url (
Optional[str]) – The base URL of the API, defaults to config.bulk_data_base_url or “https://api.uspto.gov/api/v1/datasets”config (
Optional[USPTOConfig]) – Optional USPTOConfig instance
- get_product_by_id(product_id, file_data_from_date=None, file_data_to_date=None, offset=None, limit=None, include_files=None, latest=None)[source]
Get a specific bulk data product by ID.
- Parameters:
product_id (
str) – The product identifierfile_data_from_date (
Optional[str]) – Filter files by data from date (YYYY-MM-DD)file_data_to_date (
Optional[str]) – Filter files by data to date (YYYY-MM-DD)offset (
Optional[int]) – Number of product file records to skiplimit (
Optional[int]) – Number of product file records to collectinclude_files (
Optional[bool]) – Whether to include product files in the responselatest (
Optional[bool]) – Whether to return only the latest product file
- Return type:
- Returns:
BulkDataProduct object containing the product data
- get_products(params=None)[source]
Get a list of bulk data products.
This method is deprecated. Use search_products instead.
- paginate_products(**kwargs)[source]
Paginate through all products matching the search criteria.
- Parameters:
**kwargs (
Any) – Keyword arguments to pass to search_products- Yields:
BulkDataProduct objects
- Return type:
- search_products(query=None, product_title=None, product_description=None, product_short_name=None, from_date=None, to_date=None, categories=None, labels=None, datasets=None, file_types=None, offset=None, limit=None, include_files=None, latest=None, facets=None)[source]
Search for products with various filters.
- Parameters:
product_description (
Optional[str]) – Filter by product descriptionproduct_short_name (
Optional[str]) – Filter by product identifier (short name)from_date (
Optional[str]) – Filter products with data from this date (YYYY-MM-DD)to_date (
Optional[str]) – Filter products with data until this date (YYYY-MM-DD)categories (
Optional[List[str]]) – Filter by dataset categorieslimit (
Optional[int]) – Number of product records to collectinclude_files (
Optional[bool]) – Whether to include product files in the responselatest (
Optional[bool]) – Whether to return only the latest product file for each productfacets (
Optional[bool]) – Whether to enable facets in the response
- Return type:
- Returns:
BulkDataResponse object containing matching products
clients.patent_data - Client for USPTO patent data API
This module provides a client for interacting with the USPTO Patent Data API. It allows you to search for and retrieve patent application data.
- class pyUSPTO.clients.patent_data.PatentDataClient(api_key=None, base_url=None, config=None)[source]
Bases:
BaseUSPTOClient[PatentDataResponse]Client for interacting with the USPTO Patent Data API.
- ENDPOINTS = {'application_adjustment': 'applications/{application_number}/adjustment', 'application_assignment': 'applications/{application_number}/assignment', 'application_associated_documents': 'applications/{application_number}/associated-documents', 'application_attorney': 'applications/{application_number}/attorney', 'application_by_number': 'applications/{application_number}', 'application_continuity': 'applications/{application_number}/continuity', 'application_documents': 'applications/{application_number}/documents', 'application_foreign_priority': 'applications/{application_number}/foreign-priority', 'application_metadata': 'applications/{application_number}/meta-data', 'application_transactions': 'applications/{application_number}/transactions', 'applications_search': 'applications/search', 'applications_search_download': 'applications/search/download', 'download_document': 'download/applications/{application_number}/{document_id}', 'status_codes': 'status-codes'}
- __init__(api_key=None, base_url=None, config=None)[source]
Initialize the PatentDataClient.
- Parameters:
api_key (
Optional[str]) – Optional API key for authenticationbase_url (
Optional[str]) – The base URL of the API, defaults to config.patent_data_base_url or “https://api.uspto.gov/api/v1/patent”config (
Optional[USPTOConfig]) – Optional USPTOConfig instance
- download_application_document(application_number, document_id, destination)[source]
Download a document for a patent application.
- download_patent_applications(params=None, format='json')[source]
Download patent data with specified format.
- download_patent_applications_post(download_request)[source]
Download patent data using POST method with JSON payload.
- get_application_adjustment(application_number)[source]
Get patent term adjustment data for an application.
- Parameters:
application_number (
str) – The application number- Return type:
- Returns:
PatentDataResponse object containing the adjustment data
- get_application_assignment(application_number)[source]
Get assignment data for an application.
- Parameters:
application_number (
str) – The application number- Return type:
- Returns:
PatentDataResponse object containing the assignment data
- get_application_associated_documents(application_number)[source]
Get associated documents metadata for an application.
- Parameters:
application_number (
str) – The application number- Return type:
- Returns:
PatentDataResponse object containing the associated documents metadata
- get_application_attorney(application_number)[source]
Get attorney/agent data for an application.
- Parameters:
application_number (
str) – The application number- Return type:
- Returns:
PatentDataResponse object containing the attorney data
- get_application_continuity(application_number)[source]
Get continuity data for an application.
- Parameters:
application_number (
str) – The application number- Return type:
- Returns:
PatentDataResponse object containing the continuity data
- get_application_documents(application_number)[source]
Get document details for an application.
- Parameters:
application_number (
str) – The application number- Return type:
- Returns:
PatentDataResponse object containing document details
- get_application_foreign_priority(application_number)[source]
Get foreign priority data for an application.
- Parameters:
application_number (
str) – The application number- Return type:
- Returns:
PatentDataResponse object containing the foreign priority data
- get_application_metadata(application_number)[source]
Get metadata for a specific patent application.
- Parameters:
application_number (
str) – The application number- Return type:
- Returns:
PatentDataResponse object containing the application metadata
- get_application_transactions(application_number)[source]
Get transaction data for an application.
- Parameters:
application_number (
str) – The application number- Return type:
- Returns:
PatentDataResponse object containing the transaction data
- get_patent_applications(params=None)[source]
Get a list of patent applications using the search endpoint.
- Parameters:
params (
Optional[Dict[str,Any]]) – Optional query parameters including: - q: Search query string - sort: Field to sort by followed by sort order - offset: Position in dataset to start from - limit: Number of results to return - facets: List of fields to facet upon - fields: Fields to include in response - filters: Field filters - rangeFilters: Range filters- Return type:
- Returns:
PatentDataResponse object containing the API response
- get_patent_by_application_number(application_number)[source]
Get a specific patent by application number.
- Parameters:
application_number (
str) – The application number- Return type:
- Returns:
PatentFileWrapper object containing the patent data
- paginate_patents(**kwargs)[source]
Paginate through all patents matching the search criteria.
- Parameters:
**kwargs (
Any) – Keyword arguments to pass to search_patents- Yields:
PatentFileWrapper objects
- Return type:
- search_patent_applications_post(search_request)[source]
Search patent applications using POST method with JSON payload.
- Parameters:
search_request (
Dict[str,Any]) – JSON payload with search parameters including: - q: Search query string - filters: Array of filter objects - rangeFilters: Array of range filter objects - sort: Array of sort objects - fields: Array of field names to include - pagination: Pagination object - facets: Array of facet field names- Return type:
- Returns:
PatentDataResponse object containing the API response
- search_patent_status_codes_post(search_request)[source]
Search patent status codes using POST method with JSON payload.
- search_patents(query=None, application_number=None, patent_number=None, inventor_name=None, applicant_name=None, assignee_name=None, filing_date_from=None, filing_date_to=None, grant_date_from=None, grant_date_to=None, classification=None, limit=25, offset=0)[source]
Search for patents with various filters.
- Parameters:
application_number (
Optional[str]) – Filter by application numberfiling_date_from (
Optional[str]) – Filter by filing date from (YYYY-MM-DD)filing_date_to (
Optional[str]) – Filter by filing date to (YYYY-MM-DD)grant_date_from (
Optional[str]) – Filter by grant date from (YYYY-MM-DD)grant_date_to (
Optional[str]) – Filter by grant date to (YYYY-MM-DD)classification (
Optional[str]) – Filter by CPC classificationlimit (
Optional[int]) – Number of results to return (default 25)offset (
Optional[int]) – Position in dataset to start from (default 0)
- Return type:
- Returns:
PatentDataResponse object containing matching patents