Petition Decisions

models.petition_decisions - Data models for USPTO Final Petition Decisions API.

This module provides data models, primarily using frozen dataclasses, for representing responses from the USPTO Final Petition Decisions API. These models cover petition decision records, associated documents, and download options.

class pyUSPTO.models.petition_decisions.DecisionTypeCode(value)[source]

Bases: Enum

Represents the type of decision made on a petition.

The only current value possible is “c” which indicates DENIED. Hopefully the USPTO will give access to others in the future.

C = 'DENIED'
DENIED = 'DENIED'
class pyUSPTO.models.petition_decisions.DocumentDirectionCategory(value)[source]

Bases: Enum

Represents the direction of a document relative to the USPTO.

INCOMING = 'INCOMING'
OUTGOING = 'OUTGOING'
class pyUSPTO.models.petition_decisions.DocumentDownloadOption(mime_type_identifier=None, download_url=None, page_total_quantity=None)[source]

Bases: object

Represent a download option for a petition decision document.

mime_type_identifier

The document format type (e.g., “PDF”, “XML”, “MS_WORD”).

download_url

The URL from which the document can be downloaded.

page_total_quantity

The total number of pages in the document (if applicable).

download_url: str | None = None
classmethod from_dict(data)[source]

Create a DocumentDownloadOption instance from a dictionary.

Parameters:

data (dict[str, Any]) – Dictionary containing download option data from API response.

Returns:

An instance of DocumentDownloadOption.

Return type:

DocumentDownloadOption

mime_type_identifier: str | None = None
page_total_quantity: int | None = None
to_dict()[source]

Convert the DocumentDownloadOption instance to a dictionary.

Returns:

Dictionary representation with camelCase keys.

Return type:

Dict[str, Any]

class pyUSPTO.models.petition_decisions.PetitionDecision(petition_decision_record_identifier, application_number_text=None, patent_number=None, decision_date=None, petition_mail_date=None, decision_petition_type_code=None, decision_type_code=None, decision_type_code_description_text=None, final_deciding_office_name=None, first_applicant_name=None, first_inventor_name=None, invention_title=None, first_inventor_to_file_indicator=None, business_entity_status_category=None, customer_number=None, group_art_unit_number=None, technology_center=None, prosecution_status_code=None, prosecution_status_code_description_text=None, action_taken_by_court_name=None, court_action_indicator=None, inventor_bag=<factory>, petition_issue_considered_text_bag=<factory>, statute_bag=<factory>, rule_bag=<factory>, document_bag=<factory>, last_ingestion_datetime=None)[source]

Bases: object

Represent a final petition decision record.

This is the main data model representing a single petition decision from the USPTO Final Petition Decisions API. It contains comprehensive information about the decision, including application details, decision metadata, parties involved, and associated documents.

petition_decision_record_identifier

Unique identifier for the petition decision record.

application_number_text

The USPTO application number.

patent_number

The patent number if the application has been granted.

decision_date

The date the decision was submitted for issuance or mailing.

petition_mail_date

The date the decision was issued or mailed.

decision_petition_type_code

Three-digit code for the petition type.

decision_type_code

Code indicating the decision type (e.g., “C” for DENIED).

decision_type_code_description_text

Description of the decision type.

final_deciding_office_name

The USPTO office that decided the petition.

first_applicant_name

Name of the first applicant.

first_inventor_name

Name of the first inventor (computed from inventor_bag).

invention_title

Title of the invention/application.

first_inventor_to_file_indicator

Whether this is a first-inventor-to-file application.

business_entity_status_category

Entity status (e.g., “Small”, “Micro”, “Regular Undiscounted”).

customer_number

Customer number for correspondence.

group_art_unit_number

The art unit number.

technology_center

The technology center code.

prosecution_status_code

Code for the disposition of the petition.

prosecution_status_code_description_text

Description of the prosecution status.

action_taken_by_court_name

Name of court if court action was taken.

court_action_indicator

Whether court action was taken on the decision.

inventor_bag

List of inventor names.

petition_issue_considered_text_bag

Issues under review in the petition.

statute_bag

Applicable laws under United States Code Title 35.

rule_bag

Applicable rules under Title 37 CFR.

document_bag

Associated documents for this petition decision.

last_ingestion_datetime

The last time the record was ingested/updated.

action_taken_by_court_name: str | None = None
application_number_text: str | None = None
business_entity_status_category: str | None = None
court_action_indicator: bool | None = None
customer_number: int | None = None
decision_date: date | None = None
decision_petition_type_code: int | None = None
decision_type_code: str | None = None
decision_type_code_description_text: str | None = None
document_bag: list[PetitionDecisionDocument]
final_deciding_office_name: str | None = None
first_applicant_name: str | None = None
first_inventor_name: str | None = None
first_inventor_to_file_indicator: bool | None = None
classmethod from_dict(data)[source]

Create a PetitionDecision instance from a dictionary.

Parameters:

data (dict[str, Any]) – Dictionary containing petition decision data from API response.

Returns:

An instance of PetitionDecision.

Return type:

PetitionDecision

group_art_unit_number: str | None = None
invention_title: str | None = None
inventor_bag: list[str]
last_ingestion_datetime: datetime | None = None
patent_number: str | None = None
petition_decision_record_identifier: str
petition_issue_considered_text_bag: list[str]
petition_mail_date: date | None = None
prosecution_status_code: str | None = None
prosecution_status_code_description_text: str | None = None
rule_bag: list[str]
statute_bag: list[str]
technology_center: str | None = None
to_dict()[source]

Convert the PetitionDecision instance to a dictionary.

Returns:

Dictionary representation with camelCase keys.

Return type:

Dict[str, Any]

class pyUSPTO.models.petition_decisions.PetitionDecisionDocument(application_number_text=None, official_date=None, document_identifier=None, document_code=None, document_code_description_text=None, direction_category=None, download_option_bag=<factory>)[source]

Bases: object

Represent a document associated with a petition decision.

application_number_text

The application number associated with the document.

official_date

The official date of the document.

document_identifier

A unique identifier for the document.

document_code

The code identifying the document type.

document_code_description_text

Description of the document code.

direction_category

Whether the document is INCOMING or OUTGOING.

download_option_bag

List of available download options for the document.

application_number_text: str | None = None
direction_category: str | None = None
document_code: str | None = None
document_code_description_text: str | None = None
document_identifier: str | None = None
download_option_bag: list[DocumentDownloadOption]
classmethod from_dict(data)[source]

Create a PetitionDecisionDocument instance from a dictionary.

Parameters:

data (dict[str, Any]) – Dictionary containing document data from API response.

Returns:

An instance of PetitionDecisionDocument.

Return type:

PetitionDecisionDocument

official_date: datetime | None = None
to_dict()[source]

Convert the PetitionDecisionDocument instance to a dictionary.

Returns:

Dictionary representation with camelCase keys.

Return type:

Dict[str, Any]

class pyUSPTO.models.petition_decisions.PetitionDecisionDownloadResponse(petition_decision_data=<factory>)[source]

Bases: object

Response from the Final Petition Decisions API download endpoint.

This is the response format for download queries to the /api/v1/petition/decisions/search/download endpoint when format=json. Note that the structure is slightly different from the search endpoint.

petition_decision_data

List of petition decision records.

classmethod from_dict(data)[source]

Create a PetitionDecisionDownloadResponse instance from a dictionary.

Parameters:

data (dict[str, Any]) – Dictionary containing download API response data.

Returns:

An instance of PetitionDecisionDownloadResponse.

Return type:

PetitionDecisionDownloadResponse

petition_decision_data: list[PetitionDecision]
to_dict()[source]

Convert the PetitionDecisionDownloadResponse instance to a dictionary.

Returns:

Dictionary representation with camelCase keys.

Return type:

Dict[str, Any]

class pyUSPTO.models.petition_decisions.PetitionDecisionResponse(count=0, request_identifier=None, petition_decision_data_bag=<factory>, raw_data=None)[source]

Bases: object

Response from the Final Petition Decisions API search endpoint.

This is the standard response format for search queries to the /api/v1/petition/decisions/search endpoint and the get-by-ID endpoint.

count

The number of petition decisions returned in this response.

request_identifier

A unique identifier for the API request.

petition_decision_data_bag

List of petition decision records.

raw_data

Optional raw JSON data from the API response (for debugging).

count: int = 0
classmethod from_dict(data, include_raw_data=False)[source]

Create a PetitionDecisionResponse instance from a dictionary.

Parameters:
  • data (dict[str, Any]) – Dictionary containing API response data.

  • include_raw_data (bool) – If True, store the raw JSON for debugging.

Returns:

An instance of PetitionDecisionResponse.

Return type:

PetitionDecisionResponse

petition_decision_data_bag: list[PetitionDecision]
raw_data: str | None = None
request_identifier: str | None = None
to_dict()[source]

Convert the PetitionDecisionResponse instance to a dictionary.

Returns:

Dictionary representation with camelCase keys.

Return type:

Dict[str, Any]