| name | uspto-database-utakata |
| title | USPTO Database |
| description | 公式記録の検索、PatentSearch クエリ、TSDR チェック、譲渡データ、および再現可能な IP 調査ログのための USPTO 特許・商標データワークフロー。 |
| author | Utakata |
| author_url | https://github.com/Utakata/everything-claude-code/tree/main/docs/ja-JP/skills/scientific-db-uspto-database |
| license | MIT |
| version | 0.1.0 |
| execution_mode | open |
| jurisdiction | us |
| practice | ip |
| language | ja |
USPTO Database
USPTO システムから米国の公式特許・商標記録が必要なタスクにこのスキルを使用します。
使用するタイミング
- 付与済み特許または出願前公開の検索。
- 特許出願ステータス、ファイルラッパーデータ、譲渡、または公開の訴追履歴の確認。
- 商標ステータス、文書、または譲渡履歴の検索。
- 再現可能な先行技術、ポートフォリオ、または IP ランドスケープの調査ログの構築。
- USPTO 記録と Google Patents、Lens.org、Semantic Scholar、または企業の特許ページなどのセカンダリツールとの比較。
このスキルを法的アドバイスに使用しないでください。データ収集と記録確認のワークフローとして扱ってください。
ソース選択
公式の USPTO またはUSPTO がサポートするサーフェスを優先します:
- Open Data Portal (ODP): USPTO の移行済みデータセットと API の現在のホーム。
- Patent File Wrapper: 公開特許出願の書誌データとファイルラッパーレコード。
- PatentSearch API: 付与済み特許と出願前公開データセット向け PatentsView 検索 API。
- TSDR Data API: 商標ステータスと文書取得。
- Patent and Trademark Assignment Search: 所有権移転記録。
- ODP の PTAB データ: 特許審判・控訴委員会の手続き。
セカンダリソースは便宜上のインデックスとしてのみ使用します。答えが重要な場合は、公式記録と照合してください。
認証とシークレット
多くの USPTO API フローには API キーが必要です。キーは環境変数またはシークレットマネージャーに保存し、コミットされたファイルや貼り付けられたトランスクリプトには絶対に入れないでください。
一般的な環境変数名:
export USPTO_API_KEY="..."
export PATENTSVIEW_API_KEY="..."
PatentSearch では X-Api-Key ヘッダーでキーを送信します。TSDR については、現在の USPTO API マネージャーの指示とレート制限ガイダンスに従ってください。
PatentSearch ワークフロー
質問がトレンド、発明者、譲受人、分類、日付、またはポートフォリオのスライスに関するものである場合、特許と出願前公開の広い検索に PatentSearch を使用します。
ワークフロー:
- 現在の PatentSearch リファレンスまたは Swagger UI からエンドポイントを特定する。
- 明示的なフィルターを持つ JSON クエリを構築する。
- 分析に必要なフィールドのみをリクエストする。
- 確定的にソートしてページネーションする。
- エンドポイント、クエリ本体、日付、データの通貨に関する注記、結果件数を記録する。
Python リクエストのスケルトン:
import os
import requests
API_KEY = os.environ["PATENTSVIEW_API_KEY"]
BASE = "https://search.patentsview.org/api/v1"
payload = {
"q": {
"_and": [
{"patent_date": {"_gte": "2024-01-01"}},
{"assignees.assignee_organization": {"_text_any": ["Google", "Alphabet"]}},
]
},
: [, , ],
: [{: }],
: {: , : },
}
response = requests.post(
,
headers={: API_KEY, : },
json=payload,
timeout=,
)
response.raise_for_status()
(response.json())