銀価格API:XAGのリアルタイム価格と過去価格をJSONで取得
銀価格APIでXAGのリアルタイム価格と過去価格を、トロイオンス・グラム・キログラムあたり、57通貨で取得する方法を、コード例、キャッシュのヒント、実際の用途とともに解説します。
銀価格APIで得られるもの
銀価格APIは、銀の現在価格と過去価格を構造化データとして返します。通常はHTTPS経由のJSONで提供されるため、ショップ、アプリ、レポートでウェブサイトから数値をコピーせずに利用できます。MetalAPIでは、銀のシンボルはXAGで、銀1トロイオンスを表すISO 4217コードです。リアルタイムの値はスポット価格、つまり卸売市場のBidとAskの気配値の仲値です。
銀は金と同じAPIで扱えますが、銀ならではの特徴があります。価格はトロイオンスあたりで提示されるのに売買はグラムやキログラム単位で行われること、1グラムあたりの価格が小さいため丸めが重要になること、銀器やスクラップの買い手はカラットではなく品位で考えることです。このガイドでは、銀に特有のリクエストと注意点を取り上げます:
- 1回のリクエストで銀のリアルタイム価格を取得し、正しく読む方法。
- 1オンス、1グラム、1キログラムあたりの銀価格。
- 他の通貨建ての銀価格(これも1回のリクエストで取得)。
- 2000年まで遡る銀の過去価格。
- 用途:地金ショップ、銀器やスクラップの買取業者、投資アプリ。
APIで銀のリアルタイム価格を取得する方法
無料アカウントを作成し、ダッシュボードでAPIキーを追加します。キーはmk_live_で始まります。キーは環境変数に保存してヘッダーで送信し、XAGを指定して/latestをリクエストします:
export METALAPI_KEY="mk_live_your_key_here"
curl "https://metalapi.com/api/v1/latest?base=USD¤cies=XAG" \
-H "X-API-Key: $METALAPI_KEY"レスポンスは次のとおりです。数値はMetalAPIのドキュメント全体で使われている例の値で、リアルタイムの価格ではありません:
{
"success": true,
"timestamp": 1792713600,
"date": "2026-10-23",
"base": "USD",
"rates": {
"XAG": 0.01853911754,
"USDXAG": 53.94
}
}USDXAGは銀1トロイオンスの基準通貨建て価格で、この例では53.94米ドルです。XAGはその逆数(1ドルあたりの銀のトロイオンス数)で、為替系APIとの互換性のために残されています。必ず接頭辞付きのキーを読み取ってください。rates.XAGを価格として扱うと、53.94ではなく0.0185と表示されてしまいます。
timestampはリクエストの時刻ではなく、データの時刻です。銀のスポット取引は平日は24時間行われ、ニューヨーク時間の金曜日17:00から日曜日17:00までは休止するため、週末の間、APIは金曜日の終値を返し続けます。特に土曜日と日曜日は、価格の横にタイムスタンプを表示してください。
金、プラチナ、パラジウムも必要なら、同じリクエストに追加してください:currencies=XAU,XAG,XPT,XPD。返されるシンボルの数にかかわらず、カウントは1リクエストです。
1オンス、1グラム、1キログラムあたりの銀価格
unitを指定しない限り、銀価格は1トロイオンス(31.1034768グラム)あたりです。指定できる値はtroy_oz(デフォルト)、gram、kilogram、ounce、pound、metric_ton、short_tonで、単位がデフォルト以外の場合、レスポンスにはトップレベルのunitフィールドが追加されます:
curl "https://metalapi.com/api/v1/latest?currencies=XAG&unit=kilogram" \
-H "X-API-Key: $METALAPI_KEY"例の価格である1トロイオンス53.94ドルの場合、銀の価格は次のとおりです:
| 価格の単位 | USD | 主な用途 |
|---|---|---|
| トロイオンス(31.1035 g) | 53.94 | スポットの気配値、コイン、ラウンド |
| グラム | 1.7342 | ジュエリー、銀器、スクラップ |
| キログラム | 1,734.21 | キロバー、卸売、インドでの価格 |
| トラ(11.6638 g) | 20.23 | 南アジアと湾岸諸国 |
| 常衡オンス | 49.16 | 銀にはほぼ不適 |
unit=ounceとその短縮形ozは、28.35グラムの常衡オンスです。1トロイオンスあたりの銀価格は、常衡オンスあたりの価格より約9.7%高くなります。スポットの気配値には、unitを省略するかtroy_ozを指定してください。
銀については、2つの習慣を取り入れる価値があります。第一に、1グラムあたりの価格は小数点以下の桁数を多めに表示してください。1.7342ドルでは、小数点以下2桁だと日々の値動きのほとんどが見えなくなるため、4桁がよく使われます。第二に、複数の単位で表示する場合は、単位ごとにリクエストするのではなく、トロイオンスで一度リクエストしてローカルで換算してください。換算係数は正確な値です:
const GRAMS_PER_TROY_OZ = 31.1034768;
const res = await fetch("https://metalapi.com/api/v1/latest?currencies=XAG", {
headers: { "X-API-Key": process.env.METALAPI_KEY },
signal: AbortSignal.timeout(10_000),
});
const data = await res.json();
if (!data.success) throw new Error(`MetalAPI ${data.error.code} (${data.error.type}): ${data.error.info}`);
const perOz = data.rates[`${data.base}XAG`]; // ドキュメントの例では53.94
const perGram = perOz / GRAMS_PER_TROY_OZ; // 1.7342...
const perKg = perGram * 1000; // 1734.21...
console.log({ perOz, perGram: perGram.toFixed(4), perKg: perKg.toFixed(2) });トロイオンス、グラム、キログラムには、ペニーウェイトを含むすべての換算係数と、請求書での丸めのルールを掲載しています。
他の通貨建ての銀価格
別の通貨で銀の価格を取得するには、baseを設定します。base=EURではEURXAG、base=INRではINRXAGが返されます。unitと組み合わせると、次のリクエストは1グラムあたりのユーロ建て価格を返します:
curl "https://metalapi.com/api/v1/latest?base=EUR¤cies=XAG&unit=gram" \
-H "X-API-Key: $METALAPI_KEY"{
"success": true,
"timestamp": 1792765800,
"date": "2026-10-23",
"base": "EUR",
"unit": "gram",
"rates": {
"XAG": 0.6713138244,
"EURXAG": 1.489616277
}
}複数の通貨で銀を表示する場合も、1回のリクエストで十分です。基準通貨をUSDにして銀と各通貨をリクエストし、割り算をします。ユーロ建ての銀価格はUSDXAG ÷ USDEURです。USDEURは1ユーロの米ドル建て価格だからです。すべての値は同じスナップショットから取得されるため、結果はbase=EURで返される値と一致します。ドキュメントの例のレートである1ユーロ=1.1642ドルでは、53.94 ÷ 1.1642で1トロイオンスあたり46.33ユーロ、1グラムあたり1.4896ユーロとなり、上の結果と同じです:
import os
import requests
GRAMS_PER_TROY_OZ = 31.1034768
CURRENCIES = ["EUR", "GBP", "INR", "TRY"]
resp = requests.get(
"https://metalapi.com/api/v1/latest",
params={"base": "USD", "currencies": ",".join(["XAG", *CURRENCIES])},
headers={"X-API-Key": os.environ["METALAPI_KEY"]},
timeout=10,
)
data = resp.json()
if not data["success"]:
err = data["error"]
raise RuntimeError(f"MetalAPI {err['code']} ({err['type']}): {err['info']}")
rates = data["rates"]
silver_usd = rates["USDXAG"]
for cur in ["USD", *CURRENCIES]:
per_oz = silver_usd if cur == "USD" else silver_usd / rates["USD" + cur]
print(f"{cur}: {per_oz:,.2f} per troy oz, {per_oz / GRAMS_PER_TROY_OZ:,.4f} per gram")サポートされている57通貨のどれでも同じように使え、金、プラチナ、パラジウムも同様なので、1回の呼び出しで価格ボード全体をまかなえます。銀が通常1キログラムあたりで提示されるインドでは、base=INR&unit=kilogramを指定すれば、なじみのある数値が直接得られます。
APIで銀の過去価格を取得する
銀の履歴は2000年から始まり、リアルタイム価格と同じパラメーターとレスポンス形式を使います。各日の値はその日の終値で、日付はUTCです。ほとんどの用途は次の4つのエンドポイントでカバーできます:
/YYYY-MM-DD、/historical?date=、または/yesterday:1日分の終値。週末や祝日の場合は、直近の取引日の終値が返されます。/timeframe:start_dateからend_dateまでの日次終値。1リクエストあたり、Freeでは最大30日、有料プランでは最大365日です。/change:2つの日付間の開始価格、終了価格、変動額、変動率。/ohlc:1日分の始値、高値、安値、終値。
# 2024年1月15日終値の銀(ドキュメントの例ではUSDXAG 23.162)
curl "https://metalapi.com/api/v1/2024-01-15?currencies=XAG" \
-H "X-API-Key: $METALAPI_KEY"
# 2026年9月の銀の日次終値(1グラムあたりのユーロ建て)
curl "https://metalapi.com/api/v1/timeframe?start_date=2026-09-01&end_date=2026-09-30&base=EUR¤cies=XAG&unit=gram" \
-H "X-API-Key: $METALAPI_KEY"
# 銀500グラムの2026年10月1日終値でのユーロ建ての価値
curl "https://metalapi.com/api/v1/convert?from=XAG&to=EUR&amount=500&unit=gram&date=2026-10-01" \
-H "X-API-Key: $METALAPI_KEY"過去の日の終値は変わらないため、繰り返しリクエストせずに保存してください。有料プランの365日の上限なら、2000年以降の完全なバックフィルは1年につき1回の/timeframeリクエストで済みます。なお、2026年10月より前の金属価格は期近の先物から算出されているため、同じ日のスポット価格とわずかに異なる場合があります。
APIで金・銀の過去価格を取得するには、完全なバックフィル用スクリプト、保存と検証のヒント、金価格と金銀比価をあわせたチャートを掲載しています。
銀価格APIの活用例
地金ショップとコイン販売業者。 ディーラーはスポット価格より高く売り、低く買い戻します。一般的な販売価格は、1トロイオンスあたりのスポット価格×純銀の含有量に、製品のプレミアムと1点あたりの固定手数料を加えたものです。プレミアムは製品ごとに保存し、スポット価格はプランの更新間隔で更新して、価格の最終更新時刻を顧客に表示してください。Standardプラン以上では、currenciesにXAG-BIDとXAG-ASKを追加すると、市場のスプレッドに基づいて両側の価格を提示できます。ディーラーがこれらの数値から買取価格と販売価格を作るしくみは、スポット、Bid、Askの解説で紹介しています。
銀器、ジュエリー、スクラップの買取業者。 銀製品は重量と品位(純銀の割合を千分率で表したもの)で価格が決まります。一般的な品位は、999(純銀)、958(ブリタニア)、925(スターリング)、そして古いヨーロッパ大陸の銀器に見られる800です。地金価値(メルトバリュー)は、グラム単位の重量×品位×1グラムあたりの価格です。例の価格である1グラム1.7342ドルでは、500グラムのスターリングのトレイには462.5グラムの銀が含まれ、その価値は約802.07ドルです。スクラップの買取業者は地金価値の一定割合を支払うため、その割合は定数ではなく設定項目にしてください。
MetalAPIのカラット用エンドポイント/caratは金のみに対応しているため、銀の品位の計算はご自身の側で行います:
const GRAMS_PER_TROY_OZ = 31.1034768;
/** 銀製品の地金価値:グラム単位の重量 × 品位(例:0.925) × 1グラムあたりの価格。 */
export function meltValue(grams, fineness, pricePerTroyOz) {
return grams * fineness * (pricePerTroyOz / GRAMS_PER_TROY_OZ);
}
meltValue(500, 0.925, 53.94); // 802.07… 例の価格でのスターリングのトレイ
meltValue(1000, 0.999, 53.94); // 1732.48… 999銀の1キログラムバー投資・ポートフォリオアプリ。 ユーザーはコイン、ラウンド、キロバーを保有しており、その価値を自国通貨で知りたいと考えています。保有量は内部的にトロイオンスで保存し、入力された単位は一度だけ換算して、ユーザーの通貨をbaseにしてポートフォリオを評価してください。/changeは「今月の銀」のような表示のために2つの日付間の変動率を返し、/timeframeから保存した日次終値でチャートを描けます。
価格アラート。 銀が特定の水準を超えたときに対応するだけでよければ、価格アラートで任意の通貨建てのXAGを監視できます。Liteプランからはメールで、Advancedプランからは署名付きWebhookで通知されるため、ポーリングは不要です。
鮮度、クォータ、プラン
銀価格の鮮度はプランによって異なります。プランの更新間隔より頻繁にポーリングしても、同じ数値が返されるだけです:
| プラン | 月額料金 | 月間リクエスト数 | 価格の更新 |
|---|---|---|---|
| Free | $0 | 100 | 毎日 |
| Lite | $4.99 | 1,000 | 30分ごと |
| Standard | $11.99 | 10,000 | 10分ごと、Bid/Askあり |
| Advanced | $24.99 | 50,000 | 1分ごと |
| Pro | $49.99 | 100,000 | 1分ごと、リアルタイムストリームあり |
| UltraとBusiness | $99.99と$149.99 | 500,000 | 15秒ごと |
| Enterprise | $299.99 | 1,500,000 | 5秒ごと |
- 少なくとも更新間隔の間はキャッシュする。 Freeでは、現在の価格の取得は1日1リクエストで十分です。
- すべての金属を1回の呼び出しでリクエストする。
currencies=XAU,XAG,XPT,XPDなら1リクエストで済みますが、4回に分けると4リクエストかかります。 - キーはサーバー上に置く。 訪問者ごとにブラウザからAPIを呼び出すのではなく、キャッシュした価格をページに配信してください。
- 使用状況は無料で確認する。
/usageと/symbolsはクォータにカウントされず、すべてのレスポンスにrate_limitブロックが含まれます。
準備ができたら、無料アカウントを作成してください。クレジットカード不要で、1分ほどでAPIキーを取得できます。更新間隔とクォータは料金ページで比較でき、すべてのエンドポイントとパラメーターのリファレンスはAPIドキュメントです。
よくある質問
価格APIでの銀のシンボルは何ですか?
XAGです。銀1トロイオンスを表すISO 4217コードです。MetalAPIでは、基準通貨建ての銀価格は2つのコードを連結したキーで表され、1オンスあたりの米ドルならUSDXAG、1オンスあたりのユーロならEURXAGです。
無料の銀価格APIはありますか?
はい。MetalAPIのFreeプランには、銀をはじめすべてのシンボルと全期間の履歴が含まれ、月100リクエスト、毎日の価格更新で、クレジットカードも不要です。有料プランは月$4.99からで、30分ごとの更新と1,000リクエストを利用できます。
1グラムあたりの銀価格はどうやって取得しますか?
unit=gramを指定するか、1トロイオンスあたりの価格を31.1034768で割ります。28.35で割らないでください。これは常衡オンスの値で、1グラムあたりの価格が約9.7%過大になります。
銀の過去価格はどこまで遡れますか?
銀の日次価格は、すべてのプランで2000年以降のものを利用できます。1回の期間リクエストで取得できるのは、Freeでは最大30日、有料プランでは最大365日です。
ディーラーの銀価格がAPIの価格と異なるのはなぜですか?
APIが返すのは卸売市場のスポットの仲値です。ディーラーは販売時に鋳造、流通、利益のためのプレミアムを上乗せし、買い戻す際にはスポット価格より安く支払います。そのため、コインやバーの小売価格はスポット価格より高く、買取価格はそれより低くなります。
関連記事
無料の金価格API:月100リクエストでできること
無料の金価格APIを正直に解説します。MetalAPIのFreeプランの内容、キャッシュとまとめ取得で月100リクエストを有効に使う方法、アップグレードの目安を紹介します。
Pythonで金価格APIを使う:価格の取得、キャッシュ、グラフ化
Pythonで金価格APIを使う方法を解説します。requestsでの最新価格の取得、エラー処理とリトライ、レスポンスのキャッシュ、pandasの時系列とmatplotlibによるグラフ化まで紹介します。
JavaScriptで金価格APIを使う:Node.js、TypeScript、Next.js
JavaScriptで金価格APIから金価格を取得する方法。async/awaitとfetch、TypeScriptのレスポンス型、キャッシュ付きのExpress・Next.jsルート、APIキーの安全な扱い方を解説します。