/xrpl/ohlcv/batchxrpl-ohlcvBatchPOST batch variant of /xrpl/ohlcv. Body: { tokens: [...], interval, startTime, endTime, limit } (max 50 tokens; each entry is {tokenSlug} or {currency, issuer}). Returns one row per requested token as { currency, issuer, pair, candles: [...] }; tokens with no matching XRPL pair surface as pair: null, candles: [] so one bad token doesn't fail the whole batch. Time-window / interval / limit are shared across the batch.
| Name | Location | Details |
|---|---|---|
BearerAuth | Authorization header · bearer | JWT issued by the Honeycluster auth service for the `oracle` audience. Present as `Authorization: Bearer <token>`. |
| Field | Type | Default | Description |
|---|---|---|---|
tokensrequired | object[] | Tokens to fetch candles for. Each entry is `{tokenSlug}` or `{currency, issuer}`. Max 50 per request. | |
interval | enum<string> | "1h" | OHLCV candle interval. Defaults to `1h`. Available 1m3m5m15m30m1h2h4h |
startTime | integer | Inclusive lower bound for candle time, Unix-seconds. Defaults to `endTime − (interval × limit)`. | |
endTime | integer | Exclusive upper bound for candle time, Unix-seconds. Defaults to the current server time. | |
limit | integer | 500 | Per-token maximum number of candles to return (1–1000). Defaults to 500. |
{
"tokens": [
{
"tokenSlug": "string"
}
],
"interval": "1h",
"startTime": 1745798400,
"endTime": 1745798400,
"limit": 500
}| Field | Type | Description |
|---|---|---|
items | object[] | One entry per requested token, in request order. |
items[]. | string | Echoed currency code. |
items[]. | object | Echoed issuer, or `null` for XRP. |
items[]. | object | Resolved trade pair, or `null` when no pair was found for the token. |
items[]. | object[] | OHLCV candles for the token, ascending bucket order. Empty when no pair / data exists in the window. |
items[]. | string | Trade pair identifier (UUID v4). |
items[]. | integer | Start of the candle interval, Unix-seconds. |
items[]. | string | Opening price of the interval (decimal string). |
items[]. | string | Highest price seen in the interval (decimal string). |
items[]. | string | Lowest price seen in the interval (decimal string). |
items[]. | string | Closing price of the interval (decimal string). |
items[]. | string | Total volume traded in the interval (decimal string). |
items[]. | number | Number of trades that make up the candle. |
{
"items": [
{
"currency": "string",
"issuer": "string",
"pair": {
"id": "00000000-0000-0000-0000-000000000000",
"baseCurrency": "string",
"baseIssuer": "string",
"quoteCurrency": "string",
"quoteIssuer": "string",
"createdAt": "string",
"updatedAt": "string"
},
"candles": [
{
"tradePairId": "3c4a3de8-4218-400c-8c55-87dc27206753",
"bucket": 1745712000,
"open": "0.512",
"high": "0.518",
"low": "0.509",
"close": "0.514",
"volume": "128450.32",
"tradeCount": 312
}
]
}
]
}| Field | Type | Description |
|---|---|---|
message | string | The error message |
code | string | The error code |
issues | object[] | An array of issues that were responsible for the error |
issues[]. | string |
{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}| Field | Type | Description |
|---|---|---|
message | string | The error message |
code | string | The error code |
issues | object[] | An array of issues that were responsible for the error |
issues[]. | string |
{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}| Field | Type | Description |
|---|---|---|
message | string | The error message |
code | string | The error code |
issues | object[] | An array of issues that were responsible for the error |
issues[]. | string |
{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}| Field | Type | Description |
|---|---|---|
message | string | The error message |
code | string | The error code |
issues | object[] | An array of issues that were responsible for the error |
issues[]. | string |
{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}