API Documentation
Base URL: https://www.sentisignal.com/api/v1/commodity
Playground
Run live commodity requests here. Playground calls count against monthly request pools for non-admin plans.
Request playground
Test the public API against your current tier
Requests made here hit the live public API and consume quota on non-admin accounts.
GET /symbols
Public list of supported commodity symbols.
Public
/api/v1/commodity/symbols
cURL
curl "https://www.sentisignal.com/api/v1/commodity/symbols"
Response
// Run a request to inspect the live response body.
Authentication
/symbols is public. Price endpoints require an API key in theAuthorization or x-api-key header.
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://www.sentisignal.com/api/v1/commodity/price?symbol=GOLD¤cy=EUR
GET /symbols
Returns the supported commodity symbol catalog. No authentication required.
curl https://www.sentisignal.com/api/v1/commodity/symbols
GET /price
Fetch the latest price for a tracked commodity symbol.
Data reality: GOLD has daily history from NBP/Kaggle, energy benchmarks are daily via FRED, and many other symbols remain monthly because they come from IMF PCPS.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
symbol | string | required | Commodity symbol like GOLD, SILVER, BRENT, WHEAT |
currency | string | USD | 3-letter output currency code |
Example
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://www.sentisignal.com/api/v1/commodity/price?symbol=BRENT¤cy=EUR"
Response
{
"status": "success",
"timestamp": "2026-03-11T12:00:00Z",
"data": {
"symbol": "BRENT",
"price": 73.12,
"currency": "EUR",
"unit": "barrel",
"price_date": "2026-03-11",
"source": "FRED",
"fx_rate": 0.923411
},
"meta": { "credits_used": 1, "plan": "starter" }
}GET /price/historical
Fetch historical commodity prices with optional FX conversion. Paid plans only.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
symbol | string | required | Commodity symbol |
currency | string | USD | Output currency |
start_date | string | required | Start date in YYYY-MM-DD |
end_date | string | required | End date in YYYY-MM-DD |
interval | string | daily | daily, weekly, monthly, yearly |
Example
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://www.sentisignal.com/api/v1/commodity/price/historical?symbol=GOLD¤cy=JPY&start_date=2025-01-01&end_date=2025-12-31&interval=monthly"
Response
{
"status": "success",
"data": {
"symbol": "GOLD",
"currency": "JPY",
"unit": "troy_oz",
"start_date": "2025-01-01",
"end_date": "2025-12-31",
"interval": "monthly",
"source": "NBP",
"count": 12,
"data": [
{ "date": "2025-01-01", "price": 301122.45 },
{ "date": "2025-02-01", "price": 305011.92 }
],
"summary": {
"min": 298445.12,
"max": 319002.88,
"avg": 307338.77,
"first": 301122.45,
"last": 317445.01,
"change_pct": 5.42
}
},
"meta": { "credits_used": 1, "plan": "starter" }
}Error Codes
| Code | Message | Description |
|---|---|---|
| 400 | Invalid parameters | Missing or malformed symbol/date/currency parameters |
| 401 | Invalid API key | Missing, invalid, expired, or revoked API key |
| 403 | Plan restriction | Historical access or requested currency is not available on your plan |
| 429 | Rate limit exceeded | Per-minute or monthly request limit reached |
| 500 | Server error | Internal processing error or unavailable source data |