395 lines
9.5 KiB
Markdown
395 lines
9.5 KiB
Markdown
# 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
|
|
|
|
```python
|
|
# 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
|
|
|
|
```python
|
|
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:
|
|
|
|
```python
|
|
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
|
|
|
|
```python
|
|
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
|
|
|
|
```python
|
|
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
|
|
|
|
1. **API Key Management** - Use environment variables, never hardcode
|
|
2. **Rate Limiting** - Implement exponential backoff for all APIs
|
|
3. **Caching** - Cache API responses to minimize redundant calls
|
|
4. **Error Handling** - Gracefully handle API errors and missing data
|
|
5. **Data Validation** - Validate input formats before API calls
|
|
6. **Combining APIs** - Use appropriate APIs together for comprehensive analysis
|
|
7. **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
|