Docs / API: Tokens
Token report
Returns market data, contract and authority checks, top holders and largest pools.
GET/api/v1/tokens/{chain}/{address}
| Property | Value |
|---|---|
| Authentication | Optional. A key raises your limit. |
| Rate-limit cost | 3 units |
| Status | Live |
#Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
chain | path | string | Yes | One of ethereum, base, bnb, arbitrum, optimism, polygon, solana. |
address | path | string | Yes | Token contract or mint address. |
#Request
curl -s "https://farbeamlabs.com/api/v1/tokens/solana/JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN"const res = await fetch("https://farbeamlabs.com/api/v1/tokens/solana/JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN");
const { data, meta, error } = await res.json();
if (error) throw new Error(`${error.code}: ${error.message}`);
console.log(data);import os, requests
res = requests.get(
"https://farbeamlabs.com/api/v1/tokens/solana/JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
timeout=30,
)
body = res.json()
if "error" in body:
raise RuntimeError(body["error"]["code"])
print(body["data"])You can send this request now in the API playground.
#Response
This response is real. It was captured from the running API when this page was built. Arrays are cut to two items.
JSON
{
"data": {
"chain": "solana",
"address": "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
"label": null,
"token": {
"symbol": "JUP",
"name": "Jupiter",
"decimals": 6,
"total_supply": 6861485737.212101,
"holder_count": 827790
},
"market": {
"price_usd": 0.2575,
"fdv_usd": 1815501531,
"market_cap_usd": 860905488,
"liquidity_usd": 3719080.69,
"volume_24h_usd": 28289891.33,
"price_change_24h_pct": 4.52,
"txns_24h": 55883,
"pool_count": 29,
"outlier_pools_excluded": 1,
"oldest_pool_at": 1706516558000,
"name": "Jupiter",
"symbol": "JUP"
},
"pools": [
{
"dex": "meteora",
"pair": "C8Gr6AUuq9hEdSYJzoEpNcdjpojPZwqG5MtQbeouNNwg",
"base": "JUP",
"quote": "SOL",
"liquidity_usd": 1895460.25,
"volume_24h_usd": 906895.39,
"created_at": 1706713193000
},
{
"dex": "orca",
"pair": "C1MgLojNLWBKADvu9BHdtgzz1oZX4dZ5zGdGcgvvW8Wz",
"base": "JUP",
"quote": "SOL",
"liquidity_usd": 667318.47,
"volume_24h_usd": 2026793.57,
"created_at": 1706675725000
}
],
"holders": [
{
"address": "6G4XDSge4txj5tBkA5gZqefXXE3BRxqA37Yb1pmrHv6N",
"share_pct": 24.776,
"is_contract": null,
"label": null,
"kind": "token account"
},
{
"address": "26ddLrqXDext6caX1gRxARePN4kzajyGiAUz9JmzmTGQ",
"share_pct": 24.524,
"is_contract": null,
"label": null,
"kind": "token account"
}
],
"checks": [
{
"id": "liquidity",
"title": "DEX liquidity",
"status": "pass",
"detail": "$3,719,081 across 29 pool(s). 1 pool(s) with an outlier price were left out.",
"source": "dexscreener",
"field": "liquidity.usd",
"checked_at": "2026-11-04T20:10:51.498Z"
},
{
"id": "pool_age",
"title": "Oldest pool age",
"status": "pass",
"detail": "1010 days.",
"source": "dexscreener",
"field": "pairCreatedAt",
"checked_at": "2026-11-04T20:10:51.498Z"
}
],
"counts": {
"pass": 9,
"warn": 0,
"fail": 0,
"unknown": 0
},
"sources": [
{
"name": "dexscreener",
"ok": true,
"ms": 133
},
{
"name": "solana-rpc",
"ok": true,
"ms": 369
}
],
"note": "Checks read public fields. They do not predict price and are not advice.",
"stale": false,
"as_of": "2026-11-04T20:10:56.066Z"
},
"meta": {
"request_id": "req_5a18039757bf",
"as_of": "2026-11-04T20:10:56.066Z"
}
}#Fields
| Field | Type | Description |
|---|---|---|
data.token | object | Symbol, name, decimals, supply and holder count. |
data.market | object | Price, liquidity, volume and FDV. Null when no pool is known. |
data.checks[].status | string | pass, warn, fail or unknown. |
data.checks[].source | string | Where the value came from. |
data.checks[].field | string | The exact source field that was read. |
data.counts | object | Number of checks per status. |
data.sources[] | array | Result and time of each source call. |
#Notes
- If one source fails, the report still returns. Its checks read
unknown, andsourcesshows which source failed. - Liquidity and volume cover the 30 pools the source returns.
- See token checks for every check and threshold.
#Errors
| HTTP | Code | Meaning |
|---|---|---|
| 400 | invalid_chain | The chain is unknown. |
| 400 | invalid_address | The address format does not match the chain. |
| 404 | not_found | The item does not exist. |
| 502 | upstream_unavailable | A public data source did not answer. |
All errors share one format. See errors.