2026年10月24日、インドネシア・ルピア建ての金スポット価格は、1 回のリクエストでトロイオンスあたり Rp 72,145,300、1 グラムあたり約 Rp 2,319,525 でした。金は対応するどの通貨でも直接リクエストできます。他の商品は米ドル建てなので、為替レートを掛けます。
APIを使う方法
商品コードで金属または原油を選び、続けて通貨コードで見積通貨を選びます。金はルピアでの直接リクエストに対応しています。銀、プラチナ、パラジウム、銅、WTI、Brent のスポット価格は米ドル建てなので、ルピアで計算するには USD/IDR の為替レートも必要です。
コモディティと FX のスポット価格は、すべてのアカウントでライブです。これは金の直接リクエストにも、換算に使う価格にも当てはまります。ルピア金額を表示するときは、価格の時刻に加え、トロイオンスあたりかグラムあたりかも併記してください。
- APIキーを取得 無料キーを取得し、環境変数
NARWHAL_API_KEYに保存します。Authorization: Bearer YOUR_KEYとしてhttps://api.narwhalapi.comへのリクエストに付けて送ります。商品と FX のリクエストは同じアカウントとキーを使います。 - 見積通貨を選ぶ ルピア建ての金は
GET /v1/commodities/spot/XAU/IDRをリクエストします。銀は、米ドルのスポット価格とGET /v1/fx/rates/USD?currencies=IDRをリクエストします。金のコードの後ろの通貨が直接見積の通貨を決め、FX リクエストは銀を換算するレートを提供します。 - ルピア価格を計算する Python スクリプトで金を IDR で直接取得し、銀のドル価格に USD/IDR レートを掛けます。また、金の見積をトロイオンスあたりのグラム数で割り、四捨五入した 1 グラムあたりの価格も出します。
import os import requests H = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"} API = "https://api.narwhalapi.com/v1" GRAMS_PER_TROY_OUNCE = 31.1034768 # Gold is quoted in every FX currency we serve, so ask for rupiah directly. gold = requests.get(f"{API}/commodities/spot/XAU/IDR", headers=H, timeout=10).json() print( "gold IDR per oz ", gold["price"], "->", round(float(gold["price"]) / GRAMS_PER_TROY_OUNCE), "per gram", ) # Silver is quoted in US dollars only: convert with the USD/IDR rate. silver = float( requests.get(f"{API}/commodities/spot/XAG/USD", headers=H, timeout=10).json()[ "price" ] ) idr = float( requests.get( f"{API}/fx/rates/USD", params={"currencies": "IDR"}, headers=H, timeout=10 ).json()["rates"][0]["rate"] ) print("silver IDR per oz", round(silver * idr), "=", silver, "x", idr) - 価格には単位を付けておく 金の出力はトロイオンスあたりのルピアと 1 グラムあたりのルピア、銀の出力は 1 オンスあたりのルピアとして読みます。通貨の換算が変えるのは銀の見積の通貨であり、金で別に行う割り算が変えるのは重量の単位です。
スクリプトは、各商品のレスポンスから price を、FX レスポンスの rates 配列から rate を読み取ります。金の 1 グラムあたりの金額は割り算の後で、銀のルピア金額は掛け算の後で丸められます。表示される銀の計算には、その掛け算に使ったドル価格と為替レートが含まれます。
API のエラーは application/problem+json で、status、code、detail、request_id を含みます。リクエストがエラーを返した場合は、価格計算にレスポンスを使う前に code と detail を読んでください。
シートで、またはコードなしで価格を取得する
コードなしで金を見るには、Narwhal の金価格ページを開いてください。多くの通貨での金価格を表示します。商品と FX のリクエストを自分で書かずに、自国通貨の金価格を読みたいときに便利です。
シートでは =XAUUSD * USDIDR を使い、2 つのセルにはどちらも API の値を入れます。XAUUSD には米ドル建ての金価格、USDIDR にはドルからルピアへのレートが入ります。その積が、同じ重量単位でのルピア建て金価格です。これは金の換算ルートで、API では IDR の金を直接リクエストすることもできます。
状況に応じた方法の選び方
| 状況 | 適した方法 | 理由 |
|---|---|---|
| 対応通貨建ての金 | 通貨を直接指定する | 金スポットは FX 対応通貨一覧のすべての通貨に対応 |
| その他の商品を自国通貨で | 米ドルのスポット価格に USD/自国通貨のレートを掛ける | 金以外の商品のスポット見積は米ドルのみ |
| 特定の時点の価格 | 両方に同じタイムスタンプのバーを使う | 商品価格と為替レートは同じ時刻のものにする必要があります |
ルピア建ての金で、直接取得した価格と換算した価格が違うのはなぜですか?
2 つの見積のタイムスタンプが異なるためです。2026年10月24日の例では、ルピアの金の直接見積は 2026年10月23日 20:59 UTC、FX レートは 2026年10月23日 00:00 UTC の時刻です。したがって、ドル建ての金の見積にそのレートを掛けると、ルピアの直接見積とは別の時刻で計算することになります。
2026年10月24日の例では、USD 3,996.00 の金に USD/IDR 18,107.8 を掛けると Rp 72,358,769 になり、直接見積の Rp 72,145,300 より 0.3% 高くなります。方法を 1 つ決めて、それを使い続けてください。特定の時点の価格が必要なら、両方に同じタイムスタンプのバーを使います。
USD/IDR のレートは掛けるのですか、割るのですか?
ドル建ての商品価格に USD/IDR のレートを掛けると、ルピア価格になります。2026年10月24日の例では、USD/IDR 18,107.8 は 1 米ドルで 18,107.8 ルピアを買えることを表します。レートは 1 ドルあたりのルピアとして読み、商品見積のドル数に掛けます。
通貨の換算と重量の換算は別々に行ってください。USD/IDR を掛けると、商品見積の重量単位のままでルピア価格になります。金を 1 グラムあたりで表すには、トロイオンスあたりの価格を、1 トロイオンスのグラム数である 31.1034768 で割ります。
金で直接リクエストできる通貨は何ですか?
金は、FX 対応範囲の一覧にある通貨に対応します。スポットのリクエストでは、XAU の後ろに一覧の通貨コードを指定します。404 currency_not_supported は、その商品がその通貨では提供されていないことを意味します。
通貨の一覧が当てはまるのは、金の直接見積です。銀、プラチナ、パラジウム、銅、WTI、Brent のスポットは引き続き米ドルのみです。これらの商品は米ドルの見積を使い、希望の通貨に対するドルの為替レートを掛けてください。
実例:ルピア建ての金と銀
2026年10月24日、金の直接見積はトロイオンスあたり Rp 72,145,300 でした。このルピア金額から始めて、トロイオンスあたり 31.1034768 グラムで割ります。結果を最も近いルピアに丸めると、1 グラムあたり Rp 2,319,525 になります。
2026年10月24日の銀は、1 オンスあたり USD 53.9171 のスポット価格から始めます。これに USD/IDR のレート 18,107.8 を掛け、最も近いルピアに丸めます。結果は 1 オンスあたり Rp 976,320 です。
| 2026年10月24日の計算 | 数値 | 丸めた結果 |
|---|---|---|
| 金(1 グラムあたり) | Rp 72,145,300 / 31.1034768 | 1 グラムあたり Rp 2,319,525 |
| 銀(1 オンスあたり) | USD 53.9171 × 1 USD あたり 18,107.8 IDR | 1 オンスあたり Rp 976,320 |
公開。