ブログ開発者

Pythonで金価格を1グラム単位で取得する(24K・22K・18K)

APIキーなしで24K、22K、18Kの1グラム当たり金価格をPythonで取得し、Decimalで安全に計算する方法。

2026年9月22日 · 読了時間:2分

Pythonで金価格を1グラム単位で取得する(24K・22K・18K)

アプリで1グラム当たりの金価格が必要なら、公開`/v1/carat`エンドポイントから純度別の値を直接取得できます。1回のリクエストで24K、22K、21K、20K、18K、16K、14K、10Kが返り、試用時はAPIキーも不要です。

Pythonで1グラム当たりの価格を取得する

標準ライブラリだけを使い、金額をDecimalとして読み取ります。これにより浮動小数点の誤差を避けられます。

Python
import jsonfrom decimal import Decimalfrom urllib.parse import urlencodefrom urllib.request import Request, urlopenurl = "https://api.goldprice.dev/v1/carat?" + urlencode({"currency": "JPY"})with urlopen(Request(url, headers={"Accept": "application/json"}), timeout=10) as response:    payload = json.load(response)prices = {    "currency": payload["currency"],    "timestamp": payload["timestamp"],    "24k": Decimal(payload["price_gram_24k"]),    "22k": Decimal(payload["price_gram_22k"]),    "18k": Decimal(payload["price_gram_18k"]),}

JPYはUSD、EUR、GBP、INR、IDR、AEDなどに変更できます。価格の観測時点を示すtimestampも保存してください。

金製品の地金価値を計算する

12.5グラムの18K製品なら、18Kのグラム単価に重量を掛け、最後に一度だけ丸めます。

Python
from decimal import Decimal, ROUND_HALF_UPweight = Decimal("12.5")value = (weight * prices["18k"]).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)

エンドポイントのグラム単価は、指定通貨の最小単位の精度で返ります。この結果は金含有量の参考価値であり、小売価格や買取価格ではありません。加工費、宝石、税、プレミアム、精錬費、買取控除は別です。

グラムと純度の計算方法

APIはXAU価格を指定通貨へ換算し、トロイオンス価格を31.1034768で割り、22 / 24や18 / 24などの純度比を掛けます。

本番運用チェック

  • 金額はDecimalのまま扱う。
  • 値とtimestampを一緒に保存する。
  • 必要な鮮度に合わせて成功レスポンスをキャッシュする。
  • 取得失敗をゼロや新しい時刻で置き換えない。
  • 結果を決済価格ではなく参考値と表示する。
  • アカウントキーはサーバーだけに置く。

全フィールドはcarat APIドキュメント、日次OHLCは履歴APIを参照してください。

リアルタイムの金価格、ヒストリカルOHLC、マルチソース集計,REST・SSE経由で提供。

続きを読む

無料のAPIキーで始める

無料プランで月5,000リクエスト利用できます。クレジットカードは不要です。

無料キーを取得