API Documentation
Base URL: https://www.sentisignal.com/api/v1/metals
Playground
Run live requests directly from the browser. Playground requests consume quota for non-admin accounts.
Test the public API against your current tier
Requests made here hit the live public API and consume quota on non-admin accounts.
curl "https://www.sentisignal.com/api/v1/metals/currencies"
// Run a request to inspect the live response body.
Plan Model
Metals API uses the shared public API plan model. Free plans are limited to spot access, one currency per request, and troy_oz. Paid plans unlock historical endpoints, multi-currency requests, and all supported weight units.
| Capability | Free | Paid |
|---|---|---|
| Spot price | Yes | Yes |
| Historical endpoint | No | Yes |
| Currencies per request | 1 | Up to 30 |
| Weight units | troy_oz | troy_oz, gram, kg, tola, tael |
| Intervals | n/a | daily, weekly, monthly, yearly |
Authentication
All endpoints (except /currencies and /waitlist) require an API key. Pass it in one of two ways:
# Option 1: Authorization header (recommended) curl -H "Authorization: Bearer YOUR_API_KEY" "https://www.sentisignal.com/api/v1/metals/price?symbol=GOLD" # Option 2: x-api-key header curl -H "x-api-key: YOUR_API_KEY" "https://www.sentisignal.com/api/v1/metals/price?symbol=GOLD"
Get your API key at sentisignal.com/dashboard/api.
GET /price
Get the current metal price in one or more currencies.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
symbol | string | GOLD | GOLD, SILVER, PLATINUM, or PALLADIUM |
currencies | string | USD | Comma-separated currency codes (e.g., USD,EUR,GBP) |
weight_unit | string | troy_oz | troy_oz, gram, kg, tola, tael |
Example
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://www.sentisignal.com/api/v1/metals/price?symbol=GOLD¤cies=USD,EUR,GBP&weight_unit=gram"
Response
{
"status": "success",
"timestamp": "2026-03-14T12:00:00Z",
"data": {
"metal": "gold",
"symbol": "GOLD",
"price_date": "2026-03-14",
"source": "SentiSignal Composite Gold Index",
"contributing_sources": ["NBP","CBAR","CBU","NBK","TCMB","BANXICO","KAGGLE"],
"prices": {
"USD": { "price": 65.77, "unit": "gram", "currency": "USD" },
"EUR": { "price": 60.84, "unit": "gram", "currency": "EUR" },
"GBP": { "price": 52.21, "unit": "gram", "currency": "GBP" }
},
"fx_source": "ECB (European Central Bank)",
"fx_date": "2026-03-14"
},
"meta": { "credits_used": 1, "plan": "starter" }
}GET /price/historical
Get historical metal prices for a date range. Paid plans only. Historical coverage starts in 2004 and supports aggregated summary statistics in the response.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
symbol | string | GOLD | GOLD, SILVER, PLATINUM, or PALLADIUM |
start_date | string | required | Start date (YYYY-MM-DD) |
end_date | string | required | End date (YYYY-MM-DD) |
currencies | string | USD | Comma-separated currency codes |
interval | string | daily | daily, weekly, monthly, yearly |
weight_unit | string | troy_oz | troy_oz, gram, kg, tola, tael |
Example
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://www.sentisignal.com/api/v1/metals/price/historical?symbol=GOLD&start_date=2025-01-01&end_date=2025-12-31¤cies=USD,EUR&interval=yearly&weight_unit=tola"
Response
{
"status": "success",
"timestamp": "2026-03-11T12:00:00Z",
"data": {
"metal": "gold",
"start_date": "2025-01-01",
"end_date": "2025-12-31",
"interval": "yearly",
"weight_unit": "tola",
"count": 1,
"data": [
{
"date": "2025-01-01",
"prices": {
"USD": 766.99,
"EUR": 707.94
}
}
],
"summary": {
"USD": {
"min": 766.99,
"max": 766.99,
"avg": 766.99,
"first": 766.99,
"last": 766.99,
"change_pct": 0
},
"EUR": {
"min": 707.94,
"max": 707.94,
"avg": 707.94,
"first": 707.94,
"last": 707.94,
"change_pct": 0
}
}
},
"meta": { "credits_used": 1, "plan": "starter" }
}GET /price/convert
Convert a specific weight of gold to a currency value.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
symbol | string | GOLD | GOLD, SILVER, PLATINUM, or PALLADIUM |
currency | string | required | Target currency (e.g., EUR) |
weight | number | 1 | Amount of metal |
weight_unit | string | troy_oz | troy_oz, gram, kg, tola, tael |
date | string | latest | Price date (YYYY-MM-DD, optional) |
Example
# How much is 10 taels of gold worth in EUR? curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://www.sentisignal.com/api/v1/metals/price/convert?symbol=GOLD¤cy=EUR&weight=10&weight_unit=tael"
GET /currencies
List all supported output currencies. No authentication required.
curl "https://www.sentisignal.com/api/v1/metals/currencies"
Error Codes
| Code | Message | Description |
|---|---|---|
| 400 | Invalid parameters | Missing or malformed query parameters |
| 401 | Invalid API key | Missing, invalid, expired, or revoked API key |
| 403 | Plan restriction | Historical access, requested currency count, or weight unit is not available on your plan |
| 429 | Rate limit exceeded | Per-minute or monthly limit reached. Check Retry-After header |
| 500 | Server error | Internal error. Contact support if persistent |
Rate Limits
Rate limit information is included in response headers:
| Header | Description |
|---|---|
X-RateLimit-Limit | Requests per minute allowed |
X-RateLimit-Remaining | Remaining requests this minute |
X-RateLimit-Limit-Monthly | Monthly request limit |
X-RateLimit-Remaining-Monthly | Remaining requests this month |
Retry-After | Seconds to wait (only on 429 responses) |
Prices are indicative and sourced from averaged public data (Central Banks, digital markets). They do not constitute an official LBMA fixing.