NFT API Overview
The Surflux NFT Indexing API provides reliable, queryable access to NFT data on the Sui blockchain. Built on a custom indexer powered by Sui's on-chain data, it eliminates the need to run your own indexing infrastructure.
With the NFT API, you can build marketplaces, wallets, portfolio trackers, and analytics dashboards without the complexity of parsing raw blockchain events or managing database sync logic.
What You Can Build
- NFT Marketplaces — Query listings, track ownership, and display collection data
- Wallet Applications — Show users their complete NFT portfolio across collections
- Portfolio Trackers — Monitor holdings, floor prices, and collection stats
- Analytics Dashboards — Analyze holder distribution and collection metrics
- Discovery Tools — Browse NFTs by collection with advanced filtering
API Endpoints
The NFT Indexing API includes five core endpoints:
- Address NFTs — Get all NFTs owned by a wallet address (10 credits)
- NFT by Object ID — Retrieve a single NFT by its object ID (5 credits)
- Collection Snapshot — Query NFTs within a specific collection (15 credits)
- Collection Holders — Retrieve holder distribution for a collection (50 credits)
- Kiosks NFTs — Access NFTs stored in a Sui Kiosk (10 credits)
All endpoints consume credits based on their computational complexity. See the Credits documentation for detailed pricing.
What is a Sui NFT?
Sui takes a unique approach to NFTs compared to other blockchains. Instead of a single token standard, Sui uses objects with custom types to represent NFTs. Any object with unique properties can be an NFT.
Key characteristics of Sui NFTs:
- Object-based — Each NFT is a Sui object with a unique type and ID
- Flexible structure — NFTs can have custom fields and capabilities
- Display standard — Projects use the
displaystandard to define how NFTs appear in wallets and marketplaces - Ownership model — NFTs can be owned directly by addresses or stored in Kiosks
For more details on Sui's NFT model, see the Sui NFT documentation.
What is a Kiosk?
A Kiosk is Sui's native solution for NFT custody, trading, and royalty enforcement. It's a shared object that holds NFTs and enables secure, policy-compliant transfers.
Key features:
- Custody — NFTs can be stored in a Kiosk while remaining under the owner's control
- Trading — Kiosks enable listing NFTs for sale with custom pricing
- Royalty enforcement — Transfer policies can require royalty payments on sales
- Personal or shared — Users can create personal Kiosks or use shared marketplace infrastructure
When querying NFTs via the Surflux API, you'll see kiosk_object_id and listed_value fields for NFTs stored in Kiosks.
Learn more in the Sui Kiosk documentation.
Pagination
All NFT API endpoints support pagination to efficiently handle large datasets. Use the page and perPage query parameters to control results:
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | number | 0 | Page number (starts from 0) |
perPage | number | 10 | Items per page (max 50) |
Response Structure
Paginated responses include metadata to help you navigate results:
{
"items": [...],
"isLastPage": false,
"currentPage": 0,
"perPage": 10
}
Example
# Get the first 20 NFTs owned by an address
GET /nfts/address/0xf9c18a383d4f5c293bef82e4daf1ce82306b7b561cbef50d5c456a90d8547a5d?page=0&perPage=20
# Get the next page
GET /nfts/address/0xf9c18a383d4f5c293bef82e4daf1ce82306b7b561cbef50d5c456a90d8547a5d?page=1&perPage=20
What Type of NFTs are Indexed?
The Surflux NFT Indexing API covers all NFT types on the Sui blockchain:
- Standard NFTs — Objects implementing the Display standard
- Kiosk-held NFTs — NFTs stored in Sui Kiosks
- Custom NFT types — Project-specific NFT implementations
- Cross-package NFTs — NFTs from any Move package
The indexer automatically tracks:
- Ownership changes
- Kiosk listings and transfers
- Decoded metadata and display properties
- Collection associations
Authentication
All NFT API requests require authentication via an API key. Pass your API key as a query parameter:
curl "https://api.surflux.dev/nfts/address/0xf9c18a...?api-key=your_api_key_here"
The api-key parameter is required for all NFT and Kiosk endpoints. Without a valid API key, requests will be rejected.
Don't have an API key yet? Create your Surflux account to get started.
Next Steps
Ready to start querying NFT data? Check out the endpoint documentation:
- Address NFTs — Query NFTs by owner
- NFT by Object ID — Get a single NFT by its object ID
- Collection Snapshot — Get NFTs in a collection
- Collection Holders — Analyze holder distribution
- Kiosks NFTs — Access Kiosk-stored NFTs