uspto-database

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

USPTO Database

USPTO数据库

Overview

概述

USPTO provides specialized APIs for patent and trademark data. Search patents by keywords/inventors/assignees, retrieve examination history via PEDS, track assignments, analyze citations and office actions, access TSDR for trademarks, for IP analysis and prior art searches.
USPTO提供用于专利和商标数据的专用API。可通过关键词/发明人/权利人检索专利,通过PEDS获取审查历史,追踪权属转让,分析引用和审查意见,访问TSDR获取商标数据,以支持知识产权分析和现有技术检索。

When to Use This Skill

何时使用本技能

This skill should be used when:
  • Patent Search: Finding patents by keywords, inventors, assignees, classifications, or dates
  • Patent Details: Retrieving full patent data including claims, abstracts, citations
  • Trademark Search: Looking up trademarks by serial or registration number
  • Trademark Status: Checking trademark status, ownership, and prosecution history
  • Examination History: Accessing patent prosecution data from PEDS (Patent Examination Data System)
  • Office Actions: Retrieving office action text, citations, and rejections
  • Assignments: Tracking patent/trademark ownership transfers
  • Citations: Analyzing patent citations (forward and backward)
  • Litigation: Accessing patent litigation records
  • Portfolio Analysis: Analyzing patent/trademark portfolios for companies or inventors
在以下场景中可使用本技能:
  • 专利检索:通过关键词、发明人、权利人、分类号或日期查找专利
  • 专利详情:获取包含权利要求、摘要、引用信息的完整专利数据
  • 商标检索:通过序列号或注册号查询商标
  • 商标状态:查看商标状态、权属和审查历史
  • 审查历史:从PEDS(专利审查数据系统)获取专利审查数据
  • 审查意见:获取审查意见文本、引用文献和驳回理由
  • 权属转让:追踪专利/商标的权属变更
  • 引用分析:分析专利的正向和反向引用
  • 诉讼信息:获取专利诉讼记录
  • 组合分析:分析企业或发明人的专利/商标组合

USPTO API Ecosystem

USPTO API生态系统

The USPTO provides multiple specialized APIs for different data needs:
USPTO针对不同的数据需求提供了多个专用API:

Core APIs

核心API

  1. PatentSearch API - Modern ElasticSearch-based patent search (replaced legacy PatentsView in May 2025)
    • Search patents by keywords, inventors, assignees, classifications, dates
    • Access to patent data through June 30, 2025
    • 45 requests/minute rate limit
    • Base URL:
      https://search.patentsview.org/api/v1/
  2. PEDS (Patent Examination Data System) - Patent examination history
    • Application status and transaction history from 1981-present
    • Office action dates and examination events
    • Use
      uspto-opendata-python
      Python library
    • Replaced: PAIR Bulk Data (PBD) - decommissioned
  3. TSDR (Trademark Status & Document Retrieval) - Trademark data
    • Trademark status, ownership, prosecution history
    • Search by serial or registration number
    • Base URL:
      https://tsdrapi.uspto.gov/ts/cd/
  1. PatentSearch API - 基于ElasticSearch的现代专利检索API(2025年5月替代旧版PatentsView)
    • 通过关键词、发明人、权利人、分类号、日期检索专利
    • 数据覆盖至2025年6月30日
    • 速率限制:45次请求/分钟
    • 基础URL
      https://search.patentsview.org/api/v1/
  2. PEDS(专利审查数据系统) - 专利审查历史查询
    • 提供1981年至今的申请状态和交易历史
    • 包含审查意见日期和审查事件
    • 可使用
      uspto-opendata-python
      Python库
    • 替代方案:PAIR批量数据(PBD)已停用
  3. TSDR(商标状态与文档检索系统) - 商标数据访问
    • 提供商标状态、权属和审查历史
    • 通过序列号或注册号检索
    • 基础URL
      https://tsdrapi.uspto.gov/ts/cd/

Additional APIs

附加API

  1. Patent Assignment Search - Ownership records and transfers
  2. Trademark Assignment Search - Trademark ownership changes
  3. Enriched Citation API - Patent citation analysis
  4. Office Action Text Retrieval - Full text of office actions
  5. Office Action Citations - Citations from office actions
  6. Office Action Rejection - Rejection reasons and types
  7. PTAB API - Patent Trial and Appeal Board proceedings
  8. Patent Litigation Cases - Federal district court litigation data
  9. Cancer Moonshot Data Set - Cancer-related patents
  1. 专利权属转让检索 - 权属记录和变更追踪
  2. 商标权属转让检索 - 商标权属变更查询
  3. 增强引用API - 专利引用分析
  4. 审查意见文本检索 - 获取审查意见全文
  5. 审查意见引用检索 - 获取审查意见中的引用文献
  6. 审查意见驳回检索 - 获取驳回理由和类型
  7. PTAB API - 专利审判与上诉委员会程序数据
  8. 专利诉讼案件API - 联邦地区法院诉讼数据
  9. 癌症登月数据集 - 癌症相关专利数据

Quick Start

快速开始

API Key Registration

API密钥注册

All USPTO APIs require an API key. Register at: https://account.uspto.gov/api-manager/
Set the API key as an environment variable:
bash
export USPTO_API_KEY="your_api_key_here"
所有USPTO API均需要API密钥。请前往以下地址注册: https://account.uspto.gov/api-manager/
将API密钥设置为环境变量:
bash
export USPTO_API_KEY="your_api_key_here"

Helper Scripts

辅助脚本

This skill includes Python scripts for common operations:
  • scripts/patent_search.py
    - PatentSearch API client for searching patents
  • scripts/peds_client.py
    - PEDS client for examination history
  • scripts/trademark_client.py
    - TSDR client for trademark data
本技能包含用于常见操作的Python脚本:
  • scripts/patent_search.py
    - 用于专利检索的PatentSearch API客户端
  • scripts/peds_client.py
    - 用于审查历史查询的PEDS客户端
  • scripts/trademark_client.py
    - 用于商标数据访问的TSDR客户端

Task 1: Searching Patents

任务1:专利检索

Using the PatentSearch API

使用PatentSearch API

The PatentSearch API uses a JSON query language with various operators for flexible searching.
PatentSearch API使用JSON查询语言,支持多种操作符以实现灵活检索。

Basic Patent Search Examples

基础专利检索示例

Search by keywords in abstract:
python
from scripts.patent_search import PatentSearchClient

client = PatentSearchClient()
按摘要关键词检索:
python
from scripts.patent_search import PatentSearchClient

client = PatentSearchClient()

Search for machine learning patents

检索机器学习相关专利

results = client.search_patents({ "patent_abstract": {"_text_all": ["machine", "learning"]} })
for patent in results['patents']: print(f"{patent['patent_number']}: {patent['patent_title']}")

**Search by inventor:**
```python
results = client.search_by_inventor("John Smith")
Search by assignee/company:
python
results = client.search_by_assignee("Google")
Search by date range:
python
results = client.search_by_date_range("2024-01-01", "2024-12-31")
Search by CPC classification:
python
results = client.search_by_classification("H04N")  # Video/image tech
results = client.search_patents({ "patent_abstract": {"_text_all": ["machine", "learning"]} })
for patent in results['patents']: print(f"{patent['patent_number']}: {patent['patent_title']}")

**按发明人检索:**
```python
results = client.search_by_inventor("John Smith")
按权利人/企业检索:
python
results = client.search_by_assignee("Google")
按日期范围检索:
python
results = client.search_by_date_range("2024-01-01", "2024-12-31")
按CPC分类号检索:
python
results = client.search_by_classification("H04N")  # 视频/图像技术

Advanced Patent Search

高级专利检索

Combine multiple criteria with logical operators:
python
results = client.advanced_search(
    keywords=["artificial", "intelligence"],
    assignee="Microsoft",
    start_date="2023-01-01",
    end_date="2024-12-31",
    cpc_codes=["G06N", "G06F"]  # AI and computing classifications
)
使用逻辑操作符组合多个检索条件:
python
results = client.advanced_search(
    keywords=["artificial", "intelligence"],
    assignee="Microsoft",
    start_date="2023-01-01",
    end_date="2024-12-31",
    cpc_codes=["G06N", "G06F"]  # AI和计算分类号
)

Direct API Usage

直接调用API

For complex queries, use the API directly:
python
import requests

url = "https://search.patentsview.org/api/v1/patent"
headers = {
    "X-Api-Key": "YOUR_API_KEY",
    "Content-Type": "application/json"
}

query = {
    "q": {
        "_and": [
            {"patent_date": {"_gte": "2024-01-01"}},
            {"assignee_organization": {"_text_any": ["Google", "Alphabet"]}},
            {"cpc_subclass_id": ["G06N", "H04N"]}
        ]
    },
    "f": ["patent_number", "patent_title", "patent_date", "inventor_name"],
    "s": [{"patent_date": "desc"}],
    "o": {"per_page": 100, "page": 1}
}

response = requests.post(url, headers=headers, json=query)
results = response.json()
对于复杂查询,可直接调用API:
python
import requests

url = "https://search.patentsview.org/api/v1/patent"
headers = {
    "X-Api-Key": "YOUR_API_KEY",
    "Content-Type": "application/json"
}

query = {
    "q": {
        "_and": [
            {"patent_date": {"_gte": "2024-01-01"}},
            {"assignee_organization": {"_text_any": ["Google", "Alphabet"]}},
            {"cpc_subclass_id": ["G06N", "H04N"]}
        ]
    },
    "f": ["patent_number", "patent_title", "patent_date", "inventor_name"],
    "s": [{"patent_date": "desc"}],
    "o": {"per_page": 100, "page": 1}
}

response = requests.post(url, headers=headers, json=query)
results = response.json()

Query Operators

查询操作符

  • Equality:
    {"field": "value"}
    or
    {"field": {"_eq": "value"}}
  • Comparison:
    _gt
    ,
    _gte
    ,
    _lt
    ,
    _lte
    ,
    _neq
  • Text search:
    _text_all
    ,
    _text_any
    ,
    _text_phrase
  • String matching:
    _begins
    ,
    _contains
  • Logical:
    _and
    ,
    _or
    ,
    _not
Best Practice: Use
_text_*
operators for text fields (more performant than
_contains
or
_begins
)
  • 相等匹配
    {"field": "value"}
    {"field": {"_eq": "value"}}
  • 比较操作
    _gt
    ,
    _gte
    ,
    _lt
    ,
    _lte
    ,
    _neq
  • 文本检索
    _text_all
    ,
    _text_any
    ,
    _text_phrase
  • 字符串匹配
    _begins
    ,
    _contains
  • 逻辑操作
    _and
    ,
    _or
    ,
    _not
最佳实践:对文本字段使用
_text_*
操作符(比
_contains
_begins
性能更优)

Available Patent Endpoints

可用的专利端点

  • /patent
    - Granted patents
  • /publication
    - Pregrant publications
  • /inventor
    - Inventor information
  • /assignee
    - Assignee information
  • /cpc_subclass
    ,
    /cpc_at_issue
    - CPC classifications
  • /uspc
    - US Patent Classification
  • /ipc
    - International Patent Classification
  • /claims
    ,
    /brief_summary_text
    ,
    /detail_description_text
    - Text data (beta)
  • /patent
    - 授权专利
  • /publication
    - 预授权公开文本
  • /inventor
    - 发明人信息
  • /assignee
    - 权利人信息
  • /cpc_subclass
    ,
    /cpc_at_issue
    - CPC分类
  • /uspc
    - 美国专利分类
  • /ipc
    - 国际专利分类
  • /claims
    ,
    /brief_summary_text
    ,
    /detail_description_text
    - 文本数据(测试版)

Reference Documentation

参考文档

See
references/patentsearch_api.md
for complete PatentSearch API documentation including:
  • All available endpoints
  • Complete field reference
  • Query syntax and examples
  • Response formats
  • Rate limits and best practices
请查看
references/patentsearch_api.md
获取完整的PatentSearch API文档,包括:
  • 所有可用端点
  • 完整字段参考
  • 查询语法和示例
  • 响应格式
  • 速率限制和最佳实践

Task 2: Retrieving Patent Examination Data

任务2:获取专利审查数据

Using PEDS (Patent Examination Data System)

使用PEDS(专利审查数据系统)

PEDS provides comprehensive prosecution history including transaction events, status changes, and examination timeline.
PEDS提供全面的审查历史,包括交易事件、状态变更和审查时间线。

Installation

安装

bash
uv pip install uspto-opendata-python
bash
uv pip install uspto-opendata-python

Basic PEDS Usage

PEDS基础使用

Get application data:
python
from scripts.peds_client import PEDSHelper

helper = PEDSHelper()
获取申请数据:
python
from scripts.peds_client import PEDSHelper

helper = PEDSHelper()

By application number

通过申请号查询

app_data = helper.get_application("16123456") print(f"Title: {app_data['title']}") print(f"Status: {app_data['app_status']}")
app_data = helper.get_application("16123456") print(f"标题: {app_data['title']}") print(f"状态: {app_data['app_status']}")

By patent number

通过专利号查询

patent_data = helper.get_patent("11234567")

**Get transaction history:**
```python
transactions = helper.get_transaction_history("16123456")

for trans in transactions:
    print(f"{trans['date']}: {trans['code']} - {trans['description']}")
Get office actions:
python
office_actions = helper.get_office_actions("16123456")

for oa in office_actions:
    if oa['code'] == 'CTNF':
        print(f"Non-final rejection: {oa['date']}")
    elif oa['code'] == 'CTFR':
        print(f"Final rejection: {oa['date']}")
    elif oa['code'] == 'NOA':
        print(f"Notice of allowance: {oa['date']}")
Get status summary:
python
summary = helper.get_status_summary("16123456")

print(f"Current status: {summary['current_status']}")
print(f"Filing date: {summary['filing_date']}")
print(f"Pendency: {summary['pendency_days']} days")

if summary['is_patented']:
    print(f"Patent number: {summary['patent_number']}")
    print(f"Issue date: {summary['issue_date']}")
patent_data = helper.get_patent("11234567")

**获取交易历史:**
```python
transactions = helper.get_transaction_history("16123456")

for trans in transactions:
    print(f"{trans['date']}: {trans['code']} - {trans['description']}")
获取审查意见:
python
office_actions = helper.get_office_actions("16123456")

for oa in office_actions:
    if oa['code'] == 'CTNF':
        print(f"非最终驳回: {oa['date']}")
    elif oa['code'] == 'CTFR':
        print(f"最终驳回: {oa['date']}")
    elif oa['code'] == 'NOA':
        print(f"授权通知: {oa['date']}")
获取状态摘要:
python
summary = helper.get_status_summary("16123456")

print(f"当前状态: {summary['current_status']}")
print(f"申请日: {summary['filing_date']}")
print(f"审查周期: {summary['pendency_days']} 天")

if summary['is_patented']:
    print(f"专利号: {summary['patent_number']}")
    print(f"授权日: {summary['issue_date']}")

Prosecution Analysis

审查分析

Analyze prosecution patterns:
python
analysis = helper.analyze_prosecution("16123456")

print(f"Total office actions: {analysis['total_office_actions']}")
print(f"Non-final rejections: {analysis['non_final_rejections']}")
print(f"Final rejections: {analysis['final_rejections']}")
print(f"Allowed: {analysis['allowance']}")
print(f"Responses filed: {analysis['responses']}")
分析审查模式:
python
analysis = helper.analyze_prosecution("16123456")

print(f"总审查意见数: {analysis['total_office_actions']}")
print(f"非最终驳回数: {analysis['non_final_rejections']}")
print(f"最终驳回数: {analysis['final_rejections']}")
print(f"授权情况: {analysis['allowance']}")
print(f"提交答复数: {analysis['responses']}")

Common Transaction Codes

常见交易代码

  • CTNF - Non-final rejection mailed
  • CTFR - Final rejection mailed
  • NOA - Notice of allowance mailed
  • WRIT - Response filed
  • ISS.FEE - Issue fee payment
  • ABND - Application abandoned
  • AOPF - Office action mailed
  • CTNF - 发出非最终驳回
  • CTFR - 发出最终驳回
  • NOA - 发出授权通知
  • WRIT - 提交答复
  • ISS.FEE - 缴纳授权费
  • ABND - 申请视为撤回
  • AOPF - 发出审查意见

Reference Documentation

参考文档

See
references/peds_api.md
for complete PEDS documentation including:
  • All available data fields
  • Transaction code reference
  • Python library usage
  • Portfolio analysis examples
请查看
references/peds_api.md
获取完整的PEDS文档,包括:
  • 所有可用数据字段
  • 交易代码参考
  • Python库使用说明
  • 组合分析示例

Task 3: Searching and Monitoring Trademarks

任务3:商标检索与监控

Using TSDR (Trademark Status & Document Retrieval)

使用TSDR(商标状态与文档检索系统)

Access trademark status, ownership, and prosecution history.
访问商标状态、权属和审查历史。

Basic Trademark Usage

商标基础使用

Get trademark by serial number:
python
from scripts.trademark_client import TrademarkClient

client = TrademarkClient()
通过序列号获取商标信息:
python
from scripts.trademark_client import TrademarkClient

client = TrademarkClient()

By serial number

通过序列号查询

tm_data = client.get_trademark_by_serial("87654321")
tm_data = client.get_trademark_by_serial("87654321")

By registration number

通过注册号查询

tm_data = client.get_trademark_by_registration("5678901")

**Get trademark status:**
```python
status = client.get_trademark_status("87654321")

print(f"Mark: {status['mark_text']}")
print(f"Status: {status['status']}")
print(f"Filing date: {status['filing_date']}")

if status['is_registered']:
    print(f"Registration #: {status['registration_number']}")
    print(f"Registration date: {status['registration_date']}")
Check trademark health:
python
health = client.check_trademark_health("87654321")

print(f"Mark: {health['mark']}")
print(f"Status: {health['status']}")

for alert in health['alerts']:
    print(alert)

if health['needs_attention']:
    print("⚠️  This mark needs attention!")
tm_data = client.get_trademark_by_registration("5678901")

**获取商标状态:**
```python
status = client.get_trademark_status("87654321")

print(f"商标标识: {status['mark_text']}")
print(f"状态: {status['status']}")
print(f"申请日: {status['filing_date']}")

if status['is_registered']:
    print(f"注册号: {status['registration_number']}")
    print(f"注册日: {status['registration_date']}")
检查商标健康状态:
python
health = client.check_trademark_health("87654321")

print(f"商标标识: {health['mark']}")
print(f"状态: {health['status']}")

for alert in health['alerts']:
    print(alert)

if health['needs_attention']:
    print("⚠️  该商标需要关注!")

Trademark Portfolio Monitoring

商标组合监控

Monitor multiple trademarks:
python
def monitor_portfolio(serial_numbers, api_key):
    """Monitor trademark portfolio health."""
    client = TrademarkClient(api_key)

    results = {
        'active': [],
        'pending': [],
        'problems': []
    }

    for sn in serial_numbers:
        health = client.check_trademark_health(sn)

        if 'REGISTERED' in health['status']:
            results['active'].append(health)
        elif 'PENDING' in health['status'] or 'PUBLISHED' in health['status']:
            results['pending'].append(health)
        elif health['needs_attention']:
            results['problems'].append(health)

    return results
监控多个商标:
python
def monitor_portfolio(serial_numbers, api_key):
    """监控商标组合的健康状态。"""
    client = TrademarkClient(api_key)

    results = {
        'active': [],
        'pending': [],
        'problems': []
    }

    for sn in serial_numbers:
        health = client.check_trademark_health(sn)

        if 'REGISTERED' in health['status']:
            results['active'].append(health)
        elif 'PENDING' in health['status'] or 'PUBLISHED' in health['status']:
            results['pending'].append(health)
        elif health['needs_attention']:
            results['problems'].append(health)

    return results

Common Trademark Statuses

常见商标状态

  • REGISTERED - Active registered mark
  • PENDING - Under examination
  • PUBLISHED FOR OPPOSITION - In opposition period
  • ABANDONED - Application abandoned
  • CANCELLED - Registration cancelled
  • SUSPENDED - Examination suspended
  • REGISTERED AND RENEWED - Registration renewed
  • REGISTERED - 有效注册商标
  • PENDING - 审查中
  • PUBLISHED FOR OPPOSITION - 异议期内
  • ABANDONED - 申请视为撤回
  • CANCELLED - 注册被撤销
  • SUSPENDED - 审查暂停
  • REGISTERED AND RENEWED - 注册已续展

Reference Documentation

参考文档

See
references/trademark_api.md
for complete trademark API documentation including:
  • TSDR API reference
  • Trademark Assignment Search API
  • All status codes
  • Prosecution history access
  • Ownership tracking
请查看
references/trademark_api.md
获取完整的商标API文档,包括:
  • TSDR API参考
  • 商标权属转让检索API
  • 所有状态代码
  • 审查历史访问
  • 权属追踪

Task 4: Tracking Assignments and Ownership

任务4:权属转让追踪

Patent and Trademark Assignments

专利与商标权属转让

Both patents and trademarks have Assignment Search APIs for tracking ownership changes.
专利和商标均有对应的权属转让检索API,用于追踪权属变更。

Patent Assignment API

专利权属转让API

Base URL:
https://assignment-api.uspto.gov/patent/v1.4/
Search by patent number:
python
import requests
import xml.etree.ElementTree as ET

def get_patent_assignments(patent_number, api_key):
    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:
        return response.text  # Returns XML

assignments_xml = get_patent_assignments("11234567", api_key)
root = ET.fromstring(assignments_xml)

for assignment in root.findall('.//assignment'):
    recorded_date = assignment.find('recordedDate').text
    assignor = assignment.find('.//assignor/name').text
    assignee = assignment.find('.//assignee/name').text
    conveyance = assignment.find('conveyanceText').text

    print(f"{recorded_date}: {assignor}{assignee}")
    print(f"  Type: {conveyance}\n")
Search by company name:
python
def find_company_patents(company_name, api_key):
    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
基础URL
https://assignment-api.uspto.gov/patent/v1.4/
按专利号检索:
python
import requests
import xml.etree.ElementTree as ET

def get_patent_assignments(patent_number, api_key):
    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:
        return response.text  # 返回XML格式

assignments_xml = get_patent_assignments("11234567", api_key)
root = ET.fromstring(assignments_xml)

for assignment in root.findall('.//assignment'):
    recorded_date = assignment.find('recordedDate').text
    assignor = assignment.find('.//assignor/name').text
    assignee = assignment.find('.//assignee/name').text
    conveyance = assignment.find('conveyanceText').text

    print(f"{recorded_date}: {assignor}{assignee}")
    print(f"  类型: {conveyance}\n")
按企业名称检索:
python
def find_company_patents(company_name, api_key):
    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

Common Assignment Types

常见权属转让类型

  • ASSIGNMENT OF ASSIGNORS INTEREST - Ownership transfer
  • SECURITY AGREEMENT - Collateral/security interest
  • MERGER - Corporate merger
  • CHANGE OF NAME - Name change
  • ASSIGNMENT OF PARTIAL INTEREST - Partial ownership
  • ASSIGNMENT OF ASSIGNORS INTEREST - 权属完全转让
  • SECURITY AGREEMENT - 担保权益设置
  • MERGER - 企业合并
  • CHANGE OF NAME - 名称变更
  • ASSIGNMENT OF PARTIAL INTEREST - 部分权属转让

Task 5: Accessing Additional USPTO Data

任务5:访问USPTO附加数据

Office Actions, Citations, and Litigation

审查意见、引用与诉讼数据

Multiple specialized APIs provide additional patent data.
多个专用API提供附加的专利数据。

Office Action Text Retrieval

审查意见文本检索

Retrieve full text of office actions using application number. Integrate with PEDS to identify which office actions exist, then retrieve full text.
通过申请号获取审查意见全文。可与PEDS集成,先确定存在的审查意见,再获取全文。

Enriched Citation API

增强引用API

Analyze patent citations:
  • Forward citations (patents citing this patent)
  • Backward citations (prior art cited)
  • Examiner vs. applicant citations
  • Citation context
分析专利引用:
  • 正向引用(引用该专利的专利)
  • 反向引用(该专利引用的现有技术)
  • 审查员引用 vs 申请人引用
  • 引用上下文

Patent Litigation Cases API

专利诉讼案件API

Access federal district court patent litigation records:
  • 74,623+ litigation records
  • Patents asserted
  • Parties and venues
  • Case outcomes
访问联邦地区法院的专利诉讼记录:
  • 74,623+ 诉讼记录
  • 涉案专利
  • 当事人和管辖法院
  • 案件结果

PTAB API

PTAB API

Patent Trial and Appeal Board proceedings:
  • Inter partes review (IPR)
  • Post-grant review (PGR)
  • Appeal decisions
专利审判与上诉委员会程序数据:
  • 双方复审(IPR)
  • 授权后复审(PGR)
  • 上诉决定

Reference Documentation

参考文档

See
references/additional_apis.md
for comprehensive documentation on:
  • Enriched Citation API
  • Office Action APIs (Text, Citations, Rejections)
  • Patent Litigation Cases API
  • PTAB API
  • Cancer Moonshot Data Set
  • OCE Status/Event Codes
请查看
references/additional_apis.md
获取以下内容的全面文档:
  • 增强引用API
  • 审查意见API(文本、引用、驳回)
  • 专利诉讼案件API
  • PTAB API
  • 癌症登月数据集
  • OCE状态/事件代码

Complete Analysis Example

完整分析示例

Comprehensive Patent Analysis

全面专利分析

Combine multiple APIs for complete patent intelligence:
python
def comprehensive_patent_analysis(patent_number, api_key):
    """
    Full patent analysis using multiple USPTO APIs.
    """
    from scripts.patent_search import PatentSearchClient
    from scripts.peds_client import PEDSHelper

    results = {}

    # 1. Get patent details
    patent_client = PatentSearchClient(api_key)
    patent_data = patent_client.get_patent(patent_number)
    results['patent'] = patent_data

    # 2. Get examination history
    peds = PEDSHelper()
    results['prosecution'] = peds.analyze_prosecution(patent_number)
    results['status'] = peds.get_status_summary(patent_number)

    # 3. Get assignment history
    import requests
    assign_url = f"https://assignment-api.uspto.gov/patent/v1.4/assignment/patent/{patent_number}"
    assign_resp = requests.get(assign_url, headers={"X-Api-Key": api_key})
    results['assignments'] = assign_resp.text if assign_resp.status_code == 200 else None

    # 4. Analyze results
    print(f"\n=== Patent {patent_number} Analysis ===\n")
    print(f"Title: {patent_data['patent_title']}")
    print(f"Assignee: {', '.join(patent_data.get('assignee_organization', []))}")
    print(f"Issue Date: {patent_data['patent_date']}")

    print(f"\nProsecution:")
    print(f"  Office Actions: {results['prosecution']['total_office_actions']}")
    print(f"  Rejections: {results['prosecution']['non_final_rejections']} non-final, {results['prosecution']['final_rejections']} final")
    print(f"  Pendency: {results['prosecution']['pendency_days']} days")

    # Analyze citations
    if 'cited_patent_number' in patent_data:
        print(f"\nCitations:")
        print(f"  Cites: {len(patent_data['cited_patent_number'])} patents")
    if 'citedby_patent_number' in patent_data:
        print(f"  Cited by: {len(patent_data['citedby_patent_number'])} patents")

    return results
组合多个API以实现完整的专利情报分析:
python
def comprehensive_patent_analysis(patent_number, api_key):
    """
    使用多个USPTO API进行全面专利分析。
    """
    from scripts.patent_search import PatentSearchClient
    from scripts.peds_client import PEDSHelper

    results = {}

    # 1. 获取专利详情
    patent_client = PatentSearchClient(api_key)
    patent_data = patent_client.get_patent(patent_number)
    results['patent'] = patent_data

    # 2. 获取审查历史
    peds = PEDSHelper()
    results['prosecution'] = peds.analyze_prosecution(patent_number)
    results['status'] = peds.get_status_summary(patent_number)

    # 3. 获取权属转让历史
    import requests
    assign_url = f"https://assignment-api.uspto.gov/patent/v1.4/assignment/patent/{patent_number}"
    assign_resp = requests.get(assign_url, headers={"X-Api-Key": api_key})
    results['assignments'] = assign_resp.text if assign_resp.status_code == 200 else None

    # 4. 分析结果
    print(f"\n=== 专利 {patent_number} 分析 ===\n")
    print(f"标题: {patent_data['patent_title']}")
    print(f"权利人: {', '.join(patent_data.get('assignee_organization', []))}")
    print(f"授权日: {patent_data['patent_date']}")

    print(f"\n审查情况:")
    print(f"  审查意见总数: {results['prosecution']['total_office_actions']}")
    print(f"  驳回情况: {results['prosecution']['non_final_rejections']} 次非最终驳回, {results['prosecution']['final_rejections']} 次最终驳回")
    print(f"  审查周期: {results['prosecution']['pendency_days']} 天")

    # 分析引用
    if 'cited_patent_number' in patent_data:
        print(f"\n引用情况:")
        print(f"  引用专利数: {len(patent_data['cited_patent_number'])} 项")
    if 'citedby_patent_number' in patent_data:
        print(f"  被引用次数: {len(patent_data['citedby_patent_number'])} 次")

    return results

Best Practices

最佳实践

  1. API Key Management
    • Store API key in environment variables
    • Never commit keys to version control
    • Use same key across all USPTO APIs
  2. Rate Limiting
    • PatentSearch: 45 requests/minute
    • Implement exponential backoff for rate limit errors
    • Cache responses when possible
  3. Query Optimization
    • Use
      _text_*
      operators for text fields (more performant)
    • Request only needed fields to reduce response size
    • Use date ranges to narrow searches
  4. Data Handling
    • Not all fields populated for all patents/trademarks
    • Handle missing data gracefully
    • Parse dates consistently
  5. Combining APIs
    • Use PatentSearch for discovery
    • Use PEDS for prosecution details
    • Use Assignment APIs for ownership tracking
    • Combine data for comprehensive analysis
  1. API密钥管理
    • 将API密钥存储在环境变量中
    • 切勿将密钥提交至版本控制系统
    • 所有USPTO API使用同一密钥
  2. 速率限制
    • PatentSearch:45次请求/分钟
    • 针对速率限制错误实现指数退避机制
    • 尽可能缓存响应结果
  3. 查询优化
    • 对文本字段使用
      _text_*
      操作符(性能更优)
    • 仅请求所需字段以减小响应体积
    • 使用日期范围缩小检索范围
  4. 数据处理
    • 并非所有专利/商标的所有字段都有数据
    • 优雅处理缺失数据
    • 统一解析日期格式
  5. API组合使用
    • 使用PatentSearch进行专利发现
    • 使用PEDS获取审查详情
    • 使用权属转让API追踪权属变更
    • 组合多源数据进行全面分析

Important Notes

重要说明

  • Legacy API Sunset: PatentsView legacy API discontinued May 1, 2025 - use PatentSearch API
  • PAIR Bulk Data Decommissioned: Use PEDS instead
  • Data Coverage: PatentSearch has data through June 30, 2025; PEDS from 1981-present
  • Text Endpoints: Claims and description endpoints are in beta with ongoing backfilling
  • Rate Limits: Respect rate limits to avoid service disruptions
  • 旧版API停用:PatentsView旧版API已于2025年5月1日停用,请使用PatentSearch API
  • PAIR批量数据已停用:请使用PEDS替代
  • 数据覆盖范围:PatentSearch数据覆盖至2025年6月30日;PEDS数据从1981年至今
  • 文本端点:权利要求和说明书端点处于测试阶段,数据正在回填中
  • 速率限制:遵守速率限制以避免服务中断

Resources

资源

API Documentation

API文档

Python Libraries

Python库

Reference Files

参考文件

  • references/patentsearch_api.md
    - Complete PatentSearch API reference
  • references/peds_api.md
    - PEDS API and library documentation
  • references/trademark_api.md
    - Trademark APIs (TSDR and Assignment)
  • references/additional_apis.md
    - Citations, Office Actions, Litigation, PTAB
  • references/patentsearch_api.md
    - 完整的PatentSearch API参考
  • references/peds_api.md
    - PEDS API及库文档
  • references/trademark_api.md
    - 商标API(TSDR和权属转让)
  • references/additional_apis.md
    - 引用、审查意见、诉讼、PTAB相关API

Scripts

脚本

  • scripts/patent_search.py
    - PatentSearch API client
  • scripts/peds_client.py
    - PEDS examination data client
  • scripts/trademark_client.py
    - Trademark search client
  • scripts/patent_search.py
    - PatentSearch API客户端
  • scripts/peds_client.py
    - PEDS审查数据客户端
  • scripts/trademark_client.py
    - 商标检索客户端