实时黄金价格 API

实时黄金价格,一次 API 调用即可。

$
1 · 你的应用
2 · Grams API
XAU 4,219.72
XAG 53.40
3 · 实时 JSON
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&currency=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&currency=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&currency=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&currency=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&currency=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&currency=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&currency=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&currency=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 调用。

简单灵活的定价

免费开始。规模扩大时升级。随时取消。

Free

$0 /month
  • Real-time Gold Price
  • Multi-Currency Support
  • 100 calls / month
免费开始
Popular

Black Friday Mega Deal

$9 /month
  • Real-time Gold Price
  • Multi-Currency Support
  • Unlimited API Call
  • Single Server Configuration
选择套餐

Ultimate

$129 /month
  • Real-time Gold Price
  • Multi-Currency Support
  • Live Support
  • Unlimited API Call
选择套餐

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);

获取 API 密钥 →