Skip to main content

Kiosks NFTs

Access NFTs stored in a Sui Kiosk with complete metadata, listing information, and ownership details.

Overview​

The Kiosks NFTs endpoint returns all NFTs stored in a specific Kiosk, including:

  • Complete NFT metadata and display properties
  • Listing prices for NFTs available for sale
  • Kiosk ownership information
  • Pagination support for large Kiosks

Kiosks are Sui's native solution for NFT custody, trading, and royalty enforcement. This endpoint is essential for marketplace integrations and Kiosk explorers.

Endpoint​

GET /kiosks/{id}/nfts

Base URL: https://api.surflux.dev

Parameters​

Path Parameters​

ParameterTypeRequiredDescription
idstringYesKiosk object ID

Example: 0x9aab72bc43ab621ee245e8603c5a16355adf9bf1ec5357ad1df912c9902a5ac9

Query Parameters​

ParameterTypeRequiredDefaultDescription
pagenumberNo0Page number for pagination (starts from 0)
perPagenumberNo10Number of items per page (max 50)
collectionsstring[]No[]Filter by collection types
api-keystringYes-API key for authentication

Request Examples​

Basic Request​

curl "https://api.surflux.dev/kiosks/0x9aab72bc43ab621ee245e8603c5a16355adf9bf1ec5357ad1df912c9902a5ac9/nfts?page=0&perPage=20&api-key=your_api_key_here"

Filter by Collection​

curl "https://api.surflux.dev/kiosks/0x9aab72bc43ab621ee245e8603c5a16355adf9bf1ec5357ad1df912c9902a5ac9/nfts?collections=0x41c06da395bc3f0ee621a66082f8f30f376da41a2db7bcce7c087444de200e41::panzerdog::Panzerdog&api-key=your_api_key_here"

Response​

Response Structure​

{
"kiosk": {
"object_id": "0x9aab72bc43ab621ee245e8603c5a16355adf9bf1ec5357ad1df912c9902a5ac9",
"owner": "0xf9c18a383d4f5c293bef82e4daf1ce82306b7b561cbef50d5c456a90d8547a5d",
"owner_cap_object_id": "0xabc123...",
"personal_cap_object_id": null,
"checkpoint_id": 12345678,
"created_at": "2024-01-10T08:00:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"items": [
{
"object_id": "0xa534b9c5a824c31c9c4d143580f7ccb3f3a6e544e1afc30ac235c7277d73b7fe",
"object_type": "0xb908f3c6fea6865d32e2048c520cdfe3b5c5bbcebb658117c41bad70f52b7ccc::popkins_nft::Popkins",
"owner_dynamic_field_object_id": "0xca96b6c9e52fa706604e2580c9a0cb1fe46e3cb9cdd58616e32f3030459478d4",
"kiosk_object_id": "0x9aab72bc43ab621ee245e8603c5a16355adf9bf1ec5357ad1df912c9902a5ac9",
"owner": null,
"checkpoint_id": "187489349",
"decoded_fields": {
"id": {
"id": "0xa534b9c5a824c31c9c4d143580f7ccb3f3a6e544e1afc30ac235c7277d73b7fe"
},
"name": "Popkins #11271",
"image_url": "https://walrus.tusky.io/jbpsuBO5Ug6XMvP4CYhP2PWjwDKxFFI-KHRt0UXCjPE",
"description": "Who knew so much chaos could come in such a small package?"
},
"decoded_display": {
"name": "Popkins #11271",
"image_url": "https://walrus.tusky.io/jbpsuBO5Ug6XMvP4CYhP2PWjwDKxFFI-KHRt0UXCjPE",
"description": "Who knew so much chaos could come in such a small package?"
},
"created_at": "2025-06-05T19:57:09.698Z",
"updated_at": "2025-09-07T21:03:01.585Z"
}
],
"isLastPage": false,
"currentPage": 0,
"perPage": 20
}

Response Fields​

FieldTypeDescription
kioskobjectKiosk information
itemsarrayArray of NFT objects in the Kiosk
isLastPagebooleanWhether this is the last page of results
currentPagenumberCurrent page number
perPagenumberItems per page

Kiosk Object Fields​

FieldTypeDescription
object_idstringKiosk object ID
ownerstringOwner address of the Kiosk
owner_cap_object_idstring | nullOwner capability object ID
personal_cap_object_idstring | nullPersonal Kiosk capability ID
checkpoint_idnumberLast update checkpoint
created_atstringKiosk creation timestamp
updated_atstringLast update timestamp

NFT Item Fields​

The NFT items structure is identical to Address NFTs:

FieldTypeDescription
object_idstringNFT object ID
object_typestringFull type path of the NFT
owner_dynamic_field_object_idstringDynamic field object ID for Kiosk ownership
kiosk_object_idstringParent Kiosk ID
ownerstring | nullAlways null for Kiosk-stored NFTs
checkpoint_idstringLast update checkpoint
decoded_fieldsobjectDecoded on-chain fields including name, description, image, attributes
decoded_displayobjectDisplay metadata formatted for UI rendering
created_atstringNFT creation timestamp (ISO 8601)
updated_atstringLast update timestamp (ISO 8601)

Use Cases​

  • Marketplace Listings — Display NFTs available for sale in Kiosks
  • Kiosk Explorers — Browse all NFTs stored in a specific Kiosk
  • Price Discovery — Check listing prices across Kiosks
  • Inventory Management — Track NFTs stored in Kiosks you own
  • Trading Bots — Monitor Kiosk listings for trading opportunities

Code Examples​

JavaScript / TypeScript​

const kioskId = "0x9aab72bc43ab621ee245e8603c5a16355adf9bf1ec5357ad1df912c9902a5ac9";
const apiKey = "your_api_key_here";

const response = await fetch(
`https://api.surflux.dev/kiosks/${kioskId}/nfts?page=0&perPage=20&api-key=${apiKey}`
);

const data = await response.json();

console.log(`Kiosk Owner: ${data.kiosk.owner}`);
console.log(`Found ${data.items.length} NFTs`);

// Display NFTs in the Kiosk
data.items.forEach(nft => {
console.log(`- ${nft.decoded_display.name}`);
});

Filter by Collection​

const kioskId = "0x9aab72bc43ab621ee245e8603c5a16355adf9bf1ec5357ad1df912c9902a5ac9";
const collectionType = "0xb908f3c6fea6865d32e2048c520cdfe3b5c5bbcebb658117c41bad70f52b7ccc::popkins_nft::Popkins";
const apiKey = "your_api_key_here";

const response = await fetch(
`https://api.surflux.dev/kiosks/${kioskId}/nfts?collections=${encodeURIComponent(collectionType)}&api-key=${apiKey}`
);

const data = await response.json();
console.log(`Found ${data.items.length} NFTs from this collection in the Kiosk`);