allratestoday-com Compatibility API

Drop-in JSON shapes for exchangeratesapi.io, Fixer, exchangerate.host and Frankfurter, served from the ECB reference table.

Operations 2

GET /api/compat/{provider}/latest Latest ECB table in a legacy provider's JSON shape — keyless #
GET /api/compat/{provider}/{path} Dated table, date range or currency list in a legacy shape #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/allratestoday-com:allratestoday-com-compatibility-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

allratestoday-com-compatibility-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: AllRatesToday Exchange Rate & Central Bank Rates…
  description: 'Live mid-market exchange rates for 160+ currencies plus official rates from 122 central banks and 4 tax authorities (ECB, the Fed, Bank of Canada, CBSL, Banxico, HMRC, US Treasury and more).


    ## Data

    - **Market rates** (`/api/rate`, `/api/v1/rates`, `/api/historical-rates`): live mid-market rates, refreshed roughly every 60 seconds.

    - **Central-bank rates** (`/api/v1/central-bank/*`, `/api/open/central-bank/*`): the official tables exactly as published by each institution, one table per publication date. History reaches back to 2000 and earlier for major sources (ECB from 1999, Bank of Canada from 1950s-era series where published).

    - **Daily Reference Rate** (`/api/open/reference-rate`, `/api/v1/reference-rate/*`): one immutable mid-market USD table per business day, fixed at 16:00 London (median of a five-minute sampling window). For index calculation, research and reporting; not a registered benchmark. Methodology: https://allratestoday.com/reference-rate/


    ## Authentication

    Most endpoints require an API key sent as `Authorization: Bearer art_live_...`. Get a free key at https://allratestoday.com/register, or self-issue a 100-call trial key with no account via `POST /api/agent/keys` (built for AI agents). Logged-in dashboard users can also authenticate with their session cookie.


    Keyless endpoints: `/api/v1/symbols` and `/api/open/central-bank/{bank}` (attribution required), plus JSON reads of `/api/public/central-bank/{bank}`.


    ## Output formats

    Endpoints that return tabular data accept `?format=json|csv|xml|xlsx` (CSV is UTF-8 with BOM; XLSX is a real Excel workbook; default json).


    ## Plans

    Free plan: latest central-bank tables included. Historical central-bank dates and time series require a paid plan. See https://allratestoday.com/pricing.'
  version: 2.2.0
  contact:
    name: AllRatesToday Support
    url: https://allratestoday.com
    email: support@allratestoday.com
servers:
- url: https://allratestoday.com
  description: Production
tags:
- name: Compatibility
  description: Drop-in JSON shapes for exchangeratesapi.io, Fixer, exchangerate.host and Frankfurter, served from the ECB reference table.
paths:
  /api/compat/{provider}/latest:
    get:
      tags:
      - Compatibility
      operationId: compatLatest
      summary: Latest ECB table in a legacy provider's JSON shape — keyless
      description: Drop-in replacement for exchangeratesapi.io, the Fixer free tier, exchangerate.host and Frankfurter. Same fields those APIs returned, plus additive `source` and `attribution`. Keyless, CORS, edge-cached. See https://allratestoday.com/migrate/
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: string
          enum:
          - exchangeratesapi
          - fixer
          - exchangerate-host
          - frankfurter
        description: Which provider's response shape to reproduce.
      - name: base
        in: query
        schema:
          type: string
          example: USD
        description: 'Base currency (Frankfurter alias: from). Default EUR.'
      - name: symbols
        in: query
        schema:
          type: string
          example: GBP,JPY
        description: 'Comma-separated quote currencies (Frankfurter alias: to). Default: all.'
      - name: amount
        in: query
        schema:
          type: number
          default: 1
        description: Frankfurter-style multiplier.
      responses:
        '200':
          description: Provider-shaped table
          content:
            application/json:
              example:
                base: USD
                date: '2026-09-12'
                rates:
                  GBP: 0.7377
                  JPY: 146.91
                source: European Central Bank reference rates, served by AllRatesToday
                attribution: https://allratestoday.com/migrate/
        '400':
          description: Unknown base or bad symbols, in the provider's error shape
  /api/compat/{provider}/{path}:
    get:
      tags:
      - Compatibility
      operationId: compatDatedOrRange
      summary: Dated table, date range or currency list in a legacy shape
      description: '`{YYYY-MM-DD}` for the table in force on a date; `history?start_at&end_at` (exchangeratesapi), `timeseries?start_date&end_date` (Fixer, exchangerate.host) or `{from}..{to}` (Frankfurter) for one table per published date, limited to 366 days and billed one request per month covered; `symbols` / `currencies` for the currency list (keyless). Dated and range lookups need a free API key.'
      security:
      - ApiKeyAuth: []
      - {}
      parameters:
      - name: provider
        in: path
        required: true
        schema:
          type: string
          enum:
          - exchangeratesapi
          - fixer
          - exchangerate-host
          - frankfurter
        description: Which provider's response shape to reproduce.
      - name: path
        in: path
        required: true
        schema:
          type: string
          example: '2026-01-15'
      - name: base
        in: query
        schema:
          type: string
          example: USD
        description: 'Base currency (Frankfurter alias: from). Default EUR.'
      - name: symbols
        in: query
        schema:
          type: string
          example: GBP,JPY
        description: 'Comma-separated quote currencies (Frankfurter alias: to). Default: all.'
      responses:
        '200':
          description: Provider-shaped table or timeseries
        '401':
          description: Free API key required
        '404':
          description: No published rates for that date or range
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'API key from your AllRatesToday dashboard. Example: `Authorization: Bearer art_live_xxxxx`. Free keys at https://allratestoday.com/register. Agents without an account: `POST /api/agent/keys` issues a 100-call trial key instantly.'
    apiKeyQuery:
      type: apiKey
      in: query
      name: key
      description: API key as a query parameter (accepted on /api/rate only; `apiKey` is an alias)
    sessionCookie:
      type: apiKey
      in: cookie
      name: art_session
      description: Session cookie for logged-in dashboard users