/nft/activitynft-activityFeedReturns a unified recent-activity feed combining NFT transfers and offer-lifecycle events. Each row carries the event timestamp, a narrow type discriminator (transfer sub-kinds sale / gift / mint / burn, plus offer-lifecycle events offer_created / offer_accepted / offer_cancelled), the NFTokenID, the resolved collectionId (UUID, null when the NFT has no resolved collection yet), sender / recipient accounts, and the XRP-denominated price in drops (NULL for IOU-denominated events). Ordered newest-first, paginated via an opaque {ts, txHash} cursor. Optional slug (in issuer:taxon form) scopes the feed to one collection; omit for the global feed. The per-collection /nft/collection/{slug}/activity path is an alias — identical semantics, slug moves into the URL.
| 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 |
|---|---|---|---|
slug | string | ||
cursor | string | ||
limit | integer | 50 |
| Field | Type | Description |
|---|---|---|
items | object[] | Activity rows ordered by timestamp descending (newest first). A stable `(ts DESC, txHash ASC)` total order keeps pagination deterministic across ties. |
items[]. | integer | Event timestamp, Unix-seconds. |
items[]. | enum<string> | Event kind — 4 transfer sub-types (sale / gift / mint / burn) plus 3 offer-lifecycle events (offer_created / offer_accepted / offer_cancelled). Available salegiftmintburnoffer_createdoffer_acceptedoffer_cancelled |
items[]. | string | On-chain NFTokenID (64-char hex) the event targets. |
items[]. | object | Internal UUID of the NFT collection the NFT belongs to, or `null` when the NFT has no resolved collection yet. |
items[]. | object | Sender (transfer) or offer owner. `null` for mint events (no prior owner). |
items[]. | object | Recipient (transfer) or offer destination. `null` for un-restricted offers (any account can take) and for some transfer kinds. |
items[]. | object | Transacted amount in XRP drops (decimal string) when the underlying currency is `XRP`; `null` for IOU-denominated events and for offers/transfers without an amount. |
nextCursor | object | Cursor for the next page, or `null` when this is the last page. |
{
"items": [
{
"ts": 1745798400,
"type": "sale",
"nftId": "string",
"collectionId": "00000000-0000-0000-0000-000000000000",
"fromAccount": "string",
"toAccount": "string",
"priceXrpDrops": "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": []
}