返回Skills库

USPTO数据库

MIT
📊 数据知识
K-Dense-AIAPI数据库

访问USPTO API进行专利/商标搜索、审查历史(PEDS)、转让、引用、办公行动、TSDR,用于知识产权分析和现有技术搜索。

USPTO数据库

概述

USPTO提供专门的专利和商标数据API。通过关键词/发明人/受让人搜索专利,通过PEDS检索审查历史,跟踪转让,分析引用和审查意见,访问TSDR获取商标信息,用于知识产权分析和现有技术搜索。

何时使用此技能

当以下情况时应使用此技能:

  • 专利搜索:按关键词、发明人、受让人、分类或日期查找专利
  • 专利详情:检索完整专利数据,包括权利要求、摘要、引用
  • 商标搜索:通过序列号或注册号查找商标
  • 商标状态:检查商标状态、所有权和审查历史
  • 审查历史:从PEDS(专利审查数据系统)访问专利审查数据
  • 审查意见:检索审查意见文本、引用和驳回
  • 转让:跟踪专利/商标所有权转移
  • 引用:分析专利引用(前向和后向)
  • 诉讼:访问专利诉讼记录
  • 组合分析:分析公司或发明人的专利/商标组合

USPTO API生态系统

USPTO为不同数据需求提供多个专门的API:

核心API

  1. PatentSearch API - 基于ElasticSearch的现代专利搜索(2025年5月取代了旧版PatentsView)
  • 按关键词、发明人、受让人、分类、日期搜索专利
  • 访问截至2025年6月30日的专利数据
  • 45次请求/分钟的速率限制
  • 基础URLhttps://search.patentsview.org/api/v1/
  1. PEDS(专利审查数据系统) - 专利审查历史
  • 1981年至今的申请状态和交易历史
  • 审查意见日期和审查事件
  • 使用uspto-opendata-python Python库
  • 替代:PAIR批量数据(PBD)- 已停用
  1. TSDR(商标状态与文档检索) - 商标数据
  • 商标状态、所有权、审查历史
  • 按序列号或注册号搜索
  • 基础URLhttps://tsdrapi.uspto.gov/ts/cd/

其他API

  1. 专利转让搜索 - 所有权记录和转移
  2. 商标转让搜索 - 商标所有权变更
  3. 增强引用API - 专利引用分析
  4. 审查意见文本检索 - 审查意见全文
  5. 审查意见引用 - 审查意见中的引用
  6. 审查意见驳回 - 驳回原因和类型
  7. PTAB API - 专利审判和上诉委员会程序
  8. 专利诉讼案件 - 联邦地区法院诉讼数据
  9. 癌症登月数据集 - 癌症相关专利

快速开始

API密钥注册

USPTO API需要API密钥。在以下地址注册:

https://account.uspto.gov/api-manager/

PatentSearch API的API密钥由PatentsView提供。在以下地址注册:

https://patentsview.org/api-v01-information-page

将API密钥设置为环境变量:

export USPTO_API_KEY="your_api_key_here"
export PATENTSVIEW_API_KEY="you_api_key_here"

辅助脚本

此技能包含用于常见操作的Python脚本:

  • `scripts/patent_search.py` - 用于搜索专利的PatentSearch API客户端
  • `scripts/peds_client.py` - 用于审查历史的PEDS客户端
  • `scripts/trademark_client.py` - 用于商标数据的TSDR客户端

任务1:搜索专利

使用PatentSearch API

PatentSearch API使用JSON查询语言,带有各种运算符用于灵活搜索。

基本专利搜索示例

按摘要中的关键词搜索:

from scripts.patent_search import PatentSearchClient

client = PatentSearchClient()

# 搜索机器学习专利
results = client.search_patents({
    "_text_all": {"patent_abstract": "machine learning"}
})

for patent in results['patents']:
    print(f"{patent['patent_number']}: {patent['patent_title']}")

按发明人搜索:

results = client.search_by_inventor("John Smith")

按受让人/公司搜索:

results = client.search_by_assignee("Google")

按日期范围搜索:

results = client.search_by_date_range("2024-01-01", "2024-12-31")

按CPC分类搜索:

results = client.search_by_classification("H04N")  # 视频/图像技术

高级专利搜索

使用逻辑运算符组合多个条件:

results = client.advanced_search(
    keywords=["artificial", "intelligence"],
    assignee="Microsoft",
    start_date="2023-01-01",
    end_date="2024-12-31",
    cpc_codes=["G06N", "G06F"]  # AI和计算分类
)

直接API使用

对于复杂查询,直接使用API:

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()

查询运算符

  • 相等{"field": "value"}{"field": {"_eq": "value"}}
  • 比较_gt, _gte, _lt, _lte, _neq
  • 文本搜索_text_all, _text_any, _text_phrase
  • 字符串匹配_begins, _contains
  • 逻辑_and, _or, _not

最佳实践:对文本字段使用_text_*运算符(比_contains_begins更高效)

可用的专利端点

  • /patent - 授权专利
  • /publication - 预授权公开
  • /inventor - 发明人信息
  • /assignee - 受让人信息
  • /cpc_subclass, /cpc_at_issue - CPC分类
  • /uspc - 美国专利分类
  • /ipc - 国际专利分类
  • /claims, /brief_summary_text, /detail_description_text - 文本数据(测试版)

参考文档

references/patentsearch_api.md获取完整的PatentSearch API文档,包括:

  • 所有可用端点
  • 完整字段参考
  • 查询语法和示例
  • 响应格式
  • 速率限制和最佳实践

任务2:检索专利审查数据

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

PEDS提供全面的审查历史,包括交易事件、状态变更和审查时间线。

安装

uv pip install uspto-opendata-python

基本PEDS使用

获取申请数据:

from scripts.peds_client import PEDSHelper

helper = PEDSHelper()

# 通过申请号
app_data = helper.get_application("16123456")
print(f"标题: {app_data['title']}")
print(f"状态: {app_data['app_status']}")

# 通过专利号
patent_data = helper.get_patent("11234567")

获取交易历史:

transactions = helper.get_transaction_history("16123456")

for trans in transactions:
    print(f"{trans['date']}: {trans['code']} - {trans['description']}")

获取审查意见:

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']}")

获取状态摘要:

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']}")

审查分析

分析审查模式:

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']}")

常见交易代码

  • CTNF - 非最终驳回邮寄
  • CTFR - 最终驳回邮寄
  • NOA - 授权通知邮寄
  • WRIT - 答辩提交
  • ISS.FEE - 授权费支付
  • ABND - 申请放弃
  • AOPF - 审查意见邮寄

参考文档

references/peds_api.md获取完整的PEDS文档,包括:

  • 所有可用数据字段
  • 交易代码参考
  • Python库使用
  • 组合分析示例

任务3:搜索和监控商标

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

访问商标状态、所有权和审查历史。

基本商标使用

通过序列号获取商标:

from scripts.trademark_client import TrademarkClient

client = TrademarkClient()

# 通过序列号
tm_data = client.get_trademark_by_serial("87654321")

# 通过注册号
tm_data = client.get_trademark_by_registration("5678901")

获取商标状态:

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']}")

检查商标健康状况:

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("⚠️  此商标需要关注!")

商标组合监控

监控多个商标:

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

常见商标状态

  • REGISTERED - 活跃注册商标
  • PENDING - 审查中
  • PUBLISHED FOR OPPOSITION - 异议期内
  • ABANDONED - 申请放弃
  • CANCELLED - 注册取消
  • SUSPENDED - 审查暂停
  • REGISTERED AND RENEWED - 注册续展

参考文档

references/trademark_api.md获取完整的商标API文档,包括:

  • TSDR API参考
  • 商标转让搜索API
  • 所有状态代码
  • 审查历史访问
  • 所有权跟踪

任务4:跟踪转让和所有权

专利和商标转让

专利和商标都有转让搜索API用于跟踪所有权变更。

专利转让API

基础URLhttps://assignment-api.uspto.gov/patent/v1.4/

按专利号搜索:

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")

按公司名称搜索:

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

常见转让类型

  • ASSIGNMENT OF ASSIGNORS INTEREST - 所有权转移
  • SECURITY AGREEMENT - 抵押/担保权益
  • MERGER - 公司合并
  • CHANGE OF NAME - 名称变更
  • ASSIGNMENT OF PARTIAL INTEREST - 部分所有权

任务5:访问其他USPTO数据

审查意见、引用和诉讼

多个专门的API提供额外的专利数据。

审查意见文本检索

使用申请号检索审查意见全文。与PEDS集成以识别存在哪些审查意见,然后检索全文。

增强引用API

分析专利引用:

  • 前向引用(引用此专利的专利)
  • 后向引用(引用的现有技术)
  • 审查员vs申请人引用
  • 引用上下文

专利诉讼案件API

访问联邦地区法院专利诉讼记录:

  • 74,623+诉讼记录
  • 主张的专利
  • 当事人和地点
  • 案件结果

PTAB API

专利审判和上诉委员会程序:

  • 多方审查(IPR)
  • 授权后审查(PGR)
  • 上诉决定

参考文档

references/additional_apis.md获取关于以下内容的综合文档:

  • 增强引用API
  • 审查意见API(文本、引用、驳回)
  • 专利诉讼案件API
  • PTAB API
  • 癌症登月数据集
  • OCE状态/事件代码

完整分析示例

综合专利分析

组合多个API进行完整的专利情报分析:

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

最佳实践

  1. API密钥管理
  • 将API密钥存储在环境变量中
  • 永远不要将密钥提交到版本控制
  • 在所有USPTO API中使用相同的密钥
  1. 速率限制
  • PatentSearch: 45次请求/分钟
  • 对速率限制错误实现指数退避
  • 可能时缓存响应
  1. 查询优化
  • 对文本字段使用_text_*运算符(更高效)
  • 仅请求需要的字段以减少响应大小
  • 使用日期范围缩小搜索范围
  1. 数据处理
  • 并非所有专利/商标都填充了所有字段
  • 优雅处理缺失数据
  • 一致解析日期
  1. 组合API
  • 使用PatentSearch进行发现
  • 使用PEDS获取审查详情
  • 使用转让API进行所有权跟踪
  • 组合数据进行综合分析

重要说明

  • 旧API停用:PatentsView旧API于2025年5月1日停止使用 - 使用PatentSearch API
  • PAIR批量数据已停用:使用PEDS代替
  • 数据覆盖范围:PatentSearch包含截至2025年6月30日的数据;PEDS从1981年至今
  • 文本端点:权利要求和描述端点处于测试阶段,正在进行回填
  • 速率限制:尊重速率限制以避免服务中断

资源

API文档

  • PatentSearch API:https://search.patentsview.org/docs/
  • USPTO开发者门户:https://developer.uspto.gov/
  • USPTO开放数据门户:https://data.uspto.gov/
  • API密钥注册:https://account.uspto.gov/api-manager/

Python库

  • uspto-opendata-python:https://pypi.org/project/uspto-opendata-python/
  • USPTO文档:https://docs.ip-tools.org/uspto-opendata-python/

参考文件

  • references/patentsearch_api.md - 完整的PatentSearch API参考
  • references/peds_api.md - PEDS API和库文档
  • references/trademark_api.md - 商标API(TSDR和转让)
  • references/additional_apis.md - 引用、审查意见、诉讼、PTAB

脚本

  • scripts/patent_search.py - PatentSearch API客户端
  • scripts/peds_client.py - PEDS审查数据客户端
  • scripts/trademark_client.py - 商标搜索客户端

兼容工具

Claude CodeOpenClawHermes Agent

数据来源:claude-scientific-skillsMIT 许可) | 查看上游来源

上游项目:K-Dense-AI/scientific-agent-skills / claude-scientific-skills | 收录时间:2026-08-18 | 更新:2026-08-18

本页面内容基于上游开源许可项目整理,仅供学习参考。AI铺子不对第三方内容承担责任, 详情请参阅免责声明