Every bank's latest official rate for one pair

Add MCP server to your AI tool

Allow AI tools and LLMs to interact with the API documentation portal through MCP.

MCP server URL

https://bump.sh/allratestoday/doc/allratestoday-api/mcp

Standard setup for AI tools providing an mcp.json file

mcp.json
{
  " AllRatesToday API MCP server": {
    "url": "https://bump.sh/allratestoday/doc/allratestoday-api/mcp"
  }
}

Close
GET /api/v1/central-banks/rates

Cross-bank comparison: each covered source's most recent official rate for the requested pair in a single call, with min/max/median and spread in basis points. Pairs a bank does not publish directly are cross-computed via that bank's own table only (never mixing banks) and flagged derived. Sources whose newest publication is older than 30 days are flagged stale and excluded from the spread stats. Banks that cannot produce the pair are skipped. Methodology: https://allratestoday.com/official-rates-methodology/. Available on all plans.

Query parameters

  • source string Required

    Source currency, 3-letter code

    Minimum length is 3, maximum length is 3.

  • target string Required

    Target currency, 3-letter code

    Minimum length is 3, maximum length is 3.

  • type string

    Rate type to return when the pair is requested with source+target on a two-sided table (buy/sell banks such as TCMB, BCB, BI, CBN). Values are the bank's own type labels as shown in its full table, e.g. buy or sell. Without it the pair resolves reference, mid, import, buy, sell in that order and rate_type says which side was used. A type the bank does not publish returns 404 listing the available types.

  • format string

    Response format (default json). csv is UTF-8 with a BOM; xlsx is a real Excel workbook with typed dates and numbers; xml mirrors the JSON fields.

    Values are json, csv, xml, or xlsx. Default value is json.

Responses

  • 200 application/json

    Latest rate for the pair from every source that can produce it

    Hide response attributes Show response attributes object
    • source string
    • target string
    • as_of string(date)

      Newest rate_date among the returned banks; each bank also carries its own rate_date

    • count integer
    • banks array[object]
      Hide banks attributes Show banks attributes object
      • code string
      • name string
      • rate number
      • rate_date string(date)
      • rate_type string
      • derived boolean

        True when the pair was inverted or cross-computed from the bank's own table rather than printed directly

      • method string

        Values are published, inverse, or cross.

      • stale boolean

        True when the bank's newest publication is older than 30 days (e.g. quarterly sources)

    • stats object | null

      Computed over non-stale banks only; null when no fresh source covers the pair

      Hide stats attributes Show stats attributes object | null
      • min number
      • max number
      • median number
      • spread_bps number

        (max - min) / median in basis points

      • banks_in_stats integer
    • methodology string
    • disclaimer string
  • 400 application/json

    Invalid or missing parameters

    Hide response attributes Show response attributes object
    • error string Required

      Error message

    • hint string

      Optional remediation hint

  • 401 application/json

    Authentication required — provide an API key via Authorization: Bearer art_live_... (free keys at https://allratestoday.com/register)

    Hide response attributes Show response attributes object
    • error string Required

      Error message

    • hint string

      Optional remediation hint

  • 404 application/json

    No covered source publishes rates covering the requested pair

    Hide response attributes Show response attributes object
    • error string Required

      Error message

    • hint string

      Optional remediation hint

  • 429 application/json

    Monthly request limit exceeded (X-Monthly-Limit / X-Monthly-Used / X-Monthly-Resets headers included)

    Hide response attributes Show response attributes object
    • error string
    • used integer
    • limit integer
    • plan string
    • resets_at string(date-time)
    • upgrade_url string
GET /api/v1/central-banks/rates
curl \
 --request GET 'https://allratestoday.com/api/v1/central-banks/rates?source=USD&target=EUR' \
 --header "Authorization: Bearer $ACCESS_TOKEN"
Response examples (200)
{
  "source": "USD",
  "target": "EUR",
  "as_of": "2026-08-10",
  "count": 41,
  "banks": [
    {
      "code": "ecb",
      "name": "European Central Bank",
      "rate": 0.9214,
      "rate_date": "2026-08-10",
      "rate_type": "reference",
      "derived": true,
      "method": "inverse",
      "stale": false
    }
  ],
  "stats": {
    "min": 0.9187,
    "max": 0.9241,
    "median": 0.9214,
    "spread_bps": 58.6,
    "banks_in_stats": 38
  },
  "methodology": "https://allratestoday.com/official-rates-methodology/",
  "disclaimer": "string"
}
Response examples (400)
{
  "error": "string",
  "hint": "string"
}
Response examples (401)
{
  "error": "string",
  "hint": "string"
}
Response examples (404)
{
  "error": "string",
  "hint": "string"
}
Response examples (429)
{
  "error": "Request limit exceeded",
  "used": 42,
  "limit": 42,
  "plan": "free",
  "resets_at": "2026-05-04T09:42:00Z",
  "upgrade_url": "https://allratestoday.com/pricing"
}