CurrencyRateDocs
Docs › Guides › Reference › Errors

Errors

Errors are plain JSON with statusCode and message fields. messageis a plain string for most errors, or an array when a query parameter fails format validation. Every message the API can actually return is grouped below by status code, with the exact response shape — each endpoint's own page lists only the ones that apply to it.

400 Bad Request

The request itself is malformed — an invalid currency code, date, or amount. See each endpoint page for exactly which of these apply to it.

base must be a 3-letter currency code
{
  "statusCode": 400,
  "message": [
    "base must be a 3-letter currency code"
  ],
  "error": "Bad Request"
}
symbols must be a comma-separated list of 3-letter currency codes
{
  "statusCode": 400,
  "message": [
    "symbols must be a comma-separated list of 3-letter currency codes"
  ],
  "error": "Bad Request"
}
date must be a valid calendar date in YYYY-MM-DD format
{
  "statusCode": 400,
  "message": [
    "date must be a valid calendar date in YYYY-MM-DD format"
  ],
  "error": "Bad Request"
}
from must be a 3-letter currency code
{
  "statusCode": 400,
  "message": [
    "from must be a 3-letter currency code"
  ],
  "error": "Bad Request"
}
to must be a 3-letter currency code
{
  "statusCode": 400,
  "message": [
    "to must be a 3-letter currency code"
  ],
  "error": "Bad Request"
}
amount must be a numeric string
{
  "statusCode": 400,
  "message": [
    "amount must be a numeric string"
  ],
  "error": "Bad Request"
}
amount must be a positive number
{
  "statusCode": 400,
  "message": "amount must be a positive number",
  "error": "Bad Request"
}
to must be a comma-separated list of 3-letter currency codes
{
  "statusCode": 400,
  "message": [
    "to must be a comma-separated list of 3-letter currency codes"
  ],
  "error": "Bad Request"
}
to must contain at least 1 currency code
{
  "statusCode": 400,
  "message": [
    "to must contain at least 1 currency code"
  ],
  "error": "Bad Request"
}
to must contain at most 25 currency codes
{
  "statusCode": 400,
  "message": [
    "to must contain at most 25 currency codes"
  ],
  "error": "Bad Request"
}
Unknown currency: XYZ
{
  "statusCode": 400,
  "message": "Unknown currency: XYZ",
  "error": "Bad Request"
}
401 Unauthorized

The Authorization header is missing, malformed, or the key is wrong.

Missing or malformed Authorization header
{
  "statusCode": 401,
  "message": "Missing or malformed Authorization header",
  "error": "Unauthorized"
}
Invalid API key
{
  "statusCode": 401,
  "message": "Invalid API key",
  "error": "Unauthorized"
}
404 Not Found

No rates exist yet for what you asked for.

No exchange rate data has been ingested yet
{
  "statusCode": 404,
  "message": "No exchange rate data has been ingested yet",
  "error": "Not Found"
}
No exchange rate data available for 2020-01-01
{
  "statusCode": 404,
  "message": "No exchange rate data available for 2020-01-01",
  "error": "Not Found"
}
429 Too Many Requests

Your plan's request quota for the current period is used up.

Rate limit exceeded: 1000 requests per 30-day period
{
  "statusCode": 429,
  "message": "Rate limit exceeded: 1000 requests per 30-day period"
}