Skip to main content

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:

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 display standard 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

ParameterTypeDefaultDescription
pagenumber0Page number (starts from 0)
perPagenumber10Items 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: