Skip to main content

GET /v1/rates/historical

Returns historical OHLCV candle data for a single pair with cursor-based pagination.

Authentication

Requires an API key. See Authentication.

Parameters

ParameterTypeRequiredDescription
pairstringYesPair identifier (e.g., BTCNGN).
startstringYesStart date YYYY-MM-DD (inclusive).
endstringYesEnd date YYYY-MM-DD (inclusive).
intervalstringNo5m, 1h, or 1d. Default: 1h.
limitintegerNoMax candles per page. Default/max depends on tier.
cursorstringNoPagination cursor from previous response's meta.next_cursor.

Tier limits

TierMax limitIntervalsHistory
Free5001h, 1dLast 30 days
Builder2,5005m, 1h, 1dFull
Professional5,0005m, 1h, 1dFull
Enterprise10,0005m, 1h, 1dFull

Response

curl "https://api.moxiemetrx.com/v1/rates/historical?pair=BTCNGN&start=2026-04-02&end=2026-04-03&interval=1h&limit=2" \
-H "X-API-Key: your_key"
{
"pair": "BTCNGN",
"interval": "1h",
"start": "2026-04-02",
"end": "2026-04-03",
"data": [
{
"time": "2026-04-02T00:00:00+00:00",
"pair": "BTCNGN",
"open": 94400037.0,
"high": 95655881.0,
"low": 93909641.90,
"close": 95480686.0,
"vwap": null,
"total_volume": 0.0,
"verification": {
"status": "verified",
"data_quality": "high",
"confidence": 0.95,
"divergence_pct": 0.6412,
"synthetic_price": 93909641.90,
"sources_count": 6
}
}
],
"meta": {
"request_id": "...",
"row_count": 2,
"has_more": true,
"next_cursor": "2026-04-02T01:00:00+00:00",
"limit": 2,
"limit_max": 2500
}
}

Verification fields by tier

FieldFreeBuilder+
verification.statusYesYes
verification.data_qualityYesYes
verification.confidence--Yes
verification.divergence_pct--Yes
verification.synthetic_price--Yes
verification.sources_count--Yes

Pagination

Uses cursor-based pagination via meta.next_cursor.

  1. Make the first request without cursor.
  2. If meta.has_more is true, pass meta.next_cursor as cursor on the next request.
  3. Repeat until has_more is false.

The data array contains candles keyed by time, ordered chronologically. Each candle includes pair, open, high, low, close, vwap, total_volume, and a verification object.

Errors

StatusCodeCause
400validation_errorInvalid interval, bad date format, end before start, limit out of range
403interval_not_availableRequested interval not available on your tier (e.g., 5m on Free)
403history_limit_exceededStart date older than tier's history window (Free: 30 days)
429rate_limit_exceededRate limit exceeded