Initial commit
This commit is contained in:
394
skills/uspto-database/references/additional_apis.md
Normal file
394
skills/uspto-database/references/additional_apis.md
Normal file
@@ -0,0 +1,394 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user