# SPL Token API
> Read Solana SPL token data live, straight from public Solana RPC nodes — no key. Resolve any token mint to its on-chain truth: total supply (raw and human-readable), decimals, mint authority and freeze authority (so you can tell at a glance whether more tokens can still be minted or holder accounts frozen — a core rug-risk signal), the program it belongs to (Token vs Token-2022) and its initialization state. Inspect any account by address — a mint, a token account (with its mint, owner and balance) or anything else — and resolve up to twenty mints in a single call. Where EVM chains use 0x contracts, Solana tokens are mint accounts under the SPL Token program, and this reads them directly. The token layer every Solana wallet, explorer, trading bot and analytics tool needs — distinct from SOL-balance and network APIs. Live from the chain; 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/spltoken-api/..."
```

## Pricing
- **Free** (Free) — 5,600 calls/Mo, 3 req/s
- **Starter** ($10/Mo) — 116,000 calls/Mo, 8 req/s
- **Pro** ($35/Mo) — 710,000 calls/Mo, 20 req/s
- **Business** ($99/Mo) — 4,600,000 calls/Mo, 50 req/s

## Endpoints

### SPL

#### `GET /v1/account` — Inspect any account: mint / token account / other

**Parameters:**
- `address` (query, required, string) — Solana account address (base58 pubkey) Example: `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/spltoken-api/v1/account?address=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
```

**Response:**
```json
{
    "data": {
        "mint": {
            "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
            "supply": "8554390332726576",
            "program": "Token",
            "decimals": 6,
            "ui_supply": "8554390332.726576",
            "is_initialized": true,
            "mint_authority": "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG",
            "supply_is_fixed": false,
            "freeze_authority": "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"
        },
        "note": "Live account inspection via getAccountInfo. type is 'mint' (a token), 'account' (a token holding) or other; the matching detail object is included.",
        "type": "mint",
        "source": "public Solana RPC",
        "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "program": "Token",
        "lamports": 508418445463,
        "executable": false,
        "owner_program": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
    },
    "meta": {
        "timestamp": "2026-06-14T08:04:08.258Z",
        "request_id": "86a3197a-0106-456e-a1e4-28f447676fa4"
    },
    "status": "ok",
    "message": "Account retrieved successfully",
    "success": true
}
```

#### `GET /v1/batch` — Resolve up to 20 mints at once

**Parameters:**
- `mints` (query, required, string) — Comma-separated mint addresses Example: `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v,DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/spltoken-api/v1/batch?mints=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v%2CDezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263"
```

**Response:**
```json
{
    "data": {
        "note": "Resolve up to 20 SPL mints at once via getMultipleAccounts.",
        "count": 2,
        "source": "public Solana RPC",
        "tokens": [
            {
                "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "supply": "8554390332726576",
                "program": "Token",
                "decimals": 6,
                "ui_supply": "8554390332.726576",
                "is_initialized": true,
                "mint_authority": "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG",
                "supply_is_fixed": false,
                "freeze_authority": "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"
            },
            {
                "mint": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
                "supply": "8799472069047816821",
                "program": "Token",
                "decimals": 5,
                "ui_supply": "87994720690478.16821",
                "is_initialized": true,
                "mint_authority": null,
                "supply_is_fixed": true,
                "freeze_authority": null
            }
        ]
    },
    "meta": {
        "timestamp": "2026-06-14T08:04:08.378Z",
        "request_id": "53ac08cb-04e3-47b2-bf79-088e4e3d12f2"
    },
    "status": "ok",
    "message": "Tokens retrieved successfully",
    "success": true
}
```

#### `GET /v1/token` — SPL mint state: supply, decimals, mint/freeze authority, program

**Parameters:**
- `mint` (query, required, string) — SPL token mint address (base58 pubkey) Example: `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/spltoken-api/v1/token?mint=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
```

**Response:**
```json
{
    "data": {
        "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
        "note": "On-chain SPL mint state read live via getAccountInfo. supply_is_fixed is true when the mint authority is revoked (no more can be minted). freeze_authority being set means accounts can be frozen.",
        "source": "public Solana RPC",
        "supply": "8554390332726576",
        "program": "Token",
        "decimals": 6,
        "ui_supply": "8554390332.726576",
        "is_initialized": true,
        "mint_authority": "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG",
        "supply_is_fixed": false,
        "freeze_authority": "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar"
    },
    "meta": {
        "timestamp": "2026-06-14T08:04:08.438Z",
        "request_id": "d1be2f00-c738-4968-9110-694b09e44b8b"
    },
    "status": "ok",
    "message": "Token retrieved successfully",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Service metadata & live sample

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

**Response:**
```json
{
    "data": {
        "sample": {
            "mint": "USDC",
            "decimals": 6,
            "supply_is_fixed": false
        },
        "source": "public Solana RPC (getAccountInfo / getMultipleAccounts, jsonParsed), keyless",
        "service": "spltoken-api",
        "programs": [
            "Token",
            "Token-2022"
        ],
        "endpoints": {
            "GET /v1/meta": "This document.",
            "GET /v1/batch": "Resolve up to 20 mints at once (mints=<pubkey>,<pubkey>).",
            "GET /v1/token": "SPL mint state: supply, decimals, mint/freeze authority, program (mint=<pubkey>).",
            "GET /v1/account": "Inspect any account: mint / token account (mint+owner+balance) / other (address=<pubkey>)."
        },
        "description": "Read Solana SPL token data live from public Solana RPC: resolve any mint to supply/decimals/mint-authority/freeze-authority/program, inspect any account (mint or token account), or resolve many mints at once. Where EVM uses 0x contracts, Solana tokens are SPL mint accounts. Distinct from SOL-balance and network APIs. Live, short cache only.",
        "upstream_status": "ok"
    },
    "meta": {
        "timestamp": "2026-06-14T08:04:08.513Z",
        "request_id": "0d18ca10-2f1d-4cb8-8ee1-548cd807fdf6"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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