2026 年 10 月 24 日,以印尼盾计价的黄金现货价格,一次请求得到的是每金衡盎司 Rp 72,145,300,约合每克 Rp 2,319,525。黄金可以直接按任何受支持的币种请求;其他大宗商品以美元报价,因此需要乘以汇率。
使用 API 完成操作
用大宗商品代码选择金属或原油,再用币种代码选择其报价币种。黄金支持直接请求印尼盾。白银、铂金、钯金、铜、WTI 和 Brent 的现货价格以美元报价,因此要换算成印尼盾,还需要 USD/IDR 汇率。
现货大宗商品和外汇价格对所有账户都是实时的,这既适用于直接请求黄金,也适用于换算所用的价格。显示印尼盾金额时,请同时标明价格时间,以及该金额是每金衡盎司还是每克。
- 获取你的 API 密钥 获取免费密钥,并保存在环境变量
NARWHAL_API_KEY中。向https://api.narwhalapi.com发送请求时,用Authorization: Bearer YOUR_KEY附上它;大宗商品请求和外汇请求使用同一个账户和密钥。 - 选择报价币种 要获取以印尼盾计价的黄金,请请求
GET /v1/commodities/spot/XAU/IDR;对于白银,请请求其美元现货价格和GET /v1/fx/rates/USD?currencies=IDR。黄金代码之后的币种决定直接报价的币种,而外汇请求提供换算白银所需的汇率。 - 计算印尼盾价格 使用 Python 脚本直接读取 IDR 计价的黄金,并把白银的美元价格乘以 USD/IDR 汇率。它还会把黄金报价除以每金衡盎司的克数,得出四舍五入后的每克价格。
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) - 价格要带上单位 把黄金的输出理解为每金衡盎司和每克的印尼盾价格,把白银的输出理解为每盎司的印尼盾价格。货币换算改变的是白银报价的币种;对黄金另行做的除法改变的则是其重量单位。
脚本从每个大宗商品响应中读取 price,并从外汇响应的 rates 数组中读取 rate。黄金的每克金额在除法之后四舍五入,白银的印尼盾金额则在乘法之后四舍五入。输出的白银计算过程包含该乘法所用的美元价格和汇率。
API 错误使用 application/problem+json,包含 status、code、detail 和 request_id。如果请求返回错误,请先查看其中的 code 和 detail,再决定是否用该响应进行价格计算。
在表格中或无需代码获取价格
如果想不写代码查看黄金价格,请打开 Narwhal 黄金价格页面,其中以多种币种显示黄金价格。当你想直接读取本币计价的黄金价格,而不想自己编写大宗商品和外汇请求时,可以走这条路径。
在表格中使用 =XAUUSD * USDIDR,两个单元格都用 API 的数据填入。XAUUSD 存放以美元计价的黄金价格,USDIDR 存放美元兑印尼盾的汇率。两者的乘积就是相同重量单位下的印尼盾黄金价格。这是黄金的换算路径;API 也支持直接请求 IDR 计价的黄金。
不同情况应选哪种方法
| 情况 | 最合适的方法 | 原因 |
|---|---|---|
| 按受支持币种计价的黄金 | 直接指定币种 | 黄金现货支持外汇覆盖列表中的所有币种 |
| 其他大宗商品的本币价格 | 将美元现货价格乘以 USD/本币汇率 | 其他大宗商品的现货报价仅有美元 |
| 特定时间点的价格 | 两边都使用相同时间戳的 K 线 | 大宗商品价格和汇率必须对应同一时间 |
为什么直接获取和换算得到的印尼盾黄金价格不同?
因为两个报价的时间戳不同。以 2026 年 10 月 24 日的示例为例,印尼盾黄金直接报价的时间戳是 2026 年 10 月 23 日 20:59 UTC,而外汇汇率的时间戳是 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%。请选定一种方法并始终沿用。若要得到特定时间点的价格,请对两边使用相同时间戳的 K 线。
USD/IDR 汇率是乘还是除?
把美元计价的大宗商品价格乘以 USD/IDR 汇率,就得到印尼盾价格。在 2026 年 10 月 24 日的示例中,USD/IDR 18,107.8 表示 1 美元可兑换 18,107.8 印尼盾。请把汇率理解为每美元兑多少印尼盾,再乘以大宗商品报价中的美元数额。
货币换算和重量换算要分开进行。乘以 USD/IDR 得到的是以大宗商品报价重量单位计的印尼盾价格。要把黄金价格表示为每克,请把每金衡盎司的价格除以每金衡盎司的克数 31.1034768。
黄金可以直接请求哪些币种?
黄金支持 外汇覆盖范围列表中的币种。请在现货请求中,把列表里的币种代码放在 XAU 之后。出现 404 currency_not_supported 表示该大宗商品没有该币种的报价。
该币种列表适用于黄金的直接报价。白银、铂金、钯金、铜、WTI 和 Brent 现货仍然只有美元报价。对这些大宗商品,请使用美元报价,并乘以美元兑你所需币种的汇率。
实例:以印尼盾计价的黄金和白银
2026 年 10 月 24 日,黄金的直接报价为每金衡盎司 Rp 72,145,300。以这个印尼盾金额为起点,除以每金衡盎司的 31.1034768 克,再把结果四舍五入到最接近的印尼盾,就得到每克 Rp 2,319,525。
对于 2026 年 10 月 24 日的白银,从每盎司 USD 53.9171 的现货价格开始,乘以 USD/IDR 汇率 18,107.8,再四舍五入到最接近的印尼盾。结果为每盎司 Rp 976,320。
| 2026 年 10 月 24 日的计算 | 数值 | 四舍五入后的结果 |
|---|---|---|
| 黄金(每克) | Rp 72,145,300 / 31.1034768 | 每克 Rp 2,319,525 |
| 白银(每盎司) | USD 53.9171 × 每 1 USD 兑 18,107.8 IDR | 每盎司 Rp 976,320 |
发布于。