/trade/quote/batchtrade-quoteBatchPOST batch variant of /trade/quote. Body: { slugs?: [...], mptIssuanceIds?: [...], timestamp? } (max 100 entries combined; at least one of the two arrays is required). slugs carry IOU currency.issuer strings or the literal XRP; mptIssuanceIds carry 48-char hex MPT issuance IDs. Each entry returns the same single-row shape as /trade/quote, or { data: null } when the slug is malformed. The slug field on each item echoes the input identifier (issuance ID for MPT entries) so callers can pair responses back. Pass an optional timestamp (Unix-seconds) to fetch the historical close for every entry at that moment — same ladder semantics as the singular endpoint. Use this instead of N parallel /trade/quote calls.
| Name | Location | Details |
|---|---|---|
BearerAuth | Authorization header · bearer | JWT issued by the Honeycluster auth service for the `indexer` audience. Present as `Authorization: Bearer <token>`. |
| Field | Type | Description |
|---|---|---|
slugs | string[] | Array of token slugs in `currency.issuer` form. The literal `XRP` is also accepted. Per-slug parse / lookup failures surface as `{ slug, data: null }`. |
mptIssuanceIds | string[] | Array of XLS-33d MPT issuance IDs (48-char hex). Each is resolved against the MPT/XRP trade pair. Lookup failures surface as `{ slug, data: null }` (the `slug` field echoes the supplied issuance ID). |
timestamp | integer | Optional historical quote moment, Unix-seconds. Applied uniformly to every entry across `slugs` and `mptIssuanceIds`. Same ladder semantics as `/trade/quote` — see that endpoint for the per-field nullification rules when `timestamp` is set. |
{
"slugs": [
"string"
],
"mptIssuanceIds": [
"string"
],
"timestamp": 1745798400
}| Field | Type | Description |
|---|---|---|
items | object[] | One entry per input slug, in the same order as the request. Always has the same length as `input.slugs`. |
items[]. | string | The token slug that produced this row (echoed from the request). |
items[]. | object | Per-slug response, or `null` when the slug is malformed / unknown / the per-slug query threw. |
{
"items": [
{
"slug": "string",
"data": {
"tokenSlug": "string",
"priceXrp": "string",
"priceChange5mPct": "string",
"priceChange1hPct": "string",
"priceChange24hPct": "string",
"priceChange7dPct": "string",
"volume24hXrp": "string",
"volume7dXrp": "string",
"marketCapXrp": "string",
"trades24h": 0,
"takers24h": 0,
"lastCloseAt": 1745798400,
"source": "direct"
}
}
]
}| 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": []
}