API Documentation
Base URL: https://www.sentisignal.com/api/v1/fx
Playground
Run live requests against the FX API. These requests consume plan quota outside admin accounts.
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 /currencies
Public list of tracked currencies.
Public
/api/v1/fx/currencies
cURL
curl "https://www.sentisignal.com/api/v1/fx/currencies"
Response
// Run a request to inspect the live response body.
Authentication
The public /currencies endpoint is open. Rate endpoints require an API key. Pass it via Authorization: Bearer YOUR_API_KEY orx-api-key.
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://www.sentisignal.com/api/v1/fx/rate?base=USD"e=EUR
Manage keys at /dashboard/api.
GET /currencies
Returns the tracked currency catalog. No authentication required.
curl https://www.sentisignal.com/api/v1/fx/currencies
GET /rate
Fetch the latest FX rate for a currency pair.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
base | string | required | 3-letter base currency code |
quote | string | required | 3-letter quote currency code |
Example
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://www.sentisignal.com/api/v1/fx/rate?base=GBP"e=PLN"
Response
{
"status": "success",
"timestamp": "2026-03-11T12:00:00Z",
"data": {
"base": "GBP",
"quote": "PLN",
"rate": 5.000000,
"rate_date": "2026-03-11",
"source": "ECB (European Central Bank)"
},
"meta": { "credits_used": 1, "plan": "free" }
}GET /rate/historical
Fetch historical FX rates for a date range. Paid plans only. Responses include summary stats.
Source reality: FX history is daily reference-rate data from Frankfurter/ECB, not intraday forex ticks.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
base | string | required | Base currency |
quote | string | required | Quote 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/fx/rate/historical?base=USD"e=EUR&start_date=2025-01-01&end_date=2025-12-31&interval=monthly"
Response
{
"status": "success",
"data": {
"base": "USD",
"quote": "EUR",
"start_date": "2025-01-01",
"end_date": "2025-12-31",
"interval": "monthly",
"source": "ECB (European Central Bank)",
"count": 12,
"data": [
{ "date": "2025-01-01", "rate": 0.921341 },
{ "date": "2025-02-01", "rate": 0.928554 }
],
"summary": {
"min": 0.91,
"max": 0.94,
"avg": 0.93,
"first": 0.92,
"last": 0.93,
"change_pct": 1.09
}
},
"meta": { "credits_used": 1, "plan": "starter" }
}Error Codes
| Code | Message | Description |
|---|---|---|
| 400 | Invalid parameters | Malformed or missing pair/date parameters |
| 401 | Invalid API key | Missing, invalid, expired, or revoked API key |
| 403 | Plan restriction | Historical access is not available on the current plan |
| 429 | Rate limit exceeded | Per-minute or monthly request limit reached |
| 500 | Server error | Internal processing error or unavailable upstream data |