API Reference

Plain REST over HTTPS — search, single-mint lookup, 500-mint batch resolve, and a cached image proxy. No API key, permissive CORS, anyone can call them straight from a browser, curl, or a server.

free rate-limited
Base URL Protocol REST over HTTPS · GET + POST Auth None. CORS * — call from any origin. Content-Type application/json for POST bodies.
GET /tokens/:mint

Single-mint lookup. 404 when the mint isn't in the registry yet.

nametypereqdescription
mintbase58 pubkeyrequiredThe SPL or Token-22 mint address.

Request

ready

Response

awaiting request
// Hit Send to see live JSON
curl '{{BASE}}/tokens/So11111111111111111111111111111111111111112'
POST /tokens/batch

Up to 500 mints per request. Hits land in items, misses in unknown (and get auto-enqueued for on-chain enrichment).

fieldtypereqdescription
mintsarray<string>requiredUp to 500 base58 mint addresses.

Request body

ready

Response

awaiting request
// Hit Send to see live JSON
curl -X POST '{{BASE}}/tokens/batch' \
  -H 'content-type: application/json' \
  -d '{"mints":["So111...","EPjF...","Es9v..."]}'
GET /img/:mint

Cached image proxy. Always returns 200 + an image — falls back to an Unknown SVG when the upstream is unreachable, so your <img> never breaks. Unknown mints are silently enqueued for on-chain resolution.

nametypereqdescription
mintbase58 pubkeyrequiredThe mint address. Response is cached server-side after the first hit.

Request

ready

Response

awaiting request
// Hit Send to preview the cached image
curl '{{BASE}}/img/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v' -o usdc.png
DOC Token row shape

All endpoints that return a single token row use this shape.

{
  "mint":             "<base58 pubkey>",
  "symbol":           "USDC",
  "name":             "USD Coin",
  "decimals":         6,
  "logo_url":         "https://...",
  "logo_status":      "ok" | "unchecked" | "broken" | "missing",
  "is_token22":       false,
  "daily_volume_usd": 1234567.89,
  "first_seen_at":    1778506622843,
  "last_seen_at":     1778507442287,

  // Full-metadata capture (added 2026-05-12). Nullable on rows
  // whose enrichment predates the migration.
  "supply":            "10000000000",
  "mint_authority":    null,
  "freeze_authority":  null,
  "metaplex_uri":      "https://arweave.net/...json",
  "update_authority":  "<pubkey>",
  "seller_fee_basis_points": 0,
  "token_standard":    2,
  "description":       "USD-pegged stablecoin issued by Circle.",
  "external_url":      "https://www.circle.com/usdc",
  "extensions":        { "website": "...", "twitter": "...", "telegram": "..." },
  "tags":              ["stablecoin"]
}
DOC Rate limits

Per-IP sliding window. 429 responses carry a retry-after header. Need a higher tier? Reach out to allow-list partner IPs.

endpointbudget
GET /tokens60 req/min/IP
GET /tokens/:mint180 req/min/IP
POST /tokens/batch20 req/min/IP  (up to 500 mints each)
GET /img/:mint600 req/min/IP
Global fallback300 req/min/IP across all routes