// developer reference

API Reference

The social trading data API. Resolve any trader to both on-chain wallets and pull verified PnL, holdings, and ranked leaderboards over a plain REST/JSON interface.

Get an API key →

Introduction

Every endpoint is a plain GET that returns JSON. No SDK required. Responses are UTF-8 JSON with permissive CORS, so you can call the API from a browser, a server, or a bot.

Base URL

https://api.fomoapi.io

All endpoints are served over HTTPS with permissive CORS, so you can call the API from a browser, server, or bot.

Authentication

Pass your API key as a Bearer token. Keyless requests still work on the free anonymous tier (lower limit).

authorization: Bearer YOUR_API_KEY
TierAuthLimit
Anonymousnone60 requests / minute per IP
Free keyBearer key10,000 requests / month
CustomBearer keyHigher limits, trade history, realtime feed — contact us

Create a key in one step: sign in to the dashboard (magic link, no password) and your key is minted automatically. You can rotate it anytime.

Rate limits

Every API response includes rate-limit headers:

HeaderMeaning
x-ratelimit-limitYour ceiling (per minute anonymous, per month with a key)
x-ratelimit-remainingRequests left in the current window
x-ratelimit-windowday for keyed requests; minute-based for anonymous

When you exceed the limit you get 429 with a retry-after header:

{
  "error": "monthly limit exceeded",
  "limit": 10000,
  "plan": "free",
  "message": "Upgrade for higher limits: t.me/eulatxt"
}

Errors

Errors are JSON with an error field and a matching HTTP status.

StatusMeaning
200OK
400Bad request (e.g. invalid window)
401Invalid API key
404Not found (unknown endpoint or handle)
429Rate limit exceeded

Quickstart

$ curl https://api.fomoapi.io/v2/leaderboard/24h \
    -H "authorization: Bearer YOUR_API_KEY"
const res = await fetch(
  "https://api.fomoapi.io/v2/leaderboard/24h",
  { headers: { authorization: "Bearer YOUR_API_KEY" } }
);
const data = await res.json();
console.log(data.traders);
import requests
r = requests.get(
    "https://api.fomoapi.io/v2/leaderboard/24h",
    headers={"authorization": "Bearer YOUR_API_KEY"},
)
print(r.json()["traders"])

Get API info

GET/v1

Returns the API description, your tier, rate limit, dataset size, and the endpoint list. Handy for a health/status probe with metadata.

{
  "name": "FOMO API",
  "version": "0.1.0",
  "tier": "free",
  "rateLimit": "60 requests / minute per IP",
  "dataset": { "source": "fomo", "traders": 12 },
  "endpoints": {  }
}

Health check

GET/health

Liveness probe. Returns ok, the loaded trader count, and process uptime.

{ "ok": true, "traders": 12, "uptime": 1834.2 }

Leaderboard

GET/v2/leaderboard/{window}

Ranked traders for a time window. Each row carries both on-chain wallets, verified PnL, volume, and holdings — the exact shape your app renders.

Path parameters

NameValuesDescription
window24h · 7d · 30d · allRanking window

Query parameters

NameTypeDescription
limitint (1–100)Max rows to return. Defaults to the full set.

Example

$ curl https://api.fomoapi.io/v2/leaderboard/24h?limit=2 \
    -H "authorization: Bearer YOUR_API_KEY"

Response

{
  "window": "24h",
  "source": "fomo",
  "capturedAt": "2026-08-25T18:04:00Z",
  "count": 2,
  "traders": [
    {
      "rank": 1,
      "handle": "CryptoKaleo",
      "displayName": "K A L E O",
      "pnl24hUsd": 151383,
      "volumeUsd": 119165,
      "trades": 73,
      "followers": 19967,
      "holdings": 4,
      "wallets": {
        "solana": "5AhfPStn66hRYoNNDfJHSDgCH7fBbwMQZUECRrhTo62F",
        "evm": "0x7b4d16237683fe1765e727eadf99c6f02adf0b59"
      },
      "topTokens": [ "0x7fe995", "0x51fb76" ],
      "verified": true
    }
  ]
}

Trader fields

FieldTypeDescription
rankintPosition in this window
handlestringSocial handle (use with /v2/users)
displayNamestringDisplay name
pnl24hUsdnumberRealized 24h PnL in USD
volumeUsdnumberTrading volume in USD
tradesintTrade count
followersintFollower count
holdingsintNumber of tokens currently held
wallets.solanastringSolana wallet address
wallets.evmstringEVM wallet address
topTokensstring[]Top held token identifiers
verifiedboolPnL derived from on-chain trades, not self-reported

Resolve a trader

GET/v2/users/{handle}

Resolve a single handle to its both-chain wallets, PnL, and stats. The handle is case-insensitive; a leading @ is allowed.

Example

$ curl https://api.fomoapi.io/v2/users/CryptoKaleo \
    -H "authorization: Bearer YOUR_API_KEY"

Response

{
  "handle": "CryptoKaleo",
  "displayName": "K A L E O",
  "pnl24hUsd": 151383,
  "volumeUsd": 119165,
  "trades": 73,
  "followers": 19967,
  "holdings": 4,
  "wallets": {
    "solana": "5AhfPStn66hRYoNNDfJHSDgCH7fBbwMQZUECRrhTo62F",
    "evm": "0x7b4d16237683fe1765e727eadf99c6f02adf0b59"
  },
  "verified": true
}

Returns 404 {"error":"trader not found"} if the handle isn't in the dataset.

Coming soon

On the roadmap, backed by data already captured:

EndpointReturns
GET /trades?user={handle}Open + closed positions with entry, exit, realized PnLsoon
GET /v2/users/{id}/balancesLive holdings: token, amount, price, 24h movesoon
GET /token/{address}/holdersTop holders of a token and their walletssoon
WSS /wsRealtime firehose of buys, sells, and thesessoon

Want early access to any of these? Email us.