Sandbox version
For experimental use only. Proceed with caution.
nftokens
Batch lookup NFT details by NFTokenIDs
post
/nft/batch
operationId: nft-getDetails

Batch NFT-detail lookup by NFTokenID. Body: { "nftIds": ["0008…", "0008…"] } (max 100). Returns every matching NFT in the full nftDetail shape; NFTokenIDs that don't match an indexed token are silently omitted. Prefer this over N parallel calls to /nft/{nftId}.

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 `indexer` audience. Present as `Authorization: Bearer <token>`.
Request Body
application/json
required
FieldTypeDescription
nftIds
required
string[]
Array of on-chain NFTokenIDs (64-char hex). Max 100 per request.
Example
Json
{
  "nftIds": [
    "string"
  ]
}
Responses
200
application/json
Successful response
FieldTypeDescription
items
object[]
Detail records for every input that matched. Unmatched IDs are silently omitted.
items[].id
string
Internal UUID primary key for the NFT record.
items[].token_id
string
XRPL NFTokenID (64-char hex).
items[].issuer
string
Minter XRPL address.
items[].owner
string
Current owner XRPL address.
items[].taxon
integer
Collection-grouping identifier assigned at mint.
items[].serial_number
integer
Sequential number within (issuer, taxon).
items[].uri
object
On-chain URI — `ipfs://…` or `https://…`.
items[].transfer_fee
integer
Royalty in basis points (0–50000; 50000 = 50%).
items[].flags
object
Decoded XLS-20 flag bits.
items[].flags.burnable
boolean
Flag bit 0x01 — issuer can burn the NFT.
items[].flags.only_xrp
boolean
Flag bit 0x02 — sale offers must be XRP-denominated.
items[].flags.trust_line
boolean
Flag bit 0x04 — issuer trust line created on mint.
items[].flags.transferable
boolean
Flag bit 0x08 — NFT can be transferred by non-issuers.
items[].flags.mutable
boolean
Flag bit 0x10 — URI is mutable (XLS-46).
items[].burned
boolean
True when the NFT has been burned.
items[].burned_at
object
Timestamp of the burn as Unix-seconds, if any.
items[].minted_at_ledger
integer
Ledger sequence where the NFT was minted.
items[].mint_tx_hash
object
Hash of the NFTokenMint transaction that created this NFT.
items[].metadata
object
Asset metadata and (optional) collection context. Present when `metadata=true` (the default); omitted entirely when the caller passes `metadata=false`.
items[].metadata.asset
object
items[].metadata.asset.name
object
Display name from resolved metadata.
items[].metadata.asset.description
object
Project / artwork description.
items[].metadata.asset.meta_url
object
CDN URL of the resolved metadata JSON (backed by S3).
items[].metadata.asset.media_url
object
CDN URL of the primary media asset (backed by S3).
items[].metadata.asset.external_url
object
External project or marketplace link.
items[].metadata.asset.marketplace
object
Launchpad that minted this NFT (e.g. "xrp.cafe", "OnXRP", "XPMarket"). Resolved by minter address with fallback to attribution from upstream metadata.
items[].metadata.collection
object
items[].metrics
object
Per-NFT market state — sales count, lifetime volume, last sale, and the current lowest open XRP sell offer for this specific NFT. Present when `metrics=true`; omitted when the caller leaves it at the default `false`. Collection-scope metrics live on `/nft/collections` and `/nft/collection`.
items[].metrics.total_sales
integer
Lifetime count of sale transfers for this NFT (transfers with non-null amount).
items[].metrics.total_volume_xrp
string
Sum of XRP-denominated sale amounts across the NFT's lifetime, as a decimal XRP string. Excludes IOU sales.
items[].metrics.last_sale_price_xrp
object
XRP-denominated price of the most recent sale, decimal string. `null` when the most recent sale was IOU-denominated or no sales have been recorded.
items[].metrics.last_sale_at
object
Unix-seconds timestamp of the most recent sale (any currency). `null` when no sales recorded.
items[].metrics.current_floor_offer_xrp
object
Lowest open XRP sell offer for **this specific NFT**, decimal XRP. `null` when no open XRP sell offer exists. Distinct from the collection-level floor returned by `/nft/collections`.
Example
Json
{
  "items": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "token_id": "string",
      "issuer": "string",
      "owner": "string",
      "taxon": 0,
      "serial_number": 0,
      "uri": "string",
      "transfer_fee": 0,
      "flags": {
        "burnable": false,
        "only_xrp": false,
        "trust_line": false,
        "transferable": false,
        "mutable": false
      },
      "burned": false,
      "burned_at": 1745798400,
      "minted_at_ledger": 0,
      "mint_tx_hash": "string",
      "metadata": {
        "asset": {
          "name": "string",
          "description": "string",
          "meta_url": "string",
          "media_url": "string",
          "external_url": "string",
          "marketplace": "string"
        },
        "collection": {
          "issuer": "string",
          "taxon": 0,
          "name": "string",
          "description": "string",
          "image_url": "string"
        }
      },
      "metrics": {
        "total_sales": 0,
        "total_volume_xrp": "string",
        "last_sale_price_xrp": "string",
        "last_sale_at": 1745798400,
        "current_floor_offer_xrp": "string"
      }
    }
  ]
}
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": []
}
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": []
}