貴金属価格APIの選び方:確認すべき12の質問
特定のベンダーに偏らない、貴金属価格APIの選定チェックリスト。データソース、鮮度、過去データ、単位、Bid/Ask、制限、料金、セキュリティ、利用規約、MCP対応を確認します。
チェックリストが役立つ理由
貴金属価格APIの多くは、ランディングページだけを見ると似通っています。金と銀のリアルタイム価格、多数の通貨、JSONレスポンス、そして無料プラン。重要な違いが表面化するのは、もっと後になってからです。週末にダッシュボードが古い価格を表示したとき、グラム価格が販売店の価格と違う理由を顧客に尋ねられたとき、月間クォータが20日に尽きたとき、あるいは法務チームから、そもそもそのデータを顧客に見せてよいのかと問われたときです。
このチェックリストには、契約前に答えを出しておきたい12の質問をまとめました。どのプロバイダーにも当てはまり、週末の個人プロジェクトにも正式な調達審査にも使えます。後半には、コピーして使える比較テンプレートと、実際に試すための短いテスト項目も掲載しています。この記事はMetalAPIが公開しているため、最後のセクションでは当社自身の回答を示します。それより前の内容は、どのプロバイダーを選ぶ場合にも役立つように書いています。
データ:ソース、鮮度、過去データ
1. 価格はどこから来ているか? 貴金属価格のソースにはいくつかの種類があります。店頭(OTC)スポット市場における銀行やリクイディティプロバイダーの気配値、COMEX金などの取引所先物、LBMAオークション価格のような公式ベンチマーク、あるいは別のアグリゲーターです。どれも間違いではありませんが、それぞれ異なる数値です。シンボルごとにどのソースを使っているか、複数のソースを組み合わせているならその方法、明らかな異常ティックをどう除外しているかを確認しましょう。自社の金価格が何を表しているのか(スポットの仲値か、先物か、ベンチマークか)をプロバイダーが説明できないなら、あなたも自分のユーザーに説明できません。
2. 実際に契約するプランで、データはどれくらい新しいか? トップページにある「リアルタイム」は、最上位プランのことを指している場合がよくあります。プランごとの更新間隔を確認し、すべてのレスポンスに、リクエストの時刻だけでなくデータそのものの時刻が含まれているかを確かめてください。取引時間外の扱いも確認が必要です。スポット金属は、ニューヨーク時間の金曜夕方から日曜夕方まで取引が止まります。優れたAPIは、週末の価格が金曜の終値であることを明確に示します。
3. 過去データはどこまでさかのぼれ、何で構成されているか? 資産クラスごとの開始日、取得できるのが日次の終値だけなのか始値・高値・安値・終値なのか、そして「終値」がどう定義されているか(どのタイムゾーンか、どのソースか)を確認しましょう。古い過去データが現在の価格とは別のソースに基づいていないか(たとえば、ある日付以前は先物の清算値を使っているなど)も確認してください。長期のチャートに小さな不連続が生じる原因になるためです。最後に、1回の期間指定リクエストで何日分を取得できるかを確認しましょう。
適合性:単位、通貨、Bid/Ask
4. どの単位と通貨に対応しているか? 貴金属はトロイオンス単位で取引されますが、ユーザーはグラムやキログラム、そして自国の通貨で考えるかもしれません。単位パラメーターがあれば、換算をすべて自分で行う必要がなくなります。APIが単位をどう呼んでいるかも確認しましょう。トロイオンス(31.103 g)と常衡オンス(28.35 g)は10%近く違うからです。トルコリラ建ての金や円建ての銀のようなクロスレートが必要なら、それらが一貫した1つのスナップショットから計算されているかを確認してください。宝飾品の用途では、カラット別の価格も必要になるかもしれません。
5. BidとAskが必要か、それとも仲値で十分か? チャートや評価額には、通常は仲値を使います。販売店のオンラインストア、買取価格の計算ツール、トレーディングツールでは、通常、気配値の両側が必要です。BidとAskが提供されているか、どのシンボルとプランで利用できるか、仲値と同じスナップショットに基づいているかを確認しましょう。これらの用語になじみがない場合は、スポット、Bid、Ask、スプレッドの解説記事をご覧ください。
運用:信頼性、制限、エラー
6. どれくらい信頼でき、それをどう確かめるか? APIだけでなくデータソースもカバーする公開ステータスページと、過去の障害履歴を探しましょう。上流のソースに障害が起きたときにどうなるかも確認してください。別のソースに切り替えるのか、データが古いことを明示するのか、それとも何も告げずに最後の価格を返し続けるのか。稼働率が契約上重要なら、どのプランにサービスレベル契約(SLA)が含まれ、具体的に何が対象になるのかを確認しましょう。
7. レート制限とクォータはどうなっているか、何がカウントされるか? 多くのプロバイダーは、月間のリクエストクォータと、1分あたりまたは1秒あたりの上限を組み合わせています。経済性を左右するのは、目立つ数字よりも細部です。20シンボルのリクエストは1回と数えるのか、20回なのか。失敗したリクエストは課金されるのか。無料のエンドポイントはあるのか。上限に達したら何が起きるのか。次の期間まで完全に停止するのか、超過料金が自動で発生するのか、速度が制限されるのか。実際の使用量を各プランに当てはめて試算してください。1分に1回、24時間リクエストすると、月に約43,200リクエストになります。
8. エラーはどのように報告されるか? 優れたAPIは、意味のあるHTTPステータスに、機械可読なエラーコードと人が読めるメッセージを添えて返し、すべてのコードを文書化し、いつ再試行すべきかを伝えます(たとえば、レート制限時のRetry-Afterヘッダー)。エラー形式がエンドポイント間で統一されているか、クライアントやテストの生成に使えるOpenAPIのような機械可読な仕様が提供されているかも確認しましょう。
契約面:料金、セキュリティ、利用規約
9. 料金体系は使い方に合っているか? 定額の月額プラン、呼び出しごとの従量課金、個別契約を、プロバイダーが示す例ではなく、自分の想定ボリュームで比較してください。無料プランに実際に何が含まれるか(更新間隔、エンドポイント)、年払いで料金が変わるか、税金が加算されるか、解約の方法も確認しましょう。使用量がプランの境目に近い場合は、プラン間の価格差の大きさが重要になります。
10. APIキーはどのように保護されるか? URLはログに残るため、URLだけでなくヘッダーでもキーを送れるかを確認しましょう。複数のキーを保持し、ダウンタイムなしでローテーションできるか、プロバイダーがキーをハッシュ化して保存しているかも確認してください。ブラウザで価格を使う必要がある場合は、ドメイン制限付きキーや、キーをまったく公開せずに済む埋め込みウィジェットを探しましょう。公開されたJavaScript内のキーは誰でもコピーできます。
11. 利用規約で何が認められているか? 開発を始める前に、データのライセンスを読んでください。自社の顧客に価格を表示してよいか。過去データを自社のデータベースに保存してよいか。自社のAPIを通じてデータを提供するような再配布は認められているか。認められていない場合、そのためのライセンスを取得できるか。クレジット表記は必要か。LBMA価格のような公式ベンチマークはベンチマーク管理者が運営しており、通常は別途ライセンスが必要です。フィードにベンチマークデータが含まれているか、それが自分にとって何を意味するかを確認しましょう。免責事項も確認してください。価格データは通常、取引の申し出ではなく、情報として提供されます。
将来への備え:AIとMCPへの対応
12. AIアシスタントやエージェントから利用できるか? 分析の多くは、チャットアシスタントやコーディングエージェントの中で行われるようになっています。Model Context Protocol(MCP)は、それらをツールやデータに接続するためのオープン標準です。MCPサーバーを提供しているプロバイダーなら、アシスタントは学習データから推測するのではなく、実際の価格を取得できます。確認したい点は次のとおりです:
- ホスト型のMCPサーバーはあるか。どのトランスポートとクライアントに対応しているか。
- 認証方式は何か。チャットアプリ向けのOAuthサインイン、開発者ツール向けのAPIキー、またはその両方か。
- どのツールが読み取り専用か。何かを変更するツールは、実行前に確認を求めるか。
- アシスタントからの呼び出しは同じクォータにカウントされるか。サーバーが勝手に課金することはあるか。
- コーディングアシスタントが連携コードを正しく書けるよう、
llms.txtファイルやOpenAPI仕様など、言語モデル向けのドキュメントが用意されているか。
現時点でAIツールを使っていなくても、これらの回答から、そのAPIがどれだけ最新で、どれだけ丁寧に文書化されているかがわかります。
記入して使える比較テンプレート
この表をスプレッドシートやドキュメントにコピーし、プロバイダーごとに1列ずつ記入してください。後で再確認できるよう、それぞれの回答の出典(ドキュメントのページ、サポートからの返答、自分で行ったテスト)もメモしておきましょう。
| # | 質問 | 確認ポイント | プロバイダーA | プロバイダーB | プロバイダーC |
|---|---|---|---|---|---|
| 1 | データソース | 資産クラスごとのソース名、集約方法、異常ティックの除外 | |||
| 2 | 鮮度 | 契約プランの更新間隔、データのタイムスタンプ、週末の挙動 | |||
| 3 | 過去データ | 開始日、OHLC、終値の定義、1リクエストあたりの最大期間 | |||
| 4 | 単位と通貨 | トロイオンス、グラム、キログラム、基準通貨、一貫したクロスレート | |||
| 5 | Bid/Ask | 対応するシンボルとプラン、仲値と同じスナップショットか | |||
| 6 | 信頼性 | ステータスページ、障害履歴、フォールバック、SLA | |||
| 7 | 制限とクォータ | 月間および1分あたりの上限、カウント対象、上限到達時の挙動 | |||
| 8 | エラー | HTTPステータスとコード、再試行の指針、OpenAPI仕様 | |||
| 9 | 料金 | 想定ボリュームでのコスト、無料プラン、年払い、解約 | |||
| 10 | セキュリティ | ヘッダー認証、複数のキー、ローテーション、ドメイン制限 | |||
| 11 | 利用規約 | 表示の権利、保存、再配布、クレジット表記 | |||
| 12 | AIとMCP | ホスト型MCPサーバー、OAuthまたはキー、読み取り専用ツール、LLM向けドキュメント |
書面上の回答は出発点にすぎませんが、ほとんどの項目は短い実地テストで決着がつきます。各候補の無料キーまたはトライアルキーを使って、次のことを試してください:
- 各プロバイダーに同じシンボルを同じタイミングでリクエストし、値、タイムスタンプ、単位を比較します。
- 土曜日に同じリクエストを繰り返し、各APIが閉場中の市場をどう表現するかを確認します。
- わざとエラーを起こし(誤ったキー、不明なシンボル、未来の日付)、ステータスコードとメッセージを確認します。
- 1年分の日次データをリクエストし、欠損やスパイク、ソースが切り替わった可能性のある水準の変化がないかを調べます。
- レイテンシは、手元のノートPCではなく、サーバーが稼働している場所から計測します。
次の小さなスクリプトは、1つ目と最後の項目に役立ちます。URL、認証ヘッダー、タイムスタンプのフィールドは、各プロバイダーのドキュメントに合わせて調整してください。また、呼び出しのたびにクォータを消費することに注意してください:
// エンドポイントを数回呼び出し、HTTPステータス、レイテンシ、データの経過時間を記録します。
const TARGET = process.env.PRICE_API_URL;
const HEADERS = { Authorization: "Bearer " + process.env.PRICE_API_KEY };
for (let i = 0; i < 5; i++) {
const started = Date.now();
const res = await fetch(TARGET, { headers: HEADERS });
const body = await res.json().catch(() => ({}));
const latencyMs = Date.now() - started;
// 多くのAPIはUnix秒を返します。この行はプロバイダーのフィールドに合わせて変更してください。
const dataTime = typeof body.timestamp === "number" ? body.timestamp * 1000 : null;
const dataAgeSeconds = dataTime ? Math.round((Date.now() - dataTime) / 1000) : "n/a";
console.log({ status: res.status, latencyMs, dataAgeSeconds });
await new Promise((resolve) => setTimeout(resolve, 2000));
}MetalAPIの回答
参考までに、当社自身の回答も示します。内容は、ドキュメントで確認できる事実に限定しています。ほかのプロバイダーと同じ基準で評価してください。
- ソース: スポットの貴金属と主要通貨はインターバンクのBid/Askフィード、産業用金属とエネルギーはCOMEX、NYMEX、ICEの期近先物、暗号資産はKrakenとBinance、為替は欧州中央銀行の参照レートです。複数のソースは中央値で統合され、異常ティックのチェックが行われます。
- 鮮度: Freeは毎日、Liteは30分ごと、Standardは10分ごと、AdvancedとProは1分ごと、UltraとBusinessは15秒ごと、Enterpriseは5秒ごとに更新されます。すべてのレスポンスにデータの
timestampが含まれます。週末は、金属、通貨、先物の価格が金曜の終値のまま据え置かれます。 - 過去データ: 日次の始値・高値・安値・終値を、通貨は1999年から、金属とエネルギーは2000年から、暗号資産は2014年から提供しています。2026年10月より前の金属の過去データは、期近先物の清算値に基づいています。1回の期間指定リクエストで取得できるのは、Freeで最大30日、有料プランで最大365日です。
- 単位と通貨: グラムからショートトンまで7つの質量単位と57の通貨に対応し、任意のシンボルを基準にでき、クロスレートは1つのスナップショットから計算されます。有料プランでは、カラット別の金価格も利用できます。
- Bid/Ask: Standard以上のプランで、貴金属と主要通貨について
XAU-BIDやXAU-ASKのようなシンボルを、仲値と同じスナップショットから提供します。 - 信頼性: データソース、レイテンシ、APIのトラフィック量を、フォールバックソースの使用状況も含めて表示する公開のステータスページがあります。BusinessとEnterpriseプランには、稼働率のSLAが付きます。
- 制限: すべてのプランに、月間クォータと1分あたりの上限があります。リクエストは返されるシンボルの数にかかわらず1回とカウントされ、
/symbolsと/usageは無料です。レート制限、プランの制限、オリジンのチェック、サーバーエラーで拒否されたリクエストは課金されません。クォータに達すると、毎月1日(UTC)またはアップグレードまでエラー105が返されます。自動の超過料金はありません。 - エラー: HTTPステータスに加え、数値の
code、type、infoメッセージをJSONで返します。レート制限時にはRetry-Afterを付け、コードの一覧を文書化し、OpenAPI 3.1仕様を公開しています。 - 料金: Free($0、月100リクエスト)から、Lite($4.99)、Standard($11.99)、Advanced($24.99)、Pro($49.99)、Ultra($99.99)、Business($149.99)、Enterprise($299.99、150万リクエスト)までの定額プランです。月払いまたは年払いで、請求ページから解約できます。詳しくは料金ページをご覧ください。
- セキュリティ: キーはハッシュとしてのみ保存され、ヘッダーで送信できます。プランに応じて複数のキーを保持でき、キーのロールや無効化、自社ドメインへの制限も可能です。埋め込みウィジェットを使えば、キーを公開せずに価格を表示できます。
- 利用規約: 自社のWebサイト、アプリ、社内システム、レポートでデータを利用でき、ユーザーに価格を表示することもできます。生のフィードを再配布する場合(たとえば自社のAPIとして提供する場合)は、別途書面による契約が必要です。データは情報提供を目的としたもので、投資助言ではありません。利用規約をご覧ください。
- AIとMCP:
https://metalapi.com/mcpでホスト型MCPサーバー(Streamable HTTP、OAuth 2.1またはAPIキー)を提供しており、13のツールのうち11は読み取り専用です。何かを変更する2つのツールは事前に確認を求め、サーバーが課金を行うことは一切ありません。公式MCPレジストリに登録されており、llms.txtとOpenAPI仕様も公開しています。詳しくはAI & MCPをご覧ください。
どのプロバイダーを選ぶにしても、上記の実地テストを、ご自身のシンボルと使用パターンで実行してください。MetalAPIを候補に入れている場合、ほとんどのテストは無料アカウントで実施でき、残りはAPIドキュメントで確認できます。
関連記事
MCPでClaudeとChatGPTを金のリアルタイム価格に接続する
MetalAPIのMCPサーバーで、Claude、ChatGPT、Cursor、VS Codeを金・金属のリアルタイム価格に接続。OAuthまたはAPIキーでの設定、ツール、安全性、クォータを解説します。
金価格API:開発者のための完全ガイド
金価格APIの使い方を解説します。APIキーの取得、curl・JavaScript・Pythonからの呼び出し、レートの正しい読み方から、過去データ、エラー、クォータ、キャッシュの扱いまで網羅しています。
スポット、Bid、Ask、スプレッド:貴金属価格の提示のしくみ
金・銀・プラチナ・パラジウムにおけるスポット、Bid、Ask、仲値、スプレッドの意味、ディーラーが見積もりを作るしくみ、APIでBid/Askを取得して表示する方法を解説します。