/ DOCUMENTATION

Numbers with
a paper trail.

Small, public endpoints for current rates, historical records, conversions, supported currencies, and experimental forecasts.

START HERE

One request.
Readable output.

No key is required. Send query parameters over HTTPS and read JSON back. Amounts are numeric, currency codes are uppercase ISO 4217-style codes, and every rate response identifies its source and dates. Rates come from the European Central Bank; non-EUR bases are derived from ECB EUR references by exchange.io.

curl "https://www.exchange.io.mihawk.my/api/convert?from=USD&to=EUR&amount=100"

Free during this early access period. Add caching on your side when your workload does not need a fresh snapshot per request.

THE API

Six useful
surfaces.

GET/api/latest?base=USD

Latest rates

Return the newest available reference snapshot for a base currency.

curl "https://www.exchange.io.mihawk.my/api/latest?base=USD"
Example response
{
  "base": "USD",
  "rates": { "EUR": 0.92, "JPY": 150.12 },
  "rate_date": "2026-08-16",
  "source": "",
  "fetched_at": "2026-08-16T00:04:12.000Z"
}
GET/api/convert?from=USD&to=EUR&amount=100

Convert

Convert a positive amount using the latest snapshot, or add date for a historical conversion.

curl "https://www.exchange.io.mihawk.my/api/convert?from=USD&to=EUR&amount=100"
Example response
{
  "from": "USD", "to": "EUR", "amount": 100,
  "result": 92, "rate": 0.92,
  "rate_date": "2026-08-16",
  "source": "",
  "fetched_at": "2026-08-16T00:04:12.000Z"
}
GET/api/historical?date=2024-01-15&base=USD

Historical rates

Read the stored reference snapshot for an ISO calendar date and base currency.

curl "https://www.exchange.io.mihawk.my/api/historical?date=2024-01-15&base=USD"
Example response
{
  "base": "USD",
  "rates": { "EUR": 0.91, "JPY": 145.48 },
  "rate_date": "2024-01-15",
  "source": "ecb",
  "fetched_at": "2024-01-16T00:04:12.000Z"
}
GET/api/currencies

Supported currencies

List supported currency codes with display precision. Response also includes latest source metadata.

curl "https://www.exchange.io.mihawk.my/api/currencies"
GET/api/forecast?from=USD&to=EUR&horizon=7

Forecast

Return an experimental baseline estimate and range for 1 to 30 days. Response includes model version, training date, and a mandatory disclaimer.

curl "https://www.exchange.io.mihawk.my/api/forecast?from=USD&to=EUR&horizon=7"
GET/api/health

Health

Check API availability and rate-service state. Useful for monitoring, not for selecting a rate.

02 / TIME

Date
semantics.

Dates use `YYYY-MM-DD` and mean a UTC calendar day. A request for `2024-01-15` asks for the snapshot labelled January 15, not a rolling 24-hour window.

Omit `date` from convert for latest data. Future dates are rejected with `future_date`. Historical availability depends on stored snapshots; missing records return `historical_unavailable` rather than silently substituting today's rate.

03 / PROVENANCE

Freshness
is visible.

`rate_date` is the date represented by the rate. `fetched_at` is the UTC timestamp when exchange.io obtained or stored the snapshot. `source` names the upstream dataset.

Latest data is refreshed on a daily schedule and may be temporarily served from the last known snapshot during upstream trouble. Inspect service state through `/api/health` and treat `fetched_at` as the freshness boundary.

FORECAST NOTICE

Forecasts are estimates from a simple historical baseline. They are not predictions, financial advice, or trading signals. Do not use them as the sole basis for a financial decision.

04 / FAILURE

Errors
stay legible.

Errors use JSON with `error`, `message`, and `details`. Common codes:

  • invalid_querymissing, malformed, or non-positive input.
  • unsupported_currencycode is not available from the configured source.
  • future_daterequested date is after today in UTC.
  • historical_unavailableno stored snapshot matches date and base.
  • forecast_unavailableinsufficient historical pair data.

05 / NEXT

What comes
after v1.

  • API keys and explicit rate limits for production consumers.
  • Expanded historical coverage and import tooling.
  • More source health signals and documented service-level targets.
  • Improved forecast models with transparent backtesting.