Quick Start Data

Make your first Carbium Data calls: search tokens, resolve one mint, batch resolve multiple mints, and load cached token logos from the public REST API.

Quick Start Data

Use this page when you want the fastest path from zero to one working Carbium Data request.

The live Carbium Data surface is the Token Index API at https://tokens.carbium.io. It is a public REST API for Solana token search, mint lookup, batch resolves, metadata enrichment, and cached token logos. No API key is required for the current free rate-limited surface.



The 5-minute path

For most builders, start in this order:

  1. Search for a token with GET /tokens.
  2. Pick a mint address from the result.
  3. Resolve the mint with GET /tokens/:mint.
  4. Batch resolve known mints with POST /tokens/batch.
  5. Use GET /img/:mint when you need a cached logo URL for an <img> tag or backend asset flow.

Base URL:

https://tokens.carbium.io

1. Search tokens

Search by mint, symbol, or partial name. Results are ranked toward exact mint, exact symbol, symbol prefix, name prefix, then fuzzy matches.

curl 'https://tokens.carbium.io/tokens?q=USDC&limit=3'

Common query parameters:

ParameterTypeNotes
qstringOptional text query: mint, symbol, or partial name
limitintegerOptional, 1–200, default 50
pageintegerOptional, 1-indexed, default 1
include_token22booleanOptional, default true; set false to hide Token-2022 mints

Minimal response shape:

{
  "items": [
    {
      "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "symbol": "USDC",
      "name": "USD Coin",
      "decimals": 6,
      "logo_url": "https://...",
      "logo_status": "ok",
      "is_token22": false
    }
  ],
  "page": 1,
  "limit": 3,
  "total": null
}

2. Resolve one mint

Use a mint address when your app already knows the token and needs the current Carbium token record.

curl 'https://tokens.carbium.io/tokens/So11111111111111111111111111111111111111112'

This returns one token object. Fields can include basic identity, logo state, Token-2022 status, supply, authorities, Metaplex URI, external links, extensions, and tags. Some fields are nullable when metadata is missing or still being enriched.


3. Batch resolve mints

Use the batch endpoint when your UI or backend already has a list of mint addresses and needs token records in one request.

curl -X POST 'https://tokens.carbium.io/tokens/batch' \
  -H 'content-type: application/json' \
  -d '{
    "mints": [
      "So11111111111111111111111111111111111111112",
      "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
    ]
  }'

mints accepts up to 500 base58 mint addresses per request.

The response contains:

  • items: records the API resolved
  • unknown: mint addresses that were not found

4. Try it from TypeScript

Use this tiny client when you want to prove the API path inside an app before wiring a full selector or cache.

const DATA_BASE = "https://tokens.carbium.io";

export async function findToken(query: string) {
  const url = new URL("/tokens", DATA_BASE);
  url.searchParams.set("q", query);
  url.searchParams.set("limit", "5");

  const response = await fetch(url);

  if (response.status === 429) {
    throw new Error("Carbium Data rate limit hit. Back off and retry later.");
  }
  if (!response.ok) {
    throw new Error("Carbium Data request failed with HTTP " + response.status);
  }

  const data = await response.json();
  return data.items ?? [];
}

const matches = await findToken("USDC");
console.log(matches.map((token) => ({
  mint: token.mint,
  symbol: token.symbol,
  name: token.name,
  logoStatus: token.logo_status,
})));

This is only the discovery call. Store mint addresses as the durable value, then use GET /tokens/:mint or POST /tokens/batch when your app needs to hydrate known tokens.


5. Load a cached logo

Use the image endpoint when your app wants a token logo without depending directly on the original upstream asset URL.

curl 'https://tokens.carbium.io/img/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v' -o usdc.png

In a browser:

<img
  src="https://tokens.carbium.io/img/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
  alt="USDC logo"
/>

The response is cached server-side after the first hit. Your app should still provide a local fallback for unknown or missing logos.


Before production

Read Rate Limits before you ship a public frontend or high-traffic backend. The public surface is free and rate-limited; production apps should cache responses, batch where possible, and avoid repeatedly resolving the same mint in hot render paths.

📘

The current Carbium Data token API does not require an API key. If your product needs higher throughput or custom datasets, contact Carbium instead of trying to bypass the public limits.

For the broader platform context, start from Carbium and connect Data with RPC, Swap API, gRPC, and the DEX where your product needs the full Solana stack.