GET /v1/rates/live
Returns the current volume-weighted average price (VWAP) for the requested pairs. Rates are computed from live order book data across all contributing exchanges.
Authentication
note
This endpoint requires an API key. See Authentication.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
pairs | string | Yes | Comma-separated list of pair identifiers (e.g., USDTNGN or USDTNGN,BTCNGN). |
max_age | integer | No | Maximum acceptable age of the rate in seconds. If the most recent data point is older than this threshold, the response includes a stale: true flag. Default: 60. |
Response
| Field | Type | Description |
|---|---|---|
rates | array | Array of rate objects, one per requested pair. |
rates[].pair | string | Pair identifier (e.g., USDTNGN). |
rates[].vwap | number | Volume-weighted average price across all contributing exchanges. |
rates[].timestamp | string | ISO 8601 timestamp of the rate computation. |
rates[].sources | array | Per-exchange breakdown of the VWAP inputs. |
rates[].sources[].exchange | string | Exchange name. |
rates[].sources[].price | number | Mid-price on this exchange. |
rates[].sources[].volume | number | Tradeable volume at this price level. |
rates[].freshness_seconds | integer | Age of the most recent data point in seconds. |
rates[].stale | boolean | Present and true only when freshness_seconds exceeds the max_age threshold. |
Examples
Single pair
curl
curl -X GET "https://api.moxiemetrx.com/v1/rates/live?pairs=USDTNGN" \
-H "X-API-Key: your_key"
Python
import requests
response = requests.get(
"https://api.moxiemetrx.com/v1/rates/live",
params={"pairs": "USDTNGN"},
headers={"X-API-Key": "your_key"},
)
rate = response.json()["rates"][0]
print(f"USDTNGN: {rate['vwap']} (age: {rate['freshness_seconds']}s)")
Response:
{
"rates": [
{
"pair": "USDTNGN",
"vwap": 1416.25,
"timestamp": "2026-03-23T12:00:00Z",
"sources": [
{ "exchange": "quidax", "price": 1415.80, "volume": 52340.0 },
{ "exchange": "luno", "price": 1416.50, "volume": 78210.0 }
],
"freshness_seconds": 4
}
]
}
Multiple pairs
curl
curl -X GET "https://api.moxiemetrx.com/v1/rates/live?pairs=USDTNGN,BTCNGN,ETHZAR" \
-H "X-API-Key: your_key"
Python
import requests
response = requests.get(
"https://api.moxiemetrx.com/v1/rates/live",
params={"pairs": "USDTNGN,BTCNGN,ETHZAR"},
headers={"X-API-Key": "your_key"},
)
for rate in response.json()["rates"]:
print(f"{rate['pair']}: {rate['vwap']}")
Response:
{
"rates": [
{
"pair": "USDTNGN",
"vwap": 1416.25,
"timestamp": "2026-03-23T12:00:00Z",
"sources": [
{ "exchange": "quidax", "price": 1415.80, "volume": 52340.0 },
{ "exchange": "luno", "price": 1416.50, "volume": 78210.0 }
],
"freshness_seconds": 4
},
{
"pair": "BTCNGN",
"vwap": 150234567.80,
"timestamp": "2026-03-23T12:00:00Z",
"sources": [
{ "exchange": "luno", "price": 150200000.00, "volume": 1.24 },
{ "exchange": "quidax", "price": 150280000.00, "volume": 0.87 }
],
"freshness_seconds": 7
},
{
"pair": "ETHZAR",
"vwap": 68420.50,
"timestamp": "2026-03-23T12:00:00Z",
"sources": [
{ "exchange": "luno", "price": 68400.00, "volume": 12.5 },
{ "exchange": "valr", "price": 68450.00, "volume": 18.3 }
],
"freshness_seconds": 3
}
]
}
tip
Requesting multiple pairs in a single call counts as one request against your rate limit. Prefer this over making separate calls per pair.