FX Rate API/Documentation

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&quote=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

NameTypeDefaultDescription
basestringrequired3-letter base currency code
quotestringrequired3-letter quote currency code

Example

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://www.sentisignal.com/api/v1/fx/rate?base=GBP&quote=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

NameTypeDefaultDescription
basestringrequiredBase currency
quotestringrequiredQuote currency
start_datestringrequiredStart date in YYYY-MM-DD
end_datestringrequiredEnd date in YYYY-MM-DD
intervalstringdailydaily, weekly, monthly, yearly

Example

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://www.sentisignal.com/api/v1/fx/rate/historical?base=USD&quote=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

CodeMessageDescription
400Invalid parametersMalformed or missing pair/date parameters
401Invalid API keyMissing, invalid, expired, or revoked API key
403Plan restrictionHistorical access is not available on the current plan
429Rate limit exceededPer-minute or monthly request limit reached
500Server errorInternal processing error or unavailable upstream data