# Aptos Token & NFT API
> Browse the Aptos token universe live from the official public Aptos Indexer GraphQL — no key. The Aptos on-chain reader resolves a single address's state from the fullnode, but it cannot browse the fungible-asset universe, rank tokens by supply, browse NFT collections, or list who holds a token. This opens that, on top of the Indexer. Discover and rank Aptos fungible assets (the FA / coin standard) with their asset type, name, symbol, decimals, decimal-adjusted supply, token standard and creator; browse NFT collections ranked by current supply with their creator, max supply and metadata uri; and list the holders of any fungible asset with their decimal-adjusted balances, largest first. The discovery, NFT and distribution layer for Aptos wallets, token explorers, NFT marketplaces and analytics. Distinct from the Aptos on-chain reader (per-address account state), the validator reader and the Move view-function reader. Live from the indexer; short cache only.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/aptostokens-api/..."
```

## Pricing
- **Free** (Free) — 8,600 calls/Mo, 3 req/s
- **Starter** ($8/Mo) — 158,000 calls/Mo, 10 req/s
- **Pro** ($29/Mo) — 830,000 calls/Mo, 25 req/s
- **Scale** ($87/Mo) — 5,250,000 calls/Mo, 60 req/s

## Endpoints

### Tokens

#### `GET /v1/tokens` — Browse/rank Aptos fungible assets

**Parameters:**
- `limit` (query, optional, string) — Page size (1-100) Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/aptostokens-api/v1/tokens?limit=25"
```

**Response:**
```json
{
    "data": {
        "note": "Browse the Aptos fungible-asset universe — coins and FA-standard tokens ranked by on-chain supply, each with its asset type, name, symbol, decimals, token standard and decimal-adjusted supply. The discovery layer the per-address account reader can't give you. Paginate with limit.",
        "count": 25,
        "source": "Aptos Indexer",
        "tokens": [
            {
                "name": "Indian Rupee ZVT",
                "supply": 258378696938.9273,
                "symbol": "zINR",
                "decimals": 8,
                "asset_type": "0x7d100b7d9cbececcac4505a45195fbc79bd8b85a6fff2abda190a1ae895d419c",
                "token_standard": "v2",
                "creator_address": "0xaa315f2d30d345b1de7c877786a931db746a7fe634b4e7a6f6e864a35b969b96"
            },
            {
                "name": "KingCake",
                "supply": 19999277350.512672,
                "symbol": "KingCake",
                "decimals": 9,
                "asset_type": "0xdb3428654d0492c6314bc824a5f62b6b4b35ca1e3d96f6e841341c813eb41602",
                "token_standard": "v2",
                "creator_address": "0x000000000000000000000000000000000000000000000000000000000000000a"
            },
            {
                "name": "MemeCake",
                "supply": 19997391873.88464,
                "symbol": "MemeCake",
                "decimals": 9,
                "asset_type": "0xa602707dfc639983c016ba67a7666170775ef2b0a7aa3b3663d2309959
…(truncated, see openapi.json for full schema)
```

### Collections

#### `GET /v1/collections` — Browse Aptos NFT collections

**Parameters:**
- `limit` (query, optional, string) — Page size (1-100) Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/aptostokens-api/v1/collections?limit=25"
```

**Response:**
```json
{
    "data": {
        "note": "Browse Aptos NFT collections ranked by current supply — each with its collection id, name, creator address, current and max supply, token standard and metadata uri. The NFT discovery layer for Aptos. Paginate with limit.",
        "count": 25,
        "source": "Aptos Indexer",
        "collections": [
            {
                "uri": "https://www.giftielbiz.co.kr",
                "name": "giftiel",
                "max_supply": null,
                "collection_id": "0x068d214046d31d581c43f60409a600bd7cbba1e96403bafa273014a03211a5b6",
                "current_supply": 13656951,
                "token_standard": "v2",
                "creator_address": "0x8d1309464d087b58d8e4463fa3a60c4e1f11509e83babf8583af8f2094889070"
            },
            {
                "uri": "https://chingari.io",
                "name": "Lollipop",
                "max_supply": null,
                "collection_id": "0xc791df699189a8fdfb4faaacf834f036d37670d6fd1ef06d3efb2d14c081512a",
                "current_supply": 12986164,
                "token_standard": "v2",
                "creator_address": "0x7efbc33cf69ad534412eab0ccd0f5fbec7793bdebf08a3620afe8e5f89ef13a0"
            },
            {
                "uri": "https://kgen.io",
                "name": "Bucket store",
                "max_supply": null,
                "collection_id": "0x39a3512a0239fe9fce5d213c941bbaf4c9b992a372053daa22efb8417d596c32",
                "current_supply": 11447909
…(truncated, see openapi.json for full schema)
```

### Holders

#### `GET /v1/holders` — A fungible asset's holders and balances

**Parameters:**
- `asset_type` (query, optional, string) — Aptos asset type (0x...); omit for the highest-supply asset Example: `0x7d100b7d9cbececcac4505a45195fbc79bd8b85a6fff2abda190a1ae895d419c`
- `limit` (query, optional, string) — Page size (1-100) Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/aptostokens-api/v1/holders?asset_type=0x7d100b7d9cbececcac4505a45195fbc79bd8b85a6fff2abda190a1ae895d419c&limit=25"
```

**Response:**
```json
{
    "data": {
        "name": "Indian Rupee ZVT",
        "note": "The holders of one Aptos fungible asset and their decimal-adjusted balances, largest first — the distribution view the per-address reader can't give you. Pass asset_type (from /v1/tokens), or omit to use the highest-supply asset.",
        "count": 25,
        "source": "Aptos Indexer",
        "symbol": "zINR",
        "holders": [
            {
                "amount": 184467440324.49,
                "amount_raw": "18446744032449000000",
                "owner_address": "0xaa315f2d30d345b1de7c877786a931db746a7fe634b4e7a6f6e864a35b969b96"
            },
            {
                "amount": 71473124712.2207,
                "amount_raw": "7147312471222070000",
                "owner_address": "0xa77082fb614041238be116fd57ef0f55a8150c87fe1547afbb9523ecedca7b49"
            },
            {
                "amount": 185387196.04,
                "amount_raw": "18538719604000000",
                "owner_address": "0xcf536159d506f6c41d6a72391e80cfa17e46d45ae26e40c5fb041e9be7f6c750"
            },
            {
                "amount": 687610,
                "amount_raw": "68761000000000",
                "owner_address": "0x67ccf7d63d8db57d94aa93fecf0970b2325d89316e333b47a94897faa275b953"
            },
            {
                "amount": 625517,
                "amount_raw": "62551700000000",
                "owner_address": "0x6ac120097d1b3b40670a2aa1db29a5fa251fc77e613db8bef22adb34657515a0"
     
…(truncated, see openapi.json for full schema)
```

### Meta

#### `GET /v1/meta` — Service metadata

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/aptostokens-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "sample": {
            "top_token": "zINR"
        },
        "source": "official public Aptos Indexer GraphQL (indexer.mainnet.aptoslabs.com), keyless",
        "service": "aptostokens-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/tokens": "Browse/rank Aptos fungible assets by supply (limit).",
            "GET /v1/holders": "A fungible asset's holders and decimal-adjusted balances (asset_type; omit for the top asset).",
            "GET /v1/collections": "Browse Aptos NFT collections by supply (limit)."
        },
        "description": "Browse the Aptos token universe live from the official public Aptos Indexer GraphQL: discover and rank fungible assets (asset type, name, symbol, decimals, supply, standard), browse NFT collections ranked by supply, and list the holders of any fungible asset with decimal-adjusted balances. The discovery, NFT and distribution layer for Aptos wallets, token explorers and NFT marketplaces. Live, short cache only.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-14T17:03:57.039Z",
        "request_id": "592c42d9-fbcc-48a8-a34e-2bcd07e77e75"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/aptostokens-api
OpenAPI spec: https://www.oanor.com/api/aptostokens-api/openapi.json
