Sandbox version
For experimental use only. Proceed with caution.
XRPL
Get raw OHLCV candles for an XRPL token
get
/xrpl/ohlcv
operationId: xrpl-ohlcv

Returns OHLCV candles for an XRPL IOU's XRP-paired market, sourced from TimescaleDB continuous aggregates. Lookup is by tokenSlug (or currency + issuer); the controller resolves to the underlying trade pair (handling lex-ordered base/quote and inversion). Prices are native — XRP-quoted for IOU/XRP pairs. Use /xrpl/quote/ohlcv to get the same series in any denomination via the CEX bridge.

Unlock protected endpoints

Enter your Bearer token once to enable every protected route in this API reference.

HTTP bearer

Saved for this browser tab only. The credential is never sent until you test an endpoint.

Authorizations
NameLocationDetails
BearerAuthAuthorization header · bearerJWT issued by the Honeycluster auth service for the `oracle` audience. Present as `Authorization: Bearer <token>`.
Query Parameters
NameTypeDefaultDescription
tokenSlug
string
currency
string
issuer
object
interval
enum<string>"1h"
Available
1m3m5m15m30m1h2h4h
startTime
integer
endTime
integer
limit
integer500
Responses
200
application/json
Successful response
FieldTypeDescription
items
object[]
items[].tradePairId
string
Trade pair identifier (UUID v4).
items[].bucket
integer
Start of the candle interval, Unix-seconds.
items[].open
string
Opening price of the interval (decimal string).
items[].high
string
Highest price seen in the interval (decimal string).
items[].low
string
Lowest price seen in the interval (decimal string).
items[].close
string
Closing price of the interval (decimal string).
items[].volume
string
Total volume traded in the interval (decimal string).
items[].tradeCount
number
Number of trades that make up the candle.
Example
Json
{
  "items": [
    {
      "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
    }
  ]
}
400
application/json
Invalid input data
FieldTypeDescription
message
string
The error message
code
string
The error code
issues
object[]
An array of issues that were responsible for the error
issues[].message
string
Example
Json
{
  "code": "BAD_REQUEST",
  "message": "Invalid input data",
  "issues": []
}
401
application/json
Authorization not provided
FieldTypeDescription
message
string
The error message
code
string
The error code
issues
object[]
An array of issues that were responsible for the error
issues[].message
string
Example
Json
{
  "code": "UNAUTHORIZED",
  "message": "Authorization not provided",
  "issues": []
}
403
application/json
Insufficient access
FieldTypeDescription
message
string
The error message
code
string
The error code
issues
object[]
An array of issues that were responsible for the error
issues[].message
string
Example
Json
{
  "code": "FORBIDDEN",
  "message": "Insufficient access",
  "issues": []
}
404
application/json
Not found
FieldTypeDescription
message
string
The error message
code
string
The error code
issues
object[]
An array of issues that were responsible for the error
issues[].message
string
Example
Json
{
  "code": "NOT_FOUND",
  "message": "Not found",
  "issues": []
}
500
application/json
Internal server error
FieldTypeDescription
message
string
The error message
code
string
The error code
issues
object[]
An array of issues that were responsible for the error
issues[].message
string
Example
Json
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}