# Official rate table for a specific date

**GET /api/v1/central-bank/{bank}/{date}**

The bank's published table in force on a date. Weekends and holidays return the most recent published date on or before the requested one — `rate_date` says which, and `published_on_requested_date` is false when they differ (this is the rate compliance users must apply). Optional `source`+`target` narrows to one pair. History reaches back to 2000 and earlier for major sources. Paid plans only. JSON only.


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


## Authentication methods
- Bearer auth
- Session cookie


## Parameters

### Path parameters

- **bank** (string)
  Source code from /api/v1/central-banks (e.g. ecb, boc, cbsl, banxico, ustreasury)

- **date** (string(date))
  Requested date (YYYY-MM-DD)


### Query parameters

- **source** (string)
  Pair mode: source currency, 3-letter code (requires target)

- **target** (string)
  Pair mode: target currency, 3-letter code (requires source)

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



## Responses
### 200
Table (or single pair) in force on the date

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

- **name** (string)

- **rate_date** (string(date))

- **rates** (array[object])

- **disclaimer** (string)

- **requested_date** (string(date))

- **published_on_requested_date** (boolean)
  False when the bank did not publish on the requested date and the most recent prior table is returned


### 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


### 403
Historical central-bank data requires a paid plan; /latest is available on all plans

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

- **upgrade_url** (string)


### 404
Unknown bank, no data on/before the date, or pair not covered

#### 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)



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