リアルタイム金価格チャートはどう動くのか?
現物価格、OHLCバー、UTCタイムスタンプ、制御されたポーリングを組み合わせる仕組みを、TypeScriptとSVGの実例で解説します。
読む →Redditで繰り返し出てくる金価格API関連の疑問に、率直に答える。無料プラン、更新頻度、レート制限、認証方式、数値の出どころ、商用利用の可否、そして本番で使うに足るクオリティかどうかまで。
Redditで「金価格 API」を検索すると、スレッドの形はほぼ毎回同じだ。ダッシュボード、価格アラート、トレーディングボット、あるいは地金を値付けするオンラインストアを作っている誰かが、コードから取得できるリアルタイムの金価格を求めている。何かを組み込む前に、彼らはr/algotrading、r/webdev、r/golangで、決まって同じ一握りの質問をする。無料プランはあるか、数値はどれくらい新鮮か、制限はどうなっているか、商用利用できるか、そのデータは信頼できるか、という質問だ。
本稿ではgoldprice.devを実例として、これらの質問に直接答えていく。読むだけなら登録は不要で、下に示す最初のAPI呼び出しはキーなしで動く。
これは開発者向けのコモディティ価格APIであり、金・銀・銅をhttps://api.goldprice.devにある単一の認証付きRESTエンドポイントから提供する。すべてのレスポンスには相互検証済みの陳旧度フラグが含まれており、?include=を使えばデータソースごとの価格・タイムスタンプや乖離幅も取得できるので、あるアップストリームが遅れているときにコード側で黙って失敗するのではなく、それを検知できる。MCPサーバーは無料プランを含む全プランに標準で付属している。
これは証券会社でも決済用のフィードでもない。ここで提供される価格は、表示・分析・アラート用に公開される参考値だ。取引を決済するための約定可能なディーリング・クオートが必要なら、公開されている金価格APIのどれも適切なツールではない。それは本APIも例外ではない。
ある。しかもクレジットカードは不要だ。無料プランは月1,000回の呼び出し、毎分30リクエストまでで、金(XAU)のリアルタイム現物価格をカバーする。有料プランでは、銀と銅、先物決済データ、より高い上限、そして商用利用権が加わる。
| プラン | 価格 | 月間呼び出し数 | 追加される内容 |
|---|---|---|---|
| Free | $0 | 1,000 | XAU現物、MCP、カード不要 |
| Physical | $10/月 | 20,000 | + 金先物、国別ディーラー価格 |
| Pro | $30/月 | 100,000 | + 銀、銅、30年分の日次履歴、商用利用 |
| Realtime Pro | $80/月 | 1,000,000 | + XAU/XAG WebSocketティックストリームとphysicalチャネル |
リアルタイムの現物価格は、1日1回のスナップショットではなく、継続的に更新されるオラクルだ。先物決済値は取引所の決済スケジュールに従って更新される。このAPIの要点は、いま自分が見ているのがどちらの種類の値なのかを推測する必要が一切ないということだ。すべてのレスポンスにはcomputed_atが含まれ、値が想定される更新ウィンドウより古くなるとis_staleがセットされる。より細かい粒度が必要なら、?include=sourcesでデータソースごとのタイムスタンプまで分解できる。「リアルタイム」という漠然としたラベルを鵜呑みにするのではなく、レスポンス本体から新鮮さを直接読み取れる。
無料プランは毎分30リクエスト、有料プランはそれぞれ120と500になる。すべてのレスポンスに標準のX-RateLimit-Remainingヘッダーが付いてくるので、正しいやり方はそれを読み取り、残数が少なくなったら自ら速度を落とすことであり、闇雲にポーリングして429を食らうことではない。ほとんどのアプリでは、元の値が実際に動く頻度に合わせた短いクライアント側キャッシュを挟むだけで、無料プランの範囲に余裕を持って収まる。
ベアラートークンによる認証だ。キーにはga_live_という接頭辞が付き、Authorizationヘッダーに入れる。加えて、IPごとに毎時100リクエストまでという上限付きの匿名アクセス経路も用意されており、認証済み呼び出しと同じ簡素なデフォルト形式(価格、買値、売値、陳旧度フィールド)を返すので、登録前にテストできる。認証してもデフォルトの中身は変わらないが、始値・高値・安値・前日終値・変化率、そしてデータソース間の乖離フィールドを含む?include=statsが解禁される。なお?include=sourcesと?include=karatは認証の有無にかかわらず利用できる。
できる。そしてこれこそ、大半のAPIが隠している部分だ。?include=sourcesを付けると、レスポンスにsources[]という配列が含まれ、アップストリームごとに1行、それぞれ独自の価格とタイムスタンプを持つ。データソース間で食い違いがある場合、?include=stats(認証必須)にはdivergence_bpsとdivergence_flagが含まれるので、出所不明な単一の混合値を鵜呑みにするのではなく、自分自身で許容範囲を決められる。誤った価格がコストにつながるようなものを作っているなら、この可視性こそが、ウェブページのスクレイピングではなく構造化されたAPIを使うべき理由だ。
無料プランとPhysicalプランは、個人利用および評価目的に限られる。商用利用、すなわち自分がリリースするプロダクトの中で価格を再表示することは、Proプランから可能になり、出典表示が必須になる。自分のユーザーの前に金価格を表示するつもりなら、Proが最低ラインだ。
使える。MCPサーバーは無料プランを含む全プランに含まれている。Claude、Cursor、あるいはMCPに対応した任意のランタイムに設定ブロックを一つ追加するだけで、独自のツールコードを書かなくても、エージェントが直接リアルタイム価格を取得できるようになる。データはREST APIが提供しているものと同一だ。セットアップの詳細を知りたい場合は、MCPの完全な手順ガイドを参照してほしい。
キーも依存関係も不要だ。
curl https://api.goldprice.dev/v1/prices?symbol=XAU-USD-SPOT
価格、買値、売値、そして陳旧度フラグを含むJSONが返ってくる。この一回の呼び出しだけで、いま作っているものに、リアルタイムで偽りのない金価格を組み込むには十分だ。カラット別のグラム単価内訳が欲しければ?include=karatを、寄与しているデータソースが欲しければ?include=sourcesを付け加える。完全なレスポンス形式とより高い上限が欲しくなったら、無料キーの取得は1分で終わる。
特定言語向けの実装については、Fetch live gold prices in JavaScriptがREST経路を端から端まで解説しており、Caching gold prices and staying inside rate limitsは大量アクセス時の扱い方をカバーしている。
関連ガイド
現物価格、OHLCバー、UTCタイムスタンプ、制御されたポーリングを組み合わせる仕組みを、TypeScriptとSVGの実例で解説します。
読む →確定済みのXAU/USD日次バーと過去のFX観測値を組み合わせ、当時は入手できなかったレートを誤って使うことなく、現地通貨建てのゴールド戦略をテストする方法。
読む →iframeひとつで、無料の設定可能なライブ・ゴールド価格ウィジェットをWordPressに追加できる。GutenbergとElementorの両方で動作し、APIキーもプラグインも不要。
読む →goldprice.dev
リアルタイムの金価格、ヒストリカルOHLC、マルチソース集計 — REST・SSE経由で提供。