Sandbox version
For experimental use only. Proceed with caution.
nftokens
List transfer history for an NFT
get
/nft/transfers
operationId: nft-transfers

Returns the full transfer history for a given NFToken, ordered newest-first. This includes all ownership changes, whether paid (sales) or free (gifts, airdrops). For paid-only history, use /nft/trades with the same token ID.

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>`.
Query Parameters
NameTypeDefaultDescription
cursor
string
limit
integer20
tokenId
required
string
XRPL NFToken identifier (hex).
Responses
200
application/json
Successful response
FieldTypeDescription
items
object[]
Page of results.
items[].id
string
UUID — part of the composite PK (id, timestamp).
items[].tokenId
string
NFTokenID that was transferred.
items[].fromAccount
string
Previous owner XRPL address.
items[].toAccount
string
New owner XRPL address.
items[].amount
object
items[].currency
object
items[].issuer
object
items[].txHash
string
Transaction hash of the transfer.
items[].ledgerIndex
integer
Ledger sequence of the transfer.
items[].timestamp
integer
When the transfer occurred on-ledger, Unix-seconds.
items[].transferType
string
Transfer kind: `sale` | `gift` | `mint` | `burn`.
items[].brokerMarketplace
object
items[].createdAt
integer
Record creation timestamp, Unix-seconds.
nextCursor
object
Cursor to fetch the next page, or null if this is the last page.
Example
Json
{
  "items": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "tokenId": "string",
      "fromAccount": "string",
      "toAccount": "string",
      "amount": "string",
      "currency": "string",
      "issuer": "string",
      "txHash": "string",
      "ledgerIndex": 0,
      "timestamp": 1745798400,
      "transferType": "string",
      "brokerMarketplace": "string",
      "createdAt": 1745798400
    }
  ],
  "nextCursor": "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": []
}
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": []
}