实时黄金价格 API
实时黄金价格,一次 API 调用即可。
$
1 · 你的应用
◆
2 · Grams API XAU 4,219.72
XAG 53.40
3 · 实时 JSON
XAG 53.40
1 使用你的 API 密钥发送请求
2 我们获取实时市场行情
3 即时返回 JSON——支持任何货币
5种金属
14+种货币
<100ms响应时间
99.9%正常运行时间
金属定价所需的一切
一个简单、安全的 REST API——无需 SDK,只需 API 密钥。
curl "https://grams.today/v1/prices?currency=USD" \
-H "Authorization: Bearer YOUR_API_KEY"import requests
res = requests.get(
"https://grams.today/v1/prices?currency=USD",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
print(res.json())const res = await fetch("https://grams.today/v1/prices?currency=USD", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const data = await res.json();
console.log(data);$ch = curl_init("https://grams.today/v1/prices?currency=USD");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer YOUR_API_KEY",
]);
$data = json_decode(curl_exec($ch), true);
print_r($data);require "net/http"
require "json"
uri = URI("https://grams.today/v1/prices?currency=USD")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |h| h.request(req) }
puts JSON.parse(res.body)req, _ := http.NewRequest("GET", "https://grams.today/v1/prices?currency=USD", nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://grams.today/v1/prices?currency=USD"))
.header("Authorization", "Bearer YOUR_API_KEY")
.build();
HttpResponse<String> res = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
string json = await client.GetStringAsync("https://grams.today/v1/prices?currency=USD");
Console.WriteLine(json);// response
{ "XAU": { "ounce": 4219.72, "gram_24k": 134.27 },
"XAG": { "ounce": 53.4 }, "XPT": { … } }
5 种金属的实时价格
黄金、白银、铂、钯和铜——直接来自我们的实时市场行情,服务器端持续更新。
- 盎司 + 每克 (24k/22k/21k/18k)
- 每日涨跌及百分比
- 亚秒级缓存响应
curl "https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR" \
-H "Authorization: Bearer YOUR_API_KEY"import requests
res = requests.get(
"https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
print(res.json())const res = await fetch("https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const data = await res.json();
console.log(data);$ch = curl_init("https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer YOUR_API_KEY",
]);
$data = json_decode(curl_exec($ch), true);
print_r($data);require "net/http"
require "json"
uri = URI("https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |h| h.request(req) }
puts JSON.parse(res.body)req, _ := http.NewRequest("GET", "https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR", nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR"))
.header("Authorization", "Bearer YOUR_API_KEY")
.build();
HttpResponse<String> res = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
string json = await client.GetStringAsync("https://grams.today/v1/convert?metal=XAU&weight=10&unit=g&karat=22¤cy=SAR");
Console.WriteLine(json);// response
{ "value": 4663.56, "currency": "SAR" }
任意货币、任意单位、任意成色
即时将重量换算为价值,支持超过 14+ 种货币。克、盎司或千克——含黄金成色。
- USD · SAR · AED · KWD · QAR · BHD …
- 克 / 盎司 / 千克 单位
- 24k · 22k · 21k · 18k
curl "https://grams.today/v1/gold?currency=USD" \
-H "Authorization: Bearer YOUR_API_KEY"import requests
res = requests.get(
"https://grams.today/v1/gold?currency=USD",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
print(res.json())const res = await fetch("https://grams.today/v1/gold?currency=USD", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const data = await res.json();
console.log(data);$ch = curl_init("https://grams.today/v1/gold?currency=USD");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer YOUR_API_KEY",
]);
$data = json_decode(curl_exec($ch), true);
print_r($data);require "net/http"
require "json"
uri = URI("https://grams.today/v1/gold?currency=USD")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |h| h.request(req) }
puts JSON.parse(res.body)req, _ := http.NewRequest("GET", "https://grams.today/v1/gold?currency=USD", nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://grams.today/v1/gold?currency=USD"))
.header("Authorization", "Bearer YOUR_API_KEY")
.build();
HttpResponse<String> res = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
string json = await client.GetStringAsync("https://grams.today/v1/gold?currency=USD");
Console.WriteLine(json);// response headers
X-RateLimit-Limit: 1200 · X-Quota-Used: 4187
为规模而生,密钥保护
每个请求都使用你的 API 密钥进行身份验证,并由透明的速率限制和配额标头管理。在你的仪表板中实时跟踪用量。
- 每分钟速率限制
- 每月配额及用量图表
- 随时吊销 / 轮换密钥
用你喜欢的语言来调用
为每个流行技术栈提供可复制粘贴的代码片段——无需 SDK,只需一次 HTTP 调用。
简单灵活的定价
免费开始。规模扩大时升级。随时取消。
API 文档
基础 URL https://grams.today/v1 — 每个端点都是 GET 并返回 JSON。
🔐 身份验证
所有端点都需要你的 API 密钥——请保密。可通过三种方式发送:
curl "https://grams.today/v1/prices" -H "Authorization: Bearer YOUR_API_KEY"
curl "https://grams.today/v1/prices" -H "X-API-Key: YOUR_API_KEY"
curl "https://grams.today/v1/prices?api_key=YOUR_API_KEY"
端点
GET /v1/prices — 所有金属。 GET /v1/gold — 仅黄金。
GET /v1/convert — 某一数量的价值。 参数: metal, weight, unit (g/oz/kg), karat, currency.
GET /v1/historical — 每日历史数据。 参数: metal, days, currency. GET /v1/symbols — 支持的金属和货币。
{
"success": true,
"base_currency": "SAR",
"metals": {
"XAU": { "ounce": 15823.95, "gram_24k": 508.75, "gram_22k": 466.36,
"change": 123.8, "change_percent": 0.78 },
"XAG": { … }, "XPT": { … }, "XPD": { … }
}
}
速率限制
X-RateLimit-Limit | 你的套餐每分钟请求数 |
X-Quota-Limit / X-Quota-Used | 每月配额及用量 |
超出限制将返回 429. 错误格式为 { "success": false, "error": { "code", "message" } } 附带 401 (密钥), 422 (参数错误), 429 (限制).
代码示例——支持每种流行语言
获取实时黄金价格 (GET /v1/gold) — 切换到你的语言标签页:
curl "https://grams.today/v1/gold?currency=USD" \
-H "Authorization: Bearer YOUR_API_KEY"import requests
res = requests.get(
"https://grams.today/v1/gold?currency=USD",
headers={"Authorization": "Bearer YOUR_API_KEY"},
)
print(res.json())const res = await fetch("https://grams.today/v1/gold?currency=USD", {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const data = await res.json();
console.log(data);$ch = curl_init("https://grams.today/v1/gold?currency=USD");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer YOUR_API_KEY",
]);
$data = json_decode(curl_exec($ch), true);
print_r($data);require "net/http"
require "json"
uri = URI("https://grams.today/v1/gold?currency=USD")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer YOUR_API_KEY"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |h| h.request(req) }
puts JSON.parse(res.body)req, _ := http.NewRequest("GET", "https://grams.today/v1/gold?currency=USD", nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://grams.today/v1/gold?currency=USD"))
.header("Authorization", "Bearer YOUR_API_KEY")
.build();
HttpResponse<String> res = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(res.body());using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
string json = await client.GetStringAsync("https://grams.today/v1/gold?currency=USD");
Console.WriteLine(json);