/nft/collections-by-owner/{address}nft-collectionsByOwnerReturns the set of NFT collections that address holds at least one non-burned token from, ranked by how many tokens they own in each. Each item has: metadata (name / description / image_url), metrics (token_count / floor_price / total_volume), owned_count (non-burned NFTs the address holds in this collection), and tokens[] — up to tokensLimit (default 10, max 50) NFT detail rows. Pass tokensLimit=0 to skip the per-collection token fetch. For a full paginated listing of an address's NFTs within a collection, use /nft/by-owner/{address}?issuer=…&taxon=….
| Name | Location | Details |
|---|---|---|
BearerAuth | Authorization header · bearer | JWT issued by the Honeycluster auth service for the `indexer` audience. Present as `Authorization: Bearer <token>`. |
| Name | Type | Default | Description |
|---|---|---|---|
addressrequired | string | XRPL classic address of the NFT owner. |
| Name | Type | Default | Description |
|---|---|---|---|
cursor | string | ||
limit | integer | 20 | |
tokensLimit | integer | 10 | |
metadata | boolean | ||
metrics | boolean |
| Field | Type | Description |
|---|---|---|
items | object[] | Page of results. |
items[]. | string | Internal UUID primary key for the collection. |
items[]. | string | XRPL address that minted the collection. |
items[]. | integer | NFToken taxon grouping identifier. |
items[]. | integer | Record creation timestamp, Unix-seconds. |
items[]. | integer | Record update timestamp, Unix-seconds. |
items[]. | object | Curated collection metadata. Present when `metadata=true` (the default); omitted when the caller passes `metadata=false`. |
items[]. | object | |
items[]. | object | |
items[]. | object | |
items[]. | object | Live collection metrics — token count, floor (computed from open XRP sell offers), and lifetime volume. Present when `metrics=true`; omitted when the caller leaves it at the default `false`. |
items[]. | integer | |
items[]. | object | |
items[]. | string | |
items[]. | integer | Number of non-burned NFTs from this collection currently held by the address. |
items[]. | object[] | Up to `tokensLimit` NFTs the address holds in this collection (newest-minted first). Empty when `tokensLimit = 0`. |
items[]. | string | Internal UUID primary key for the NFT record. |
items[]. | string | XRPL NFTokenID (64-char hex). |
items[]. | string | Minter XRPL address. |
items[]. | string | Current owner XRPL address. |
items[]. | integer | Collection-grouping identifier assigned at mint. |
items[]. | integer | Sequential number within (issuer, taxon). |
items[]. | object | On-chain URI — `ipfs://…` or `https://…`. |
items[]. | integer | Royalty in basis points (0–50000; 50000 = 50%). |
items[]. | object | Decoded XLS-20 flag bits. |
items[]. | boolean | True when the NFT has been burned. |
items[]. | object | Timestamp of the burn as Unix-seconds, if any. |
items[]. | integer | Ledger sequence where the NFT was minted. |
items[]. | object | Hash of the NFTokenMint transaction that created this NFT. |
items[]. | object | Asset metadata and (optional) collection context. Present when `metadata=true` (the default); omitted entirely when the caller passes `metadata=false`. |
items[]. | 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`. |
nextCursor | object | Cursor to fetch the next page, or null if this is the last page. |
{
"items": [
{
"id": "00000000-0000-0000-0000-000000000000",
"issuer": "string",
"taxon": 0,
"createdAt": 1745798400,
"updatedAt": 1745798400,
"metadata": {
"name": "string",
"description": "string",
"image_url": "string"
},
"metrics": {
"token_count": 0,
"floor_price": "string",
"total_volume": "string"
},
"owned_count": 0,
"tokens": [
{
"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"
}
}
]
}
],
"nextCursor": "string"
}| 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": "NOT_FOUND",
"message": "Not found",
"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": []
}