Closed beta. Features and pricing may change.
Pricing · Free plan available

Forex API

Finance

Uptime
99.5%
Requests served<1k
30d agoToday
Avg response time
22ms
Version
v1.0.0

Member since Jun 2026

Endpoints · 8 of 8

  • curl -X GET https://eu-north-1.apimercado.com/v1/e72bpbz582mh/fx-api/latest/v1/market \
      -H "Authorization: Bearer $KEY"

    Response

    {
      "data": {
        "base": "EUR",
        "rates": {}
      },
      "meta": {
        "source": "market_data",
        "requestId": "string",
        "apiVersion": "string"
      }
    }

Exchange rates without the integration pain. One key, one clean JSON envelope, eight endpoints, two kinds of rates:

  • Market: live mid-market FX quotes and finalized daily closes. Built for dashboards, pricing and alerts.
  • Reference: the official daily fixings of the European Central Bank and the National Bank of Romania, exactly as published. The numbers you need for invoicing, accounting, tax and customs.

Quick start

GET /v1/market?from=EUR                        # live quotes, all currencies
GET /v1/market?from=EUR&to=USD,GBP             # live quotes, selected targets
GET /v1/convert?from=EUR&to=RON&amount=149.99&source=bnr
GET /v1/market/history?from=EUR&to=USD&dateFrom=2026-01-01&dateTo=2026-03-01&fill=previous
GET /v1/market/fluctuation?from=EUR&to=USD&dateFrom=2026-01-01&dateTo=2026-06-01
GET /v1/reference?source=ecb&from=EUR          # full ECB board
GET /v1/reference/history?source=bnr&from=EUR&to=RON&dateFrom=2026-01-01&dateTo=2026-03-01
GET /v1/compare?from=EUR&to=RON                # market vs ECB vs BNR + spread
GET /v1/currencies

Send your API key in the x-api-key header on every /v1/* request. That's the whole setup.

Why this API

  • Any pair, one call. Central banks publish one direction against one pivot (EUR for ECB, RON for BNR). We compose every other pair for you, inverse and cross rates included, and the basis field tells you exactly how the number was built.
  • Audit-grade precision. Reference rates are exact decimal strings: published values verbatim, derived values at 12 decimals. No float drift in your books. (Market rates are plain numbers.)
  • Honest freshness. meta.freshness tells you whether today's fix is out (current), still pending (not_published_yet), or not expected at all (weekends). No guessing, no stale data passed off as fresh.
  • History built in. Up to 5 years per request, backfilled on demand, always in ascending date order. Market history serves finalized closes only; reference history includes today as soon as the bank publishes.
  • Market vs official, one call. /v1/compare puts the live mid-market quote next to the ECB and BNR fixings and computes the spread - see exactly what the market costs you versus the official rate.
  • Gap-free series on demand. fill=previous turns sparse business-day history into a dense daily series (weekends/holidays carry the last value, flagged filled), without ever fabricating a not-yet-final close or fix.

Responses

Every success is { data, meta }. meta always carries requestId and apiVersion, plus per-endpoint fields such as source, rateKind, freshness. Every error is { error: { code, message, status, requestId } } with stable, machine-readable codes such as UNSUPPORTED_PAIR (400) and RATE_UNAVAILABLE (404).