digikey について
digikey は DigiKey API とウェブ検索で部品を探し、仕様、価格、在庫、データシート情報を取得するスキルです。KiCad 回路図や MPN リストから PDF を一括同期し、マニフェストで管理できます。
主な機能
- 01キーワードや MPN で部品検索
- 02仕様、価格、在庫の取得
- 03データシートとメディアのリンク取得
- 04回路図や MPN リストから PDF を同期
- 05マニフェストでダウンロードを記録
活用シーン
- 01試作部品の在庫と価格を比較
- 02KiCad プロジェクト用のデータシートを取得
- 03MPN リストから部品資料を準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aklofas/ kicad-happy --skill digikeyインストール後、Claude Code で/digikeyを入力して読み込まれたか確認します。
同梱ファイルscripts/fetch_datasheet_digikey.pyscripts/sync_datasheets_digikey.py
詳細
DigiKey 部品の検索と分析
関連スキル
| スキル | 用途 |
|---|---|
kicad | 回路図の分析 — データシート同期用に MPN を抽出します |
bom | BOM 管理 — 販売代理店をまたいだ調達を統括します |
spice | DigiKey のパラメトリックデータを使用して、動作 SPICE モデルを作成します |
DigiKey は試作注文の主要な調達先です(Mouser は二次調達先です)。API はデータシートへの PDF 直リンクを返すため、データシートの優先ソースとなります。量産注文については、lcsc/jlcpcb を参照してください。BOM 管理とエクスポートのワークフローについては、bom を参照してください。
API 認証情報の設定
DigiKey API には OAuth 2.0 認証情報が必要です。設定方法は次のとおりです。
- DigiKey アカウントをお持ちでない場合は、digikey.com でアカウントを作成します
- developer.digikey.com でAPI アプリを登録します:
- DigiKey アカウントでサインインします
- 「My Apps」→「Create App」に移動します
- アプリ名:任意(例:「kicad-happy」)
- 「Product Information v4」APIを選択します
- OAuth タイプ:Client Credentials(2-legged、ユーザーログインは不要)
- コールバック URL:
https://localhost(クライアント認証情報では使用しませんが、必須です) - 作成後、Client ID と Client Secret を控えます
- スクリプトを実行する前に、環境変数を設定します:
認証情報が一元管理されたシークレットファイル(例:export DIGIKEY_CLIENT_ID=your_client_id_here export DIGIKEY_CLIENT_SECRET=your_client_secret_here~/.config/secrets.env)に保存されている場合は、先に読み込みます:export $(grep -v '^#' ~/.config/secrets.env | grep -v '^$' | xargs)
クライアント認証情報フローではユーザー操作は不要です。一度設定すれば、API 呼び出しは自動的に動作します。
DigiKey Product Information API v4
DigiKey の検索には API の使用が推奨されます。製品の詳細、価格、在庫、データシート、パラメトリックデータを含む、構造化された JSON が返されます。
ベース URL: https://api.digikey.com
認証
すべての API リクエストには OAuth 2.0 が必要です。クライアント認証情報フロー(2-legged)を使用します。認証情報は環境変数として読み込む必要があります(上記の「API 認証情報の設定」を参照)。
curl -s -X POST https://api.digikey.com/v1/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "client_id=${DIGIKEY_CLIENT_ID}&client_secret=${DIGIKEY_CLIENT_SECRET}&grant_type=client_credentials"
レスポンスには、10 分間有効な access_token が含まれます。トークンをシェル変数にキャッシュし、同じセッション内の後続の呼び出しで再利用してください。セッション中に 401 エラーが発生した場合、トークンの有効期限が切れています。再認証して新しいトークンを取得してください。
必須ヘッダー
すべての API 呼び出しには次のものが必要です:
X-DIGIKEY-Client-Id: ${DIGIKEY_CLIENT_ID}
Authorization: Bearer <access_token>
任意のロケールヘッダー:
X-DIGIKEY-Locale-Language:en(デフォルト)、ja、de、fr、ko、zhs、zht、it、esX-DIGIKEY-Locale-Currency:USD(デフォルト)、CAD、EUR、GBP、JPYなどX-DIGIKEY-Locale-Site:US(デフォルト)、CA、UK、DEなど
KeywordSearch — 部品を検索
POST /products/v4/search/keyword
これは主要な検索エンドポイントです。MPN、DigiKey 部品番号、説明、キーワードで検索します。
リクエストボディ:
{
"Keywords": "GRM155R71C104KA88D",
"Limit": 25,
"Offset": 0,
"FilterOptionsRequest": {
"MinimumQuantityAvailable": 1,
"SearchOptions": ["InStock", "HasDatasheet", "RoHSCompliant"],
"ManufacturerFilter": [{"Id": "..."}],
"CategoryFilter": [{"Id": "..."}],
"StatusFilter": [{"Id": "..."}],
"MarketPlaceFilter": "ExcludeMarketPlace"
},
"SortOptions": {
"Field": "Price",
"SortOrder": "Ascending"
}
}
主なリクエストフィールド:
Keywords(文字列、最大 250 文字)— 検索語(MPN、DK PN、説明)Limit(整数、1-50)— ページあたりの結果数Offset(整数)— ページネーションのオフセットSearchOptions— 次の項目の配列:InStock、HasDatasheet、RoHSCompliant、NormallyStocking、Has3DModel、HasCadModel、HasProductPhoto、NewProductSortOptions.Field—Price、QuantityAvailable、Manufacturer、ManufacturerProductNumber、DigiKeyProductNumber、MinimumQuantityMarketPlaceFilter—NoFilter、ExcludeMarketPlace、MarketPlaceOnly
レスポンス — 各 Products[] 項目の主なフィールド:
{
"ManufacturerProductNumber": "GRM155R71C104KA88D",
"Manufacturer": {"Id": 563, "Name": "Murata Electronics"},
"Description": {
"ProductDescription": "CAP CER 100NF 16V X7R 0402",
"DetailedDescription": "..."
},
"UnitPrice": 0.01,
"QuantityAvailable": 248000,
"ProductUrl": "https://www.digikey.com/...",
"DatasheetUrl": "https://...",
"PhotoUrl": "https://...",
"ProductVariations": [
{
"DigiKeyProductNumber": "490-10698-1-ND",
"PackageType": {"Name": "Cut Tape"},
"StandardPricing": [
{"BreakQuantity": 1, "UnitPrice": 0.01, "TotalPrice": 0.01},
{"BreakQuantity": 10, "UnitPrice": 0.008, "TotalPrice": 0.08}
],
"QuantityAvailableforPackageType": 248000,
"MinimumOrderQuantity": 1,
"StandardPackage": 10000
}
],
"Parameters": [
{"ParameterText": "Capacitance", "ValueText": "100nF"},
{"ParameterText": "Voltage Rated", "ValueText": "16V"},
{"ParameterText": "Temperature Coefficient", "ValueText": "X7R"},
{"ParameterText": "Package / Case", "ValueText": "0402 (1005 Metric)"}
],
"ProductStatus": {"Status": "Active"},
"Category": {"Name": "Ceramic Capacitors"},
"Classifications": {"RohsStatus": "ROHS3 Compliant"},
"Discontinued": false,
"EndOfLife": false,
"NormallyStocking": true
}
ProductDetails — 1 つの部品の詳細情報
GET /products/v4/search/{productNumber}/productdetails
特定の部品の詳細情報を取得する場合に使用します。{productNumber} には、DigiKey 部品番号またはメーカー部品番号を指定できます。
クエリパラメーター:
manufacturerId(任意)— 複数のメーカーに一致する MPN を識別します(例:「CR2032」)
すべてのパラメーター、価格(アカウントで認証されている場合は MyPricing を含む)、メディアリンク、関連製品を含む、完全な Product オブジェクトを返します。
その他の便利なエンドポイント
| エンドポイント | メソッド | 説明 |
|---|---|---|
/products/v4/search/{pn}/productdetails | GET | 1 つの部品の完全な製品情報 |
/products/v4/search/productpricing/{pn} | GET | 部品の MyPricing を含む価格情報 |
/products/v4/search/{pn}/media | GET | 部品のすべてのメディア(画像、データシート) |
/products/v4/search/manufacturers | GET | すべてのメーカー(KeywordSearch フィルターで ID を使用) |
/products/v4/search/categories | GET | すべてのカテゴリ(KeywordSearch フィルターで ID を使用) |
/products/v4/search/{pn}/alternatepackaging | GET | 代替パッケージの選択肢 |
/products/v4/search/{pn}/substitutions | GET | 代替部品 |
/products/v4/search/{pn}/recommendedproducts | GET | 推奨部品/関連部品 |
レート制限
1 分あたりおよび 1 日あたりの割り当てが適用されます。超過時は Retry-After ヘッダー付きの HTTP 429 が返されます。
エラーレスポンス
すべてのエラーは DKProblemDetails を返します:
{"type": "...", "title": "...", "status": 401, "detail": "Invalid token", "correlationId": "..."}
フォールバック:DigiKey ウェブサイトの取得
API 認証情報が利用できない場合、または認証に失敗した場合は、製品ページを直接取得して DigiKey を検索します:
https://www.digikey.com/en/products/result?keywords=<url-encoded-query>
例:
https://www.digikey.com/en/products/result?keywords=GRM155R71C104KA88D(MPN による)https://www.digikey.com/en/products/result?keywords=100nF+0402+X7R+16V(仕様による)
DigiKey からの結果はノイズが多い場合があります(JS を多用するページ)。DigiKey 型番、MPN、説明、単価、在庫数量、データシートリンクを含む製品テーブルの行を探してください。結果が切り捨てられているか空の場合は、キーワードではなく正確な MPN で検索してみてください。
データシートのダウンロードと分析
DigiKey の API はデータシートの直接 PDF URLを提供します。これはウェブスクレイピングを回避し、信頼性が高く安定したリンクを返すため、データシートをダウンロードするための推奨方法です。他のスキル(kicad、bom)は、データシートのソースとして DigiKey API を第一候補として使用する必要があります。
データシートディレクトリの同期(主要ワークフロー)
sync_datasheets_digikey.py を使用して、KiCad プロジェクトと並行して datasheets/ ディレクトリを維持します。これは回路図からコンポーネントを抽出し、DigiKey でデータシート URL を検索し、不足している PDF をダウンロードし、manifest.json マニフェストを書き込みます。以降の実行は増分方式です — 新規または変更された部品のみが取得されます。
# Sync datasheets for a KiCad project (creates datasheets/ next to the schematic)
python3 <skill-path>/scripts/sync_datasheets_digikey.py <file.kicad_sch>
# Preview what would be downloaded
python3 <skill-path>/scripts/sync_datasheets_digikey.py <file.kicad_sch> --dry-run
# Retry previously failed downloads
python3 <skill-path>/scripts/sync_datasheets_digikey.py <file.kicad_sch> --force
# Custom output directory
python3 <skill-path>/scripts/sync_datasheets_digikey.py <file.kicad_sch> -o ./my-datasheets
# Use pre-computed analyzer JSON instead of running the analyzer
python3 <skill-path>/scripts/sync_datasheets_digikey.py analyzer_output.json
# Parallel downloads (3 workers)
python3 <skill-path>/scripts/sync_datasheets_digikey.py <file.kicad_sch> --parallel 3
# Batch mode — sync from a plain MPN list (no KiCad project required)
python3 <skill-path>/scripts/sync_datasheets_digikey.py --mpn-list mpns.txt --output ./datasheets
MPN リストのバッチモード(KH-312) — MPN のリストはあるが、指定できる KiCad プロジェクトがない場合(ハーネスのデータシートシード、新しい部品ライブラリの一括シード)に使用します。ファイル形式は 1 行につき 1 つの MPN です。空行と # コメント(行全体およびインライン)はスキップされます。MPN 以外の文字列(100nF や DNP などの汎用値)は is_real_mpn() によってフィルタリングされ、重複が排除されます。--output を省略した場合、出力はデフォルトで現在の作業ディレクトリの ./datasheets/ になります。
このスクリプトは:
- kicad 回路図アナライザーを自動的に実行してコンポーネントと MPN を抽出します
- 汎用パッシブをフィルタリング — 実際の MPN を持たないエントリ(例:「100nF」、「10K」)をスキップします
- 最初に回路図 URL を試行 — DigiKey API にアクセスする前に KiCad シンボルに埋め込まれたデータシート URL を使用し、API 呼び出しを節約します
manifest.jsonマニフェストを書き込み — 各 MPN を PDF ファイル、メーカー、説明、ダウンロードステータス、URL にマッピングします。kicad スキルは設計レビュー中にこれを読み取り、データシートと回路図を相互参照します。- 失敗を追跡 — 失敗したダウンロードはエラーの詳細とともに記録され、
--forceを使用しない限り以降の実行では再試行されません - レート制限あり — DigiKey API 呼び出しの間に 1 秒(
--delayで設定可能) - 進捗を増分で保存 — 中断された場合、すでにダウンロードされたファイルは保持されます
manifest.json マニフェストの構造:
{
"schematic": "/path/to/file.kicad_sch",
"last_sync": "2026-03-09T04:44:30+00:00",
"parts": {
"TPS61023DRLR": {
"file": "TPS61023DRLR.pdf",
"manufacturer": "Texas Instruments",
"description": "Boost converter",
"datasheet_url": "https://...",
"status": "ok",
"references": ["U3", "U2"],
"size_bytes": 2392725
}
}
}
単一データシートのダウンロード
単発でデータシートをダウンロードするには、fetch_datasheet_digikey.pyを使用します。メーカー固有の問題は自動的に処理されます。
# Search by MPN (uses DigiKey API, requires credentials)
python3 <skill-path>/scripts/fetch_datasheet_digikey.py --search "TPS61023" -o datasheet.pdf
# Direct URL download
python3 <skill-path>/scripts/fetch_datasheet_digikey.py "https://www.ti.com/lit/gpn/tps61023" -o datasheet.pdf
# JSON output for script integration
python3 <skill-path>/scripts/fetch_datasheet_digikey.py --search "ADP1706" --json
このスクリプトの機能:
- OSに依存しません — Pythonの
requestsライブラリを使用します(wget/curlへの依存はありません)。requestsがインストールされていない場合は、urllibにフォールバックします。 - リダイレクトURLを正規化します — TI製品のDigiKeyの
DatasheetUrlはJavaScriptのリダイレクトページを指すため、スクリプトがPDFへの直接リンクを抽出します。また、プロトコル相対URLの//mm.digikey.com/...も修正します。 - 適切なUser-Agentを設定します — 多くのメーカーサイト(Nexperia、Lite-On、STMicro、Molex)は、
urllibやcurlによるUser-Agentなしのリクエストをブロックしますが、ブラウザーのUser-Agentを指定すればPDFを配信します。 - PDFヘッダーを検証します — ダウンロードを装ったHTMLエラーページやCloudflareのチャレンジページを拒否します。
- 代替ソースにフォールバックします — 主要URLで失敗した場合、Microchipの既知のURLパターンを試します。
- ヘッドレスブラウザーへのフォールバック —
playwrightがインストールされている場合、JavaScript経由でPDFを配信するサイト(Broadcomのドキュメントビューアー、Espressifのダウンロードリダイレクト)に対する最終手段として、ヘッドレスのChromiumブラウザーを自動的に使用します。ダウンロードイベントを検知し、レスポンス本文を直接読み取ります。 - 終了コード:0 = 成功、1 = ダウンロード失敗、2 = 検索/APIエラー
- 依存関係:
pip install requests(強く推奨します。urllibのフォールバックでは、analog.comのようなHTTP/2サイトを処理できません)pip install playwright && playwright install chromium(任意。JavaScriptを多用するサイト向けに、ヘッドレスブラウザーへのフォールバックを有効にします)
メーカーとの互換性
8つのオープンソースKiCadプロジェクトの部品240点でテスト済みです(ダウンロード成功率96%、Playwrightなしの場合は94%)。
| メーカー | 状態 | 備考 |
|---|---|---|
| TI | 動作します | URLの正規化によりJavaScriptのリダイレクト用ラッパーを除去します |
| ADI / Analog | 動作します | requestsがHTTP/2を透過的に処理します |
| STMicro | 動作します | User-Agentヘッダーが必要です |
| Nexperia | 動作します | User-Agentヘッダーが必要です |
| Lite-On | 動作します | User-Agentヘッダーが必要です |
| Molex | 動作します | User-Agentヘッダーが必要です |
| Renesas | 動作します | 直接ダウンロード |
| ON Semi | 動作します | 直接ダウンロード |
| NXP | 動作します | 直接ダウンロード |
| Diodes Inc | 動作します | 直接ダウンロード |
| Microchip | 動作します | API URL経由で直接ダウンロード |
| YAGEO、Samsung、Murata | 動作します | DigiKeyがホストするPDF(mm.digikey.com) |
| Broadcom | 動作します* | Playwrightが必要です — docs.broadcom.comはJavaScript経由でPDFを配信します |
| Espressif | 動作します* | Playwrightが必要です — ダウンロードのリダイレクトにJavaScriptの実行が必要です |
| Lattice | 一部動作します | 一部のURLではCookie/認証が必要です |
playwrightパッケージが必要です。インストールされていない場合は、ユーザーへの通知に適切にフォールバックします。
ダウンロードに失敗した場合
スクリプトまたはインラインでのダウンロードが失敗した場合(終了コード1)、ユーザーにその旨を伝え、URLを提示してください。実際のブラウザーでURLを開けるようにします。一部のメーカーサイト(Lattice、TDK InvenSense)では、ヘッドレスブラウザーでも処理できない対話型ログイン、Cookie、CAPTCHAが必要です。Playwrightをインストールすると、BroadcomとEspressifのデータシートは自動的にダウンロードされるようになりました。
ユーザーへのメッセージ例:
ICE40UP5K-SG48Iのデータシートを自動でダウンロードできませんでした — Latticeのサイトではブラウザー認証が必要です。直接リンクはこちらです: https://www.latticesemi.com/-/media/LatticeSemi/Documents/DataSheets/iCE/FPGA-DS-02008-1-9-iCE40-Ultra-Plus-Family-Data-Sheet.ashx
ブラウザーで開いてローカルに保存してください。保存後、内容を読み取って分析できます。
失敗時も、--jsonの出力には常にdatasheet_urlフィールドが含まれるため、プログラムからURLを取得できます。
手動ダウンロードの手順
スクリプトが利用できない場合や、インラインで処理する必要がある場合:
- KeywordSearch または ProductDetails を使用して部品を検索します
- API の応答から
DatasheetUrlを抽出します - URL を正規化します —
//で始まる場合は、先頭にhttps:を追加します。ti.com/general/docs/suppproductinfoを含む場合は、gotoUrlクエリパラメーターを抽出します。 - Python の
requests、またはブラウザーの User-Agent を指定したwget/curlでダウンロードします - PDF であることを確認します:先頭の 4 バイトが
%PDFであること
DatasheetUrl フィールドが空、またはすべてのダウンロード方法が失敗した場合:
- 手動でブラウザーからダウンロードできるよう、URL をユーザーに提示します
- 代替のメディアリンクを取得するため、
/products/v4/search/{pn}/mediaエンドポイントを試します - 最後の手段として Web 検索を行います:
"<MPN> datasheet filetype:pdf"
データシートから抽出する項目
KiCad の設計レビュー(kicad スキルを参照)のためにデータシートを分析する際は、以下を確認します:
- 絶対最大定格 — 電圧、電流、温度の上限
- 推奨動作条件 — 一般的な動作範囲
- ピン配置とピンの説明 — KiCad のシンボルと照合します
- パッケージ寸法 — KiCad のフットプリントと照合します
- 代表的なアプリケーション回路 — ユーザーの回路図と比較します
- 熱特性 — 消費電力の計算に用いる θJA、θJC
- 電気的特性 — 主要なパラメーター(Vout、Iq、PSRR など)
ヒント
- DigiKey の PN サフィックス:
-NDは標準、-1-NDはカットテープ、-2-NDは digi-reel、-6-NDはフルリール - サードパーティ販売業者の掲載を避けるには、
ExcludeMarketPlaceフィルターを使用します ProductVariations[].StandardPricing[]にある価格区分を確認します —BreakQuantityのしきい値をチェックしてください- 部品を選択する前に、
ProductStatusとDiscontinued/EndOfLifeを確認します