# Live and historical market rates (Wise-compatible)

**GET /api/v1/rates**

The main authenticated rates endpoint, parameter-compatible with the Wise `/v1/rates` API. Refreshed roughly every 60 seconds (responses cached 60s). Omit `target` for all rates from `source`; pass comma-separated targets (e.g. `target=EUR,GBP,JPY`) for multiple pairs in one call; use `time` for a point-in-time rate or `from`/`to` (+ optional `group`) for a series.


## Servers
- Production: https://allratestoday.com (Production)


## Authentication methods
- Bearer auth
- Session cookie


## Parameters


### Query parameters

- **source** (string)
  Source currency code (ISO 4217)

- **target** (string)
  Target currency code; comma-separated list allowed (e.g. `EUR,GBP,JPY`)

- **time** (string(date-time))
  Historical point-in-time (ISO 8601)

- **from** (string(date))
  Series start date (YYYY-MM-DD)

- **to** (string(date))
  Series end date (YYYY-MM-DD, exclusive)

- **group** (string)
  Series granularity when using from/to

- **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.

- **amount** (number)
  Convert this amount instead of returning a bare rate. Changes the response to a conversion object and requires exactly one source and one target (400 with a comma-separated target list). Must be non-negative.

- **api_key** (string)
  API key as a query parameter, for callers that cannot set a header (browser address bar, spreadsheet IMPORTDATA). Prefer the Authorization header in production.



## Responses
### 200
Array of rate objects

#### Body: application/json (array[object])
- **rate** (number(double))

- **source** (string)

- **target** (string)

- **time** (string(date-time))


### 400
Invalid or missing parameters

#### Body: application/json (object)
- **error** (string)
  Error message

- **hint** (string)
  Optional remediation hint


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

#### Body: application/json (object)
- **error** (string)
  Error message

- **hint** (string)
  Optional remediation hint


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

#### Body: application/json (object)
- **error** (string)

- **used** (integer)

- **limit** (integer)

- **plan** (string)

- **resets_at** (string(date-time))

- **upgrade_url** (string)


### 500
Server or upstream error

#### Body: application/json (object)
- **error** (string)
  Error message

- **hint** (string)
  Optional remediation hint



[Powered by Bump.sh](https://bump.sh)
