# Tezos FA Token & NFT API
> Browse the Tezos token universe live from the public TzKT indexer — no key. Tezos tokens are FA1.2 (fungible) and FA2 (fungible or NFT) contracts. The Tezos on-chain reader returns the token balances a single address holds, but it cannot browse the token universe, rank tokens by holders, list who holds a token, or trace a token's transfers. This opens that. Discover and rank FA tokens and NFT collections with their TzKT token id, contract, standard, name, symbol, decimals, holder and transfer counts, decimal-adjusted total supply and — for NFTs — their resolved artwork image; list the holders of any token with their decoded balances, largest first; and trace a token's recent transfers with sender, receiver, decimal-adjusted amount and time (a mint shows no sender, a burn no receiver). The discovery, NFT and distribution layer for Tezos wallets, token explorers, NFT marketplaces and analytics. Distinct from the Tezos on-chain reader (per-address token balances), the self-amending governance reader, the baker/validator reader and the smart-rollup 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/tezostokens-api/..."
```

## Pricing
- **Free** (Free) — 8,000 calls/Mo, 3 req/s
- **Starter** ($9/Mo) — 152,000 calls/Mo, 10 req/s
- **Pro** ($30/Mo) — 810,000 calls/Mo, 25 req/s
- **Scale** ($88/Mo) — 5,100,000 calls/Mo, 60 req/s

## Endpoints

### Tokens

#### `GET /v1/tokens` — Browse/rank FA tokens & NFT collections

**Parameters:**
- `standard` (query, optional, string) — Filter: fa1.2 or fa2 Example: `fa2`
- `limit` (query, optional, string) — Page size (1-100) Example: `25`

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

**Response:**
```json
{
    "data": {
        "note": "Browse the Tezos token universe — FA1.2 and FA2 tokens and NFT collections ranked by holder count, each with its TzKT token id, contract, standard, name, symbol, decimals, holder/transfer counts, decimal-adjusted total supply and (for NFTs) artwork image. Filter standard=fa1.2 or fa2. The discovery layer the per-address balance reader can't give you.",
        "count": 25,
        "source": "TzKT",
        "tokens": [
            {
                "name": "4/23 McLaren F1 Collectible",
                "image": "https://ipfs.io/ipfs/QmfPXEXBUUnWFxU7xbHLBGFvnBaE9E3FnuiVHaX9oiGaBX",
                "is_nft": true,
                "symbol": null,
                "contract": "McLaren F1 Team 23/23 Collectibles",
                "decimals": 0,
                "standard": "fa2",
                "token_id": 543829011726337,
                "total_supply": 214925,
                "holders_count": 210886,
                "transfers_count": 229069,
                "contract_address": "KT1BRADdqGk2eLmMqvyWzqVmPQ1RCBCbW5dY",
                "on_chain_token_id": "4"
            },
            {
                "name": "3/23 McLaren F1 Collectible",
                "image": "https://ipfs.io/ipfs/QmQ9HZsGWdeuT9WtAhNJwYQgwxqjvRdGa7c57PsRPzMvdu",
                "is_nft": true,
                "symbol": null,
                "contract": "McLaren F1 Team 23/23 Collectibles",
                "decimals": 0,
                "standard": "fa2",
                "tok
…(truncated, see openapi.json for full schema)
```

### Holders

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

**Parameters:**
- `token_id` (query, optional, string) — TzKT numeric token id; omit for the most-held token Example: `543829011726337`
- `limit` (query, optional, string) — Page size (1-100) Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/tezostokens-api/v1/holders?token_id=543829011726337&limit=25"
```

**Response:**
```json
{
    "data": {
        "note": "The holders of one Tezos token and their decimal-adjusted balances, largest first — the distribution view the per-address reader can't give you. Pass token_id (the TzKT numeric id from /v1/tokens), or omit to use the most-held token.",
        "count": 25,
        "source": "TzKT",
        "holders": [
            {
                "account": "tz1gmaNHLuVwKTSdpmctSCJiSbrPqoqeXe6f",
                "balance": 2173,
                "balance_raw": "2173"
            },
            {
                "account": "tz2XBntayJQK5sDaSWsYgtGC2YUmZev1R73F",
                "balance": 558,
                "balance_raw": "558"
            },
            {
                "account": "tz1doeUTjrqhorDgNeft8rvTKV2hrb8FbAg7",
                "balance": 340,
                "balance_raw": "340"
            },
            {
                "account": "tz1dxePVAGzSY7tvDX7U2sEfCu8Dk2YRGhpN",
                "balance": 122,
                "balance_raw": "122"
            },
            {
                "account": "tz2FaWoJsNeLDVbrq5T6Y63nPY4y65iKhmhS",
                "balance": 78,
                "balance_raw": "78"
            },
            {
                "account": "tz1PzUW1iCEBEFaUZC9wWyoQ5HAsg7TvSgyd",
                "balance": 53,
                "balance_raw": "53"
            },
            {
                "account": "tz1hVhFAK2jUQm7miNXZZUgZxLxmobKajnVK",
                "balance": 48,
                "balance_raw": "48"
            },
          
…(truncated, see openapi.json for full schema)
```

### Transfers

#### `GET /v1/transfers` — A token's recent transfers

**Parameters:**
- `token_id` (query, optional, string) — TzKT numeric token id; omit for the most-held token Example: `543829011726337`
- `limit` (query, optional, string) — Page size (1-100) Example: `25`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/tezostokens-api/v1/transfers?token_id=543829011726337&limit=25"
```

**Response:**
```json
{
    "data": {
        "note": "The recent transfers of one Tezos token, newest first — each with sender, receiver and decimal-adjusted amount. A mint shows no sender, a burn no receiver. Pass token_id (the TzKT numeric id), or omit to use the most-held token.",
        "count": 25,
        "source": "TzKT",
        "token_id": "543829011726337",
        "transfers": [
            {
                "to": "tz1VEo2ATuJPTscoitEYtY3jLKstPSquiC2a",
                "from": "tz1YLc1WVb6cBkTf7ytvWJdzvJx7gDi5Bn8i",
                "level": 13467830,
                "amount": 1,
                "timestamp": "2026-06-02T12:35:28Z",
                "amount_raw": "1"
            },
            {
                "to": "tz1YLc1WVb6cBkTf7ytvWJdzvJx7gDi5Bn8i",
                "from": "tz1VEo2ATuJPTscoitEYtY3jLKstPSquiC2a",
                "level": 13467808,
                "amount": 1,
                "timestamp": "2026-06-02T12:33:07Z",
                "amount_raw": "1"
            },
            {
                "to": "tz1fvJbmbviADybeo9SE19HJPiUhCe35FHyV",
                "from": "tz1RyFgKssobV5WEj285Ts5svhXhpKCRzXrK",
                "level": 13429248,
                "amount": 3,
                "timestamp": "2026-05-30T18:59:31Z",
                "amount_raw": "3"
            },
            {
                "to": "tz2EHrXhCS1Ak4EYUKEDGR46PD4ekJ1HnZ9G",
                "from": "tz2XBntayJQK5sDaSWsYgtGC2YUmZev1R73F",
                "level": 13421169,
                "amount": 1,
   
…(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/tezostokens-api/v1/meta"
```

**Response:**
```json
{
    "data": {
        "sample": {
            "top_token": "4/23 McLaren F1 Collectible"
        },
        "source": "public TzKT indexer (api.tzkt.io), keyless",
        "service": "tezostokens-api",
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/tokens": "Browse/rank FA tokens & NFTs by holders (standard=fa1.2|fa2, limit).",
            "GET /v1/holders": "A token's holders and decoded balances (token_id; omit for the most-held).",
            "GET /v1/transfers": "A token's recent transfers (token_id; omit for the most-held)."
        },
        "description": "Browse the Tezos token universe live from the public TzKT indexer: discover and rank FA1.2/FA2 tokens and NFT collections (contract, standard, name, symbol, holders, supply, NFT artwork), list the holders of any token with decoded balances, and trace a token's transfers. The discovery, NFT and distribution layer for Tezos wallets, token explorers and NFT marketplaces. Live, short cache only.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-14T17:04:01.229Z",
        "request_id": "1115a8b5-1066-4705-899d-58fe604c48fc"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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