9.5 KiB
Additional USPTO APIs Reference
Overview
Beyond patent search, PEDS, and trademarks, USPTO provides specialized APIs for citations, office actions, assignments, litigation, and other patent data.
1. Enriched Citation API
Overview
Provides insights into patent evaluation processes and cited references for the IP5 (USPTO, EPO, JPO, KIPO, CNIPA) and public use.
Versions: v3, v2, v1
Base URL: Access through USPTO Open Data Portal
Purpose
Analyze which references examiners cite during patent examination and how patents cite prior art.
Key Features
- Forward citations - Patents that cite a given patent
- Backward citations - References cited by a patent
- Examiner citations - References cited by examiner vs. applicant
- Citation context - How and why references are cited
Use Cases
- Prior art analysis
- Patent landscape analysis
- Identifying related technologies
- Assessing patent strength based on citations
2. Office Action APIs
2.1 Office Action Text Retrieval API
Version: v1
Purpose
Retrieves complete full-text office action correspondence documents for patent applications.
Features
- Full text of office actions
- Restrictions, rejections, objections
- Examiner amendments
- Search information
Example Use
# Retrieve office action text by application number
def get_office_action_text(app_number, api_key):
"""
Fetch full text of office actions for an application.
Note: Integrate with PEDS to identify which office actions exist.
"""
# API implementation
pass
2.2 Office Action Citations API
Versions: v2, beta v1
Purpose
Provides patent citation data extracted from office actions, showing which references examiners used during examination.
Key Data
- Patent and non-patent literature citations
- Citation context (rejection, information, etc.)
- Examiner search strategies
- Prosecution research dataset
2.3 Office Action Rejection API
Versions: v2, beta v1
Purpose
Details rejection reasons and examination outcomes with bulk rejection data through March 2025.
Rejection Types
- 35 U.S.C. § 102 - Anticipation (lack of novelty)
- 35 U.S.C. § 103 - Obviousness
- 35 U.S.C. § 112 - Enablement, written description, indefiniteness
- 35 U.S.C. § 101 - Subject matter eligibility
Use Cases
- Analyze common rejection reasons
- Identify problematic claim language
- Prepare responses based on historical data
- Portfolio analysis of rejection patterns
2.4 Office Action Weekly Zips API
Version: v1
Purpose
Delivers bulk downloads of full-text office action documents organized by weekly release schedules.
Features
- Weekly archive downloads
- Complete office action text
- Bulk access for large-scale analysis
3. Patent Assignment Search API
Overview
Version: v1.4
Accesses USPTO patent assignment database for ownership records and transfers.
Base URL: https://assignment-api.uspto.gov/patent/
Purpose
Track patent ownership, assignments, security interests, and corporate transactions.
Search Methods
By Patent Number
GET /v1.4/assignment/patent/{patent_number}
By Application Number
GET /v1.4/assignment/application/{application_number}
By Assignee Name
POST /v1.4/assignment/search
{
"criteria": {
"assigneeName": "Company Name"
}
}
Response Format
Returns XML with assignment records similar to trademark assignments:
- Reel/frame numbers
- Conveyance type
- Dates (execution and recorded)
- Assignors and assignees
- Affected patents/applications
Common Uses
def track_patent_ownership(patent_number, api_key):
"""Track ownership history of a patent."""
url = f"https://assignment-api.uspto.gov/patent/v1.4/assignment/patent/{patent_number}"
headers = {"X-Api-Key": api_key}
response = requests.get(url, headers=headers)
if response.status_code == 200:
# Parse XML to extract assignment history
return response.text
return None
def find_company_patents(company_name, api_key):
"""Find patents assigned to a company."""
url = "https://assignment-api.uspto.gov/patent/v1.4/assignment/search"
headers = {"X-Api-Key": api_key}
data = {"criteria": {"assigneeName": company_name}}
response = requests.post(url, headers=headers, json=data)
return response.text
4. PTAB API (Patent Trial and Appeal Board)
Overview
Version: v2
Access to Patent Trial and Appeal Board proceedings data.
Purpose
Retrieve information about:
- Inter partes review (IPR)
- Post-grant review (PGR)
- Covered business method (CBM) review
- Ex parte appeals
Data Available
- Petition information
- Trial decisions
- Final written decisions
- Petitioner and patent owner information
- Claims challenged
- Trial outcomes
Note
Currently migrating to new Open Data Portal. Check current documentation for access details.
5. Patent Litigation Cases API
Overview
Version: v1
Contains 74,623+ district court litigation records covering patent litigation data.
Purpose
Access federal district court patent infringement cases.
Key Data
- Case numbers and filing dates
- Patents asserted
- Parties (plaintiffs and defendants)
- Venues
- Case outcomes
Use Cases
- Litigation risk analysis
- Identify frequently litigated patents
- Track litigation trends
- Analyze venue preferences
- Assess patent enforcement patterns
6. Cancer Moonshot Patent Data Set API
Overview
Version: v1.0.1
Specialized dataset for cancer-related patent discoveries.
Purpose
Search and download patents related to cancer research, treatment, and diagnostics.
Features
- Curated cancer-related patents
- Bulk data download
- Classification by cancer type
- Treatment modality categorization
Use Cases
- Cancer research prior art
- Technology landscape analysis
- Identify research trends
- Licensing opportunities
7. OCE Patent Examination Status/Event Codes APIs
Overview
Version: v1
Provides official descriptions of USPTO status and event codes used in patent examination.
Purpose
Decode transaction codes and status codes found in PEDS and other examination data.
Data Provided
- Status codes - Application status descriptions
- Event codes - Transaction/event descriptions
- Code definitions - Official meanings
Integration
Use with PEDS data to interpret transaction codes:
def get_code_description(code, api_key):
"""Get human-readable description of USPTO code."""
# Fetch from OCE API
pass
def enrich_peds_data(peds_transactions, api_key):
"""Add descriptions to PEDS transaction codes."""
for trans in peds_transactions:
trans['description'] = get_code_description(trans['code'], api_key)
return peds_transactions
API Integration Patterns
Combined Workflow Example
def comprehensive_patent_analysis(patent_number, api_key):
"""
Comprehensive analysis combining multiple APIs.
"""
results = {}
# 1. Get patent details from PatentSearch
results['patent_data'] = search_patent(patent_number, api_key)
# 2. Get examination history from PEDS
results['prosecution'] = get_peds_data(patent_number, api_key)
# 3. Get assignment history
results['assignments'] = get_assignments(patent_number, api_key)
# 4. Get citation data
results['citations'] = get_citations(patent_number, api_key)
# 5. Check litigation history
results['litigation'] = get_litigation(patent_number, api_key)
# 6. Get PTAB challenges
results['ptab'] = get_ptab_proceedings(patent_number, api_key)
return results
Portfolio Analysis Example
def analyze_company_portfolio(company_name, api_key):
"""
Analyze a company's patent portfolio using multiple APIs.
"""
# 1. Find all assigned patents
assignments = find_company_patents(company_name, api_key)
patent_numbers = extract_patent_numbers(assignments)
# 2. Get details for each patent
portfolio = []
for patent_num in patent_numbers:
patent_data = {
'number': patent_num,
'details': search_patent(patent_num, api_key),
'citations': get_citations(patent_num, api_key),
'litigation': get_litigation(patent_num, api_key)
}
portfolio.append(patent_data)
# 3. Aggregate statistics
stats = {
'total_patents': len(portfolio),
'cited_by_count': sum(len(p['citations']) for p in portfolio),
'litigated_count': sum(1 for p in portfolio if p['litigation']),
'technology_areas': aggregate_tech_areas(portfolio)
}
return {'portfolio': portfolio, 'statistics': stats}
Best Practices
- API Key Management - Use environment variables, never hardcode
- Rate Limiting - Implement exponential backoff for all APIs
- Caching - Cache API responses to minimize redundant calls
- Error Handling - Gracefully handle API errors and missing data
- Data Validation - Validate input formats before API calls
- Combining APIs - Use appropriate APIs together for comprehensive analysis
- Documentation - Keep track of API versions and changes
API Key Registration
All APIs require registration at: https://account.uspto.gov/api-manager/
Single API key works across most USPTO APIs.
Resources
- Developer Portal: https://developer.uspto.gov/
- Open Data Portal: https://data.uspto.gov/
- API Catalog: https://developer.uspto.gov/api-catalog
- Swagger Docs: Available for individual APIs