# FOMO Data API > Social trading data from FOMO (fomo.family): token market panel and stats, top holders with FOMO handles, wallets and P&L, posted theses, trade activity, candles, trader profiles with followers and following, the P&L leaderboard, trending and most-held token lists, token search and FOMO's live social feed of large trades, multi-trader buys, listings and theses. Every /v1 route costs one x402 micropayment. ## Documentation - [OpenAPI](https://fomo.x4o2.com/openapi.json): Machine-readable route definitions - [Complete documentation](https://fomo.x4o2.com/llms-full.txt): Parameters, schemas and captured examples - [API keys](https://x4o2.com/keys): Free access - [30-day pass](https://x4o2.com/pass): Higher limits ## Access and limits Free API key: https://x4o2.com/keys; Authorization: Bearer x4o2_… . Free access allows 60/minute and 1000/UTC day per service while spare capacity is available. 30-day pass: 10 USDC, 300/minute and 10000/UTC day per service, independent of free-tier pauses. POST https://x4o2.com/v1/pass with x402. Renewal extends from the later of expiry or purchase time. Wallet signing retrieves a replacement key at https://x4o2.com/pass; previous keys are revoked. Refunds are handled manually. x402: request without payment to receive a v2 PAYMENT-REQUIRED challenge; sign one accepted Base or Solana USDC option, retry with PAYMENT-SIGNATURE. PAYMENT-RESPONSE contains the settlement receipt. Failed calls are not settled. Counters reset on service restart. Pass expiry is enforced even when the key verifier is cached. Errors: 400 invalid/unknown parameters; 401 invalid or expired key; 402 payment required or verification failed; 409 payment in flight/replayed; 429 minute_quota_exceeded, daily_quota_exceeded, free_tier_paused (Retry-After); 502 upstream error; 503 busy/unavailable. RateLimit-* and X-RateLimit-* describe key quotas. ## Usage All routes are GET and cost 0.001 USDC per call via x402 on Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp); an unpaid request returns 402 with payment requirements. Identify a token by chain slug (solana, base, ethereum, bsc, monad, robinhood) or numeric network id plus its mint/contract address. Use GET /v1/search?q= to resolve a name or ticker. Start with GET /v1/token/{chain}/{address} for price, market cap, volume, buy/sell stats and safety warnings; /candles adds OHLCV history. Use /holders for the top FOMO traders holding the token (handle, wallets, position, P&L, thesis), /theses for the reasoning traders posted, /activity for the token's trade tape, /developers for the deployer's holdings. Use GET /v1/leaderboard (period=24h|7d|30d|all) for the best FOMO traders: every entry carries the Solana and EVM wallets, so no second call is needed for addresses. It is the top 150 (100 all-time) and cannot be paged. FOMO does rank every user, so beyond that collect candidates (followers, following, holders, the feed) and ask GET /v1/profiles?ids=...&include=rank (50 per call) for their ranks, or GET /v1/profile/{handle}?include=rank one at a time; /followers and /following give a trader's social graph. A query parameter a route does not list is a 400 unknown_parameter, never silently ignored. Use GET /v1/tokens/{list} (trending, most-held, graduated, community, verified) for discovery and GET /v1/feed for large trades and signals across all of FOMO, minutes old. Paginated routes (/following, /feed) return data.nextCursor to pass back as cursor=. Responses are { data, meta }; meta.observedAt and meta.source tell how fresh the data is. Pass maxAge= to require fresher data or stale=1 to accept any cached copy instantly. ## Endpoints - [GET /v1/token/{chain}/{address}](https://fomo.x4o2.com/v1/token/{chain}/{address}): Token overview from FOMO: price, market cap, volume, liquidity, buy/sell stats, warnings (0.001 USD via x402) Current FOMO market panel for one token (price, market cap, 24h volume, liquidity, holder count), its trading statistics (buy/sell counts and volumes over 5m and 24h, unique buyers/sellers, top-10 holder share) and FOMO's safety warnings. Use for a quick quantitative read on a Solana or Base token. Paid: 0.001 USDC per call via x402 (Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)). Unpaid requests receive 402 with payment requirements. Request body: ```json {} ``` Parameters: ```json [ { "name": "chain", "in": "path", "required": true, "schema": { "type": "string", "description": "solana, base, ethereum, bsc, monad, robinhood or a numeric network id" }, "description": "solana, base, ethereum, bsc, monad, robinhood or a numeric network id", "example": "solana" }, { "name": "address", "in": "path", "required": true, "schema": { "type": "string", "description": "Token mint (Solana) or contract address (EVM)" }, "description": "Token mint (Solana) or contract address (EVM)", "example": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump" }, { "name": "maxAge", "in": "query", "required": false, "schema": { "type": "integer", "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "minimum": 0 }, "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "example": "5" }, { "name": "stale", "in": "query", "required": false, "schema": { "type": "integer", "description": "1 returns any cached copy immediately and refreshes in the background", "enum": [ 0, 1 ] }, "description": "1 returns any cached copy immediately and refreshes in the background", "example": "0" } ] ``` Responses (schemas and captured examples): ```json { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": [ "object", "null" ], "properties": { "market": { "type": [ "object", "null" ], "properties": { "isHiddenFromDiscovery": { "type": [ "boolean", "null" ] }, "basePair": { "type": [ "object", "null" ], "properties": { "address": { "type": [ "string", "null" ] }, "symbol": { "type": [ "string", "null" ] }, "logo": { "type": [ "string", "null" ] } } }, "buyCount1": {}, "buyCount4": {}, "buyCount12": {}, "buyCount24": {}, "change5m": { "type": [ "string", "null" ] }, "change1": { "type": [ "string", "null" ] }, "change4": { "type": [ "string", "null" ] }, "change12": { "type": [ "string", "null" ] }, "change24": { "type": [ "string", "null" ] }, "createdAt": { "type": [ "number", "null" ] }, "exchanges": { "type": [ "array", "null" ], "items": { "type": [ "object", "null" ], "properties": { "name": { "type": [ "string", "null" ] } } } }, "holders": { "type": [ "number", "null" ] }, "top10HoldersPercent": {}, "liquidity": { "type": [ "string", "null" ] }, "marketCap": { "type": [ "string", "null" ] }, "pair": { "type": [ "object", "null" ], "properties": { "protocol": { "type": [ "string", "null" ] } } }, "priceUSD": { "type": [ "string", "null" ] }, "sellCount1": {}, "sellCount4": {}, "sellCount12": {}, "sellCount24": {}, "token": { "type": [ "object", "null" ], "properties": { "address": { "type": [ "string", "null" ] }, "decimals": { "type": [ "number", "null" ] }, "networkId": { "type": [ "number", "null" ] }, "createdAt": { "type": [ "number", "null" ] }, "name": { "type": [ "string", "null" ] }, "symbol": { "type": [ "string", "null" ] }, "freezable": {}, "mintable": {}, "isScam": {}, "i18n": {}, "info": { "type": [ "object", "null" ], "properties": { "address": { "type": [ "string", "null" ] }, "circulatingSupply": { "type": [ "string", "null" ] }, "cmcId": {}, "description": {}, "id": { "type": [ "string", "null" ] }, "imageBannerUrl": {}, "imageLargeUrl": { "type": [ "string", "null" ] }, "imageSmallUrl": { "type": [ "string", "null" ] }, "imageThumbUrl": { "type": [ "string", "null" ] }, "name": { "type": [ "string", "null" ] }, "networkId": { "type": [ "number", "null" ] }, "symbol": { "type": [ "string", "null" ] }, "totalSupply": { "type": [ "string", "null" ] } } }, "socialLinks": { "type": [ "object", "null" ], "properties": { "discord": {}, "telegram": { "type": [ "string", "null" ] }, "twitter": { "type": [ "string", "null" ] }, "website": { "type": [ "string", "null" ] }, "others": { "type": [ "object", "null" ], "properties": { "dexscreenerMetadataFields": { "type": [ "array", "null" ] } } } } }, "launchpad": { "type": [ "object", "null" ], "properties": { "launchpadName": { "type": [ "string", "null" ] }, "launchpadIconUrl": { "type": [ "string", "null" ] }, "graduationPercent": { "type": [ "number", "null" ] }, "migrated": { "type": [ "boolean", "null" ] } } } } }, "txnCount1": { "type": [ "number", "null" ] }, "txnCount4": { "type": [ "number", "null" ] }, "txnCount12": { "type": [ "number", "null" ] }, "txnCount24": { "type": [ "number", "null" ] }, "uniqueBuys1": {}, "uniqueBuys4": {}, "uniqueBuys12": {}, "uniqueBuys24": {}, "uniqueSells1": {}, "uniqueSells4": {}, "uniqueSells12": {}, "uniqueSells24": {}, "volume1": { "type": [ "string", "null" ] }, "volume5m": { "type": [ "string", "null" ] }, "volume4": { "type": [ "string", "null" ] }, "volume12": { "type": [ "string", "null" ] }, "volume24": { "type": [ "string", "null" ] } } }, "statistics": { "type": [ "object", "null" ], "properties": { "buyCount5m": { "type": [ "number", "null" ] }, "buyCount1": { "type": [ "number", "null" ] }, "buyCount4": { "type": [ "number", "null" ] }, "buyCount24": { "type": [ "number", "null" ] }, "buyVolume5m": { "type": [ "string", "null" ] }, "buyVolume1": { "type": [ "string", "null" ] }, "buyVolume4": { "type": [ "string", "null" ] }, "buyVolume24": { "type": [ "string", "null" ] }, "sellCount5m": { "type": [ "number", "null" ] }, "sellCount1": { "type": [ "number", "null" ] }, "sellCount4": { "type": [ "number", "null" ] }, "sellCount24": { "type": [ "number", "null" ] }, "sellVolume5m": { "type": [ "string", "null" ] }, "sellVolume1": { "type": [ "string", "null" ] }, "sellVolume4": { "type": [ "string", "null" ] }, "sellVolume24": { "type": [ "string", "null" ] }, "uniqueBuys5m": { "type": [ "number", "null" ] }, "uniqueBuys1": { "type": [ "number", "null" ] }, "uniqueBuys4": { "type": [ "number", "null" ] }, "uniqueBuys24": { "type": [ "number", "null" ] }, "uniqueSells5m": { "type": [ "number", "null" ] }, "uniqueSells1": { "type": [ "number", "null" ] }, "uniqueSells4": { "type": [ "number", "null" ] }, "uniqueSells24": { "type": [ "number", "null" ] }, "holders": { "type": [ "number", "null" ] }, "top10HoldersPercent": { "type": [ "number", "null" ] }, "isLowFees": { "type": [ "boolean", "null" ] } } }, "warnings": { "type": [ "object", "null" ], "properties": { "disableBuying": { "type": [ "boolean", "null" ] }, "disableSelling": { "type": [ "boolean", "null" ] }, "warnings": { "type": [ "array", "null" ] } } } } }, "meta": { "type": "object", "description": "Freshness of the response", "properties": { "observedAt": { "type": "integer", "description": "Unix ms when the oldest part was observed upstream" }, "ageMs": { "type": "integer", "description": "Age of the oldest part when served, ms" }, "source": { "type": "string", "enum": [ "cache", "fresh", "stale" ] }, "parts": { "type": "object", "description": "observedAt and source per upstream part" } }, "required": [ "observedAt", "ageMs", "source" ] } }, "required": [ "data", "meta" ] }, "example": { "data": { "market": { "isHiddenFromDiscovery": false, "basePair": { "address": "So11111111111111111111111111111111111111112", "symbol": "SOL", "logo": "https://metadata.mobula.io/assets/logos/solana_solana_So11111111111111111111111111111111111111112.webp" }, "buyCount1": null, "buyCount4": null, "buyCount12": null, "buyCount24": null, "change5m": "-0.00011965927877621491", "change1": "0.010811236708969923", "change4": "0.00657966879025795", "change12": "-0.003388877535683848", "change24": "-0.06718606218800116", "createdAt": 1785083564, "exchanges": [ { "name": "PumpSwap" } ], "holders": 144672, "top10HoldersPercent": null, "liquidity": "1330467.735606206", "marketCap": "44299891.45289496", "pair": { "protocol": "PumpAmm" }, "priceUSD": "0.04594730845954886", "sellCount1": null, "sellCount4": null, "sellCount12": null, "sellCount24": null, "token": { "address": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump", "decimals": 6, "networkId": 1399811149, "createdAt": 1785083564, "name": "Cate", "symbol": "CATE", "freezable": null, "mintable": null, "isScam": null, "i18n": null, "info": { "address": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump", "circulatingSupply": "964145516.63882", "cmcId": null, "description": null, "id": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump:1399811149", "imageBannerUrl": null, "imageLargeUrl": "https://metadata.mobula.io/assets/logos/solana_solana_Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump.webp", "imageSmallUrl": "https://metadata.mobula.io/assets/logos/solana_solana_Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump.webp", "imageThumbUrl": "https://metadata.mobula.io/assets/logos/solana_solana_Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump.webp", "name": "Cate", "networkId": 1399811149, "symbol": "CATE", "totalSupply": "964145516.63882" }, "socialLinks": { "discord": null, "telegram": "https://t.me/catecoin_telegram", "twitter": "https://x.com/i/communities/2004330768022004131", "website": "https://cate.meme/", "others": { "dexscreenerMetadataFields": [ "logo", "dexscreenerHeader" ] } }, "launchpad": { "launchpadName": "Pump.fun", "launchpadIconUrl": "https://crypto-exchange-logos-production.s3.us-west-2.amazonaws.com/6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P.webp", "graduationPercent": 100, "migrated": true } }, "txnCount1": 495, "txnCount4": 3210, "txnCount12": 13692, "txnCount24": 23752, "uniqueBuys1": null, "uniqueBuys4": null, "uniqueBuys12": null, "uniqueBuys24": null, "uniqueSells1": null, "uniqueSells4": null, "uniqueSells12": null, "uniqueSells24": null, "volume1": "32455.289657694986", "volume5m": "1197.1592523416332", "volume4": "286450.9528600208", "volume12": "1123977.856518628", "volume24": "1952427.280316228" }, "statistics": { "buyCount5m": 15, "buyCount1": 234, "buyCount4": 1703, "buyCount24": 12157, "buyVolume5m": "831.0457830746597", "buyVolume1": "22547.59585313913", "buyVolume4": "144211.6062985858", "buyVolume24": "941643.763975995", "sellCount5m": 15, "sellCount1": 261, "sellCount4": 1507, "sellCount24": 11595, "sellVolume5m": "366.1134692669736", "sellVolume1": "9907.693804555856", "sellVolume4": "142239.34656143503", "sellVolume24": "1010783.5163402329", "uniqueBuys5m": 6, "uniqueBuys1": 108, "uniqueBuys4": 612, "uniqueBuys24": 5211, "uniqueSells5m": 6, "uniqueSells1": 117, "uniqueSells4": 559, "uniqueSells24": 4967, "holders": 144673, "top10HoldersPercent": 15.729307726072964, "isLowFees": false }, "warnings": { "disableBuying": false, "disableSelling": false, "warnings": [] } }, "meta": { "observedAt": 1793069282030, "ageMs": 236, "source": "fresh", "parts": { "market": { "observedAt": 1793069282030, "source": "fresh" }, "statistics": { "observedAt": 1793069282030, "source": "fresh" }, "warnings": { "observedAt": 1793069282030, "source": "fresh" } } } } } } }, "400": { "description": "{ error, message } for a bad chain, address, handle or query; unknown_parameter (with parameter and allowed) for a query key the route does not take" }, "402": { "description": "Payment Required; x4o2-free-key extension describes free key signup and Authorization header" }, "404": { "description": "unknown_handle: no FOMO user with that handle" }, "409": { "description": "payment_in_flight: the same x402 payment is already being used by another request" }, "429": { "description": "Free key over its limit: minute_quota_exceeded, daily_quota_exceeded (resets 00:00 UTC) or free_tier_paused; honour Retry-After or pay per call; upgrade includes price, networks, payment instructions, discovery, docs and UTC daily reset. Link points to docs. Free-key responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for minute and day windows" }, "502": { "description": "unavailable: FOMO answered with an error; retry shortly" }, "503": { "description": "busy or unavailable: temporarily out of upstream capacity; honour Retry-After or pass stale=1" } } ``` - [GET /v1/token/{chain}/{address}/holders](https://fomo.x4o2.com/v1/token/{chain}/{address}/holders): Top FOMO holders of a token with handle, position, P&L and thesis (0.001 USD via x402) The FOMO users holding the most of a token: each holder's FOMO handle and id, token amount, position value, cost basis, realized and unrealized P&L, hold time, developer flag and their posted thesis. Covers holders who trade on FOMO, not every on-chain wallet. Use for social and holder analysis of a token. Paid: 0.001 USDC per call via x402 (Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)). Unpaid requests receive 402 with payment requirements. Request body: ```json {} ``` Parameters: ```json [ { "name": "chain", "in": "path", "required": true, "schema": { "type": "string", "description": "solana, base, ethereum, bsc, monad, robinhood or a numeric network id" }, "description": "solana, base, ethereum, bsc, monad, robinhood or a numeric network id", "example": "solana" }, { "name": "address", "in": "path", "required": true, "schema": { "type": "string", "description": "Token mint (Solana) or contract address (EVM)" }, "description": "Token mint (Solana) or contract address (EVM)", "example": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump" }, { "name": "maxAge", "in": "query", "required": false, "schema": { "type": "integer", "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "minimum": 0 }, "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "example": "5" }, { "name": "stale", "in": "query", "required": false, "schema": { "type": "integer", "description": "1 returns any cached copy immediately and refreshes in the background", "enum": [ 0, 1 ] }, "description": "1 returns any cached copy immediately and refreshes in the background", "example": "0" } ] ``` Responses (schemas and captured examples): ```json { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": [ "object", "null" ], "properties": { "tokenAddress": { "type": [ "string", "null" ] }, "networkId": { "type": [ "number", "null" ] }, "topHolders": { "type": [ "array", "null" ], "items": { "type": [ "object", "null" ], "properties": { "user": { "type": [ "object", "null" ], "properties": { "id": { "type": [ "string", "null" ] }, "address": { "type": [ "string", "null" ] }, "evmAddress": { "type": [ "string", "null" ] }, "createdAt": { "type": [ "string", "null" ] }, "displayName": { "type": [ "string", "null" ] }, "userHandle": { "type": [ "string", "null" ] }, "profilePictureLink": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] }, "following": { "type": [ "number", "null" ] }, "followers": { "type": [ "number", "null" ] }, "activated": { "type": [ "boolean", "null" ] }, "verified": { "type": [ "boolean", "null" ] }, "isReferred": { "type": [ "boolean", "null" ] }, "isRestricted": { "type": [ "boolean", "null" ] }, "swapCount": { "type": [ "number", "null" ] }, "numTrades": { "type": [ "number", "null" ] }, "totalVolume": { "type": [ "number", "null" ] }, "private": { "type": [ "boolean", "null" ] }, "thumbhash": { "type": [ "string", "null" ] }, "coverPhotoLink": { "type": [ "string", "null" ] }, "coverPhotoThumbhash": { "type": [ "string", "null" ] }, "twitter": {}, "clan": {}, "badge": { "type": [ "object", "null" ], "properties": { "type": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] }, "text": { "type": [ "string", "null" ] }, "image": {}, "metadata": { "type": [ "object", "null" ] } } } } }, "tradeId": { "type": [ "string", "null" ] }, "sumSwapOpen": { "type": [ "number", "null" ] }, "sumTransferIn": { "type": [ "number", "null" ] }, "isExternallyReceived": { "type": [ "boolean", "null" ] }, "humanAmount": { "type": [ "number", "null" ] }, "price": { "type": [ "number", "null" ] }, "value": { "type": [ "number", "null" ] }, "pnl": { "type": [ "number", "null" ] }, "unrealizedPnl": { "type": [ "number", "null" ] }, "realizedPnl": { "type": [ "number", "null" ] }, "costBasis": { "type": [ "number", "null" ] }, "averageEntryPrice": { "type": [ "number", "null" ] }, "comment": { "type": [ "object", "null" ], "properties": { "id": { "type": [ "string", "null" ] }, "userId": { "type": [ "string", "null" ] }, "tradeId": { "type": [ "string", "null" ] }, "comment": { "type": [ "string", "null" ] }, "priceUsdAtCreation": { "type": [ "number", "null" ] }, "marketCapAtCreation": { "type": [ "number", "null" ] }, "fdvAtCreation": { "type": [ "number", "null" ] }, "createdAt": { "type": [ "string", "null" ] }, "parentId": {}, "numLikes": { "type": [ "number", "null" ] }, "tokenAddress": { "type": [ "string", "null" ] }, "networkId": { "type": [ "number", "null" ] }, "reactions": { "type": [ "object", "null" ], "properties": { "counts": { "type": [ "object", "null" ] }, "reactions": { "type": [ "object", "null" ] } } }, "olderThesis": { "type": [ "number", "null" ] }, "newerThesis": { "type": [ "number", "null" ] }, "shortCommentSegments": { "type": [ "array", "null" ], "items": { "type": [ "object", "null" ] } }, "translation": {} } }, "numReplies": { "type": [ "number", "null" ] }, "showComment": { "type": [ "boolean", "null" ] }, "averageHoldTimeSeconds": { "type": [ "number", "null" ] }, "isDev": { "type": [ "boolean", "null" ] } } } }, "totalHolders": { "type": [ "number", "null" ] } } }, "meta": { "type": "object", "description": "Freshness of the response", "properties": { "observedAt": { "type": "integer", "description": "Unix ms when the oldest part was observed upstream" }, "ageMs": { "type": "integer", "description": "Age of the oldest part when served, ms" }, "source": { "type": "string", "enum": [ "cache", "fresh", "stale" ] }, "parts": { "type": "object", "description": "observedAt and source per upstream part" } }, "required": [ "observedAt", "ageMs", "source" ] } }, "required": [ "data", "meta" ] }, "example": { "data": { "tokenAddress": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump", "networkId": 1399811149, "topHolders": [ { "user": { "id": "df983a8b-5e5b-5e91-802f-1472e96f04c3", "address": "HXCYBexdXRrNTa3NHHJiKh5wsjb6zfW79MxQYGsszouu", "evmAddress": "0xee368a44d334ab499b25efabbc879548d7be4143", "createdAt": "2025-11-11T13:50:41.428Z", "displayName": "PoorGoat💛🐈", "userHandle": "PoorGoat_", "profilePictureLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/f5eff84fd61177cfe9371f56d15dcf71_small.jpg?k=300gfQS2OYdk8LynpHrPw58Ww", "description": "Road to 8 Figs 💛🐈\nFind me on X @poorgoat_\nI WILL NEVER ENDORSE A POORGOAT COIN\nNever blindly follow anyone’s trades...", "following": 41, "followers": 616606, "activated": false, "verified": false, "isReferred": false, "isRestricted": false, "swapCount": 1815, "numTrades": 4537, "totalVolume": 1565871.211134, "private": false, "thumbhash": "JVoODwLolqZ4d4h/l2iId5h3ifYHZ30A", "coverPhotoLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/61edf29f1d74e084a99d189230d2028d.jpg?k=300gfQS2OYdk8LynpHrPw58Ww", "coverPhotoThumbhash": "zSgKGoSLiYe/l8h5e7+998o=", "twitter": null, "clan": null, "badge": { "type": "top_100_badge", "title": "Top 100", "text": "Awarded to traders who have reached all-time top 100 on the leaderboard", "image": null, "metadata": { "rank": 12, "totalPnL": 1362885.5491541424 } } }, "tradeId": "1074837b-640e-44b2-aa27-cb0fe6f68ef9", "sumSwapOpen": 33240544.89, "sumTransferIn": 72248.41, "isExternallyReceived": false, "humanAmount": 27556090.81, "price": 0.04594730845954886, "value": 1266128.2, "pnl": 1216939.1, "unrealizedPnl": 1149298.53, "realizedPnl": 67640.57, "costBasis": 141236.39, "averageEntryPrice": 0.0042397, "comment": { "id": "t2-9f21df3836753cbc533f85721e35c699c471cb820a4b06c0ad61a3fd39094534-2c2c2d65", "userId": "df983a8b-5e5b-5e91-802f-1472e96f04c3", "tradeId": "1074837b-640e-44b2-aa27-cb0fe6f68ef9", "comment": "BALLS TINGLING\n\nALSO COME TO SPACES TMMRW \n\nhttps://x.com/poorgoat_/status/2114864996223979606", "priceUsdAtCreation": 0.044919399331, "marketCapAtCreation": 43319212.75605363, "fdvAtCreation": 43319212.75605363, "createdAt": "2026-10-27T00:41:38.327Z", "parentId": null, "numLikes": 127, "tokenAddress": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump", "networkId": 1399811149, "reactions": { "counts": { "likeCount": 127 }, "reactions": { "like": false } }, "olderThesis": 1765, "newerThesis": 0, "shortCommentSegments": [ { "text": "BALLS TINGLING\n\nALSO COME TO SPACES TMMRW \n\n", "link": null, "provider": null }, { "text": "https://x.com/poorgoat_/status/2114864996223979606", "link": "https://x.com/poorgoat_/status/2114864996223979606", "provider": null } ], "translation": null }, "numReplies": 0, "showComment": true, "averageHoldTimeSeconds": 340449, "isDev": false }, { "user": { "id": "c3eac5cf-e699-5d5b-8593-a767ea739932", "address": "2r8Z99rdDQNuiGHBoK1bbfVvifiYUwofc8e7wUz7S7Qm", "evmAddress": "0x8f634d1a20c2f866954e4f6f24ba12d252f4f0df", "createdAt": "2026-08-23T21:43:04.648Z", "displayName": "bluntz", "userHandle": "bluntz_capital", "profilePictureLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/b382da4fde3a39853ed741e6b5b7bead_small.jpg?k=300gfQS2OYdk8LynpHrPw58Ww", "description": "", "following": 30, "followers": 108685, "activated": false, "verified": false, "isReferred": true, "isRestricted": false, "swapCount": 1519, "numTrades": 1811, "totalVolume": 20539187.044056, "private": false, "thumbhash": "0xkOLwIZN3d4h3hwh3uHOLh4d5QIN3oA", "coverPhotoLink": null, "coverPhotoThumbhash": null, "twitter": null, "clan": null }, "tradeId": "8bd1803c-6bd3-444e-9204-38ea9441ebfb", "sumSwapOpen": 27716728.79, "sumTransferIn": 518.47, "isExternallyReceived": false, "humanAmount": 27410470.11, "price": 0.04594730845954886, "value": 1259437.33, "pnl": -293413.54, "unrealizedPnl": -303527.06, "realizedPnl": 10113.52, "costBasis": 1580457.04, "averageEntryPrice": 0.0570207, "comment": { "id": "t2-bedef1b1983edd828ad8eaf6203b1acb217c5f644be1a1828cb4c2297d15e0a7-31d4233e", "userId": "c3eac5cf-e699-5d5b-8593-a767ea739932", "tradeId": "8bd1803c-6bd3-444e-9204-38ea9441ebfb", "comment": "if you cant handle the dips you dont deserve the rips.\n\nfully expecting to see cate holders to continue dominating th...", "priceUsdAtCreation": 0.0783349866972, "marketCapAtCreation": 75544419.68320712, "fdvAtCreation": 75544419.68320712, "createdAt": "2026-10-18T02:01:23.579Z", "parentId": null, "numLikes": 752, "tokenAddress": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump", "networkId": 1399811149, "reactions": { "counts": { "likeCount": 752 }, "reactions": { "like": false } }, "olderThesis": 44, "newerThesis": 0, "shortCommentSegments": [ { "text": "if you cant handle the dips you dont deserve the rips.\n\nfully expecting to see cate holders to continue dominating th...", "link": null, "provider": null } ], "translation": null }, "numReplies": 0, "showComment": true, "averageHoldTimeSeconds": 321884, "isDev": false } ], "totalHolders": 93803 }, "meta": { "observedAt": 1793069282302, "ageMs": 172, "source": "fresh", "parts": { "holders": { "observedAt": 1793069282302, "source": "fresh" } } } } } } }, "400": { "description": "{ error, message } for a bad chain, address, handle or query; unknown_parameter (with parameter and allowed) for a query key the route does not take" }, "402": { "description": "Payment Required; x4o2-free-key extension describes free key signup and Authorization header" }, "404": { "description": "unknown_handle: no FOMO user with that handle" }, "409": { "description": "payment_in_flight: the same x402 payment is already being used by another request" }, "429": { "description": "Free key over its limit: minute_quota_exceeded, daily_quota_exceeded (resets 00:00 UTC) or free_tier_paused; honour Retry-After or pay per call; upgrade includes price, networks, payment instructions, discovery, docs and UTC daily reset. Link points to docs. Free-key responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for minute and day windows" }, "502": { "description": "unavailable: FOMO answered with an error; retry shortly" }, "503": { "description": "busy or unavailable: temporarily out of upstream capacity; honour Retry-After or pass stale=1" } } ``` - [GET /v1/token/{chain}/{address}/theses](https://fomo.x4o2.com/v1/token/{chain}/{address}/theses): Theses FOMO traders posted on a token, with likes, replies and the poster's position (0.001 USD via x402) The thesis feed for one token: the text each FOMO trader attached to their trade, who posted it, like and reply counts, when it was posted and the trade it belongs to. Pass thread= to also return the reply thread under one thesis. Use to read trader sentiment and reasoning on a token. Paid: 0.001 USDC per call via x402 (Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)). Unpaid requests receive 402 with payment requirements. Request body: ```json {} ``` Parameters: ```json [ { "name": "chain", "in": "path", "required": true, "schema": { "type": "string", "description": "solana, base, ethereum, bsc, monad, robinhood or a numeric network id" }, "description": "solana, base, ethereum, bsc, monad, robinhood or a numeric network id", "example": "solana" }, { "name": "address", "in": "path", "required": true, "schema": { "type": "string", "description": "Token mint (Solana) or contract address (EVM)" }, "description": "Token mint (Solana) or contract address (EVM)", "example": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump" }, { "name": "maxAge", "in": "query", "required": false, "schema": { "type": "integer", "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "minimum": 0 }, "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "example": "5" }, { "name": "stale", "in": "query", "required": false, "schema": { "type": "integer", "description": "1 returns any cached copy immediately and refreshes in the background", "enum": [ 0, 1 ] }, "description": "1 returns any cached copy immediately and refreshes in the background", "example": "0" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of entries, 1-100", "minimum": 1, "maximum": 100, "default": 50 }, "description": "Number of entries, 1-100", "example": "50" }, { "name": "thread", "in": "query", "required": false, "schema": { "type": "string", "description": "Trade id (uuid) whose reply thread to include" }, "description": "Trade id (uuid) whose reply thread to include" } ] ``` Responses (schemas and captured examples): ```json { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": [ "object", "null" ], "properties": { "theses": { "type": [ "object", "null" ], "properties": { "items": { "type": [ "array", "null" ], "items": { "type": [ "object", "null" ], "properties": { "type": { "type": [ "string", "null" ] }, "id": { "type": [ "string", "null" ] }, "tradeId": { "type": [ "string", "null" ] }, "createdAt": { "type": [ "string", "null" ] }, "userId": { "type": [ "string", "null" ] }, "displayName": { "type": [ "string", "null" ] }, "userHandle": { "type": [ "string", "null" ] }, "profilePictureLink": { "type": [ "string", "null" ] }, "verified": { "type": [ "boolean", "null" ] }, "twitter": {}, "comment": { "type": [ "object", "null" ], "properties": { "id": { "type": [ "string", "null" ] }, "userId": { "type": [ "string", "null" ] }, "tradeId": { "type": [ "string", "null" ] }, "comment": { "type": [ "string", "null" ] }, "priceUsdAtCreation": { "type": [ "number", "null" ] }, "marketCapAtCreation": { "type": [ "number", "null" ] }, "fdvAtCreation": { "type": [ "number", "null" ] }, "createdAt": { "type": [ "string", "null" ] }, "parentId": {}, "numLikes": { "type": [ "number", "null" ] }, "tokenAddress": { "type": [ "string", "null" ] }, "networkId": { "type": [ "number", "null" ] }, "shortCommentSegments": { "type": [ "array", "null" ] }, "reactions": { "type": [ "object", "null" ] }, "olderThesis": { "type": [ "number", "null" ] }, "newerThesis": { "type": [ "number", "null" ] }, "translation": {} } }, "numReplies": { "type": [ "number", "null" ] }, "authorTrade": { "type": [ "object", "null" ], "properties": { "humanTokenAmount": { "type": [ "number", "null" ] }, "usdValue": { "type": [ "number", "null" ] }, "unrealizedPnlUsd": { "type": [ "number", "null" ] }, "realizedPnlUsd": { "type": [ "number", "null" ] }, "percentageUnrealizedPnl": { "type": [ "number", "null" ] }, "percentageRealizedPnl": { "type": [ "number", "null" ] }, "closedAt": {} } }, "tokenAddress": { "type": [ "string", "null" ] }, "networkId": { "type": [ "number", "null" ] }, "ticker": { "type": [ "string", "null" ] }, "tokenImageUrl": { "type": [ "string", "null" ] }, "equity": { "type": [ "number", "null" ] }, "threshold": { "type": [ "number", "null" ] }, "isDev": { "type": [ "boolean", "null" ] }, "clanBadge": { "type": [ "object", "null" ], "properties": { "type": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] }, "text": { "type": [ "string", "null" ] }, "image": { "type": [ "string", "null" ] }, "metadata": { "type": [ "object", "null" ] } } } } } }, "hasNextPage": { "type": [ "boolean", "null" ] }, "count": { "type": [ "number", "null" ] } } }, "thread": {} } }, "meta": { "type": "object", "description": "Freshness of the response", "properties": { "observedAt": { "type": "integer", "description": "Unix ms when the oldest part was observed upstream" }, "ageMs": { "type": "integer", "description": "Age of the oldest part when served, ms" }, "source": { "type": "string", "enum": [ "cache", "fresh", "stale" ] }, "parts": { "type": "object", "description": "observedAt and source per upstream part" } }, "required": [ "observedAt", "ageMs", "source" ] } }, "required": [ "data", "meta" ] }, "example": { "data": { "theses": { "items": [ { "type": "thesis", "id": "t2-e839855680cd7fd424fbe08d7a29c04a10fb5bc560a4dd43dd3c6dab8892c534-8839db5e", "tradeId": "471d0b71-9132-4da0-a99e-05115f1834ee", "createdAt": "2026-10-27T02:47:43.675Z", "userId": "789e5606-8a27-50ff-9c0a-653c77a40f59", "displayName": "Devious", "userHandle": "DeviousGainz", "profilePictureLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/33d018db6ee9ca7483f9c303a5cdd63d_small.jpg?k=300gfQS2OYdk8LynpHrPw58Ww", "verified": false, "twitter": null, "comment": { "id": "t2-e839855680cd7fd424fbe08d7a29c04a10fb5bc560a4dd43dd3c6dab8892c534-8839db5e", "userId": "789e5606-8a27-50ff-9c0a-653c77a40f59", "tradeId": "471d0b71-9132-4da0-a99e-05115f1834ee", "comment": "When You Survive The Abyss You Don’t Just Heal YOU EVOLVE.", "priceUsdAtCreation": 0.0459826420792, "marketCapAtCreation": 44344579.067860484, "fdvAtCreation": 44344579.067860484, "createdAt": "2026-10-27T02:47:43.675Z", "parentId": null, "numLikes": 2, "tokenAddress": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump", "networkId": 1399811149, "shortCommentSegments": [ { "text": "When You Survive The Abyss You Don’t Just Heal YOU EVOLVE.", "link": null, "provider": null } ], "reactions": { "counts": { "likeCount": 2 }, "reactions": { "like": false } }, "olderThesis": 285, "newerThesis": 0, "translation": null }, "numReplies": 0, "authorTrade": { "humanTokenAmount": 1393321.13, "usdValue": 64019.36, "unrealizedPnlUsd": 9176.09, "realizedPnlUsd": 0, "percentageUnrealizedPnl": 16.7314, "percentageRealizedPnl": 0, "closedAt": null }, "tokenAddress": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump", "networkId": 1399811149, "ticker": "CATE", "tokenImageUrl": "https://token-media.defined.fi/1399811149_Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump_small_ca0d4b10f481.png", "equity": 0, "threshold": 64019.36, "isDev": false, "clanBadge": { "type": "clan", "title": "TitusTradz", "text": "Awarded for being in a clan", "image": "https://prod-fomo-profile-pics.s3.amazonaws.com/54f9784255f1462d08fb4dc1be2ed954.jpg?k=300gfQS2OYdk8LynpHrPw58Ww", "metadata": { "clanId": "ac478b54-d111-4674-a283-9cb739a9ce5c", "memberType": "member" } } }, { "type": "thesis", "id": "t2-38be1e89194e73773d09cbadc55e44ae9d1df61f4603adcefd5930b8b8fd7c2f-f507a534", "tradeId": "ea4f36d5-6075-45d2-aa88-c73920a0017a", "createdAt": "2026-10-27T02:47:40.786Z", "userId": "cbc5f9f5-2043-501a-a9bd-13933c15fe25", "displayName": "$$$", "userHandle": "Clueless2000", "profilePictureLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/af54eab7f950575eaff34080f999e97a_small.jpg?k=300gfQS2OYdk8LynpHrPw58Ww", "verified": false, "twitter": null, "comment": { "id": "t2-38be1e89194e73773d09cbadc55e44ae9d1df61f4603adcefd5930b8b8fd7c2f-f507a534", "userId": "cbc5f9f5-2043-501a-a9bd-13933c15fe25", "tradeId": "ea4f36d5-6075-45d2-aa88-c73920a0017a", "comment": "Cheeks definitely has an OF", "priceUsdAtCreation": 0.0459826420792, "marketCapAtCreation": 44344579.067860484, "fdvAtCreation": 44344579.067860484, "createdAt": "2026-10-27T02:47:40.786Z", "parentId": null, "numLikes": 1, "tokenAddress": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump", "networkId": 1399811149, "shortCommentSegments": [ { "text": "Cheeks definitely has an OF", "link": null, "provider": null } ], "reactions": { "counts": { "likeCount": 1 }, "reactions": { "like": false } }, "olderThesis": 214, "newerThesis": 0, "translation": null }, "numReplies": 0, "authorTrade": { "humanTokenAmount": 606029.55, "usdValue": 27845.43, "unrealizedPnlUsd": -2109.34, "realizedPnlUsd": 6029.51, "percentageUnrealizedPnl": -7.04176, "percentageRealizedPnl": 13.3518, "closedAt": null }, "tokenAddress": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump", "networkId": 1399811149, "ticker": "CATE", "tokenImageUrl": "https://token-media.defined.fi/1399811149_Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump_small_ca0d4b10f481.png", "equity": 0, "threshold": 33874.94, "isDev": false, "clanBadge": { "type": "clan", "title": "Cats Have 9 Lives", "text": "Awarded for being in a clan", "image": "https://prod-fomo-profile-pics.s3.amazonaws.com/clans/1ec23f56-b788-4e9c-b515-a17fe57790ed/icon/b30633722bbe2592b07b5...", "metadata": { "clanId": "1ec23f56-b788-4e9c-b515-a17fe57790ed", "memberType": "member" } } } ], "hasNextPage": true, "count": 1135427 }, "thread": null }, "meta": { "observedAt": 1793069282522, "ageMs": 136, "source": "fresh", "parts": { "theses": { "observedAt": 1793069282522, "source": "fresh" } } } } } } }, "400": { "description": "{ error, message } for a bad chain, address, handle or query; unknown_parameter (with parameter and allowed) for a query key the route does not take" }, "402": { "description": "Payment Required; x4o2-free-key extension describes free key signup and Authorization header" }, "404": { "description": "unknown_handle: no FOMO user with that handle" }, "409": { "description": "payment_in_flight: the same x402 payment is already being used by another request" }, "429": { "description": "Free key over its limit: minute_quota_exceeded, daily_quota_exceeded (resets 00:00 UTC) or free_tier_paused; honour Retry-After or pay per call; upgrade includes price, networks, payment instructions, discovery, docs and UTC daily reset. Link points to docs. Free-key responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for minute and day windows" }, "502": { "description": "unavailable: FOMO answered with an error; retry shortly" }, "503": { "description": "busy or unavailable: temporarily out of upstream capacity; honour Retry-After or pass stale=1" } } ``` - [GET /v1/token/{chain}/{address}/activity](https://fomo.x4o2.com/v1/token/{chain}/{address}/activity): Recent FOMO trading activity on a token: who bought or sold, how much, at what price (0.001 USD via x402) The token's trade tape as FOMO shows it: recent buys, sells and transfers by FOMO users with handle, USD amount, price and market cap at the time. Use to see which traders are active in a token right now. Paid: 0.001 USDC per call via x402 (Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)). Unpaid requests receive 402 with payment requirements. Request body: ```json {} ``` Parameters: ```json [ { "name": "chain", "in": "path", "required": true, "schema": { "type": "string", "description": "solana, base, ethereum, bsc, monad, robinhood or a numeric network id" }, "description": "solana, base, ethereum, bsc, monad, robinhood or a numeric network id", "example": "solana" }, { "name": "address", "in": "path", "required": true, "schema": { "type": "string", "description": "Token mint (Solana) or contract address (EVM)" }, "description": "Token mint (Solana) or contract address (EVM)", "example": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump" }, { "name": "maxAge", "in": "query", "required": false, "schema": { "type": "integer", "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "minimum": 0 }, "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "example": "5" }, { "name": "stale", "in": "query", "required": false, "schema": { "type": "integer", "description": "1 returns any cached copy immediately and refreshes in the background", "enum": [ 0, 1 ] }, "description": "1 returns any cached copy immediately and refreshes in the background", "example": "0" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of entries, 1-100", "minimum": 1, "maximum": 100, "default": 50 }, "description": "Number of entries, 1-100", "example": "50" }, { "name": "threshold", "in": "query", "required": false, "schema": { "type": "number", "description": "Minimum USD size of events to include", "minimum": 0 }, "description": "Minimum USD size of events to include", "example": "0" } ] ``` Responses (schemas and captured examples): ```json { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": [ "object", "null" ], "properties": { "items": { "type": [ "array", "null" ], "items": { "type": [ "object", "null" ], "properties": { "type": { "type": [ "string", "null" ] }, "id": { "type": [ "string", "null" ] }, "tradeId": { "type": [ "string", "null" ] }, "createdAt": { "type": [ "string", "null" ] }, "userId": { "type": [ "string", "null" ] }, "displayName": { "type": [ "string", "null" ] }, "userHandle": { "type": [ "string", "null" ] }, "profilePictureLink": { "type": [ "string", "null" ] }, "verified": { "type": [ "boolean", "null" ] }, "twitter": {}, "usdAmount": { "type": [ "number", "null" ] }, "marketCap": { "type": [ "number", "null" ] }, "fdv": { "type": [ "number", "null" ] }, "price": { "type": [ "number", "null" ] }, "displayPriceUsd": { "type": [ "number", "null" ] }, "isDev": { "type": [ "boolean", "null" ] } } } }, "hasNextPage": { "type": [ "boolean", "null" ] } } }, "meta": { "type": "object", "description": "Freshness of the response", "properties": { "observedAt": { "type": "integer", "description": "Unix ms when the oldest part was observed upstream" }, "ageMs": { "type": "integer", "description": "Age of the oldest part when served, ms" }, "source": { "type": "string", "enum": [ "cache", "fresh", "stale" ] }, "parts": { "type": "object", "description": "observedAt and source per upstream part" } }, "required": [ "observedAt", "ageMs", "source" ] } }, "required": [ "data", "meta" ] }, "example": { "data": { "items": [ { "type": "swap_sell", "id": "d0fb8da7-f228-4c34-8f9b-2e6b0dc1af93", "tradeId": "5ebccf96-c3c8-4724-883d-eb08eaad988d", "createdAt": "2026-10-27T02:47:45.000Z", "userId": "39c1932f-3765-5925-907d-b987a3873da7", "displayName": "aidennotrich", "userHandle": "aidennotrich", "profilePictureLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/9c2086970fc54946b5802b35276d741e_small.jpg?k=300gfQS2OYdk8LynpHrPw58Ww", "verified": false, "twitter": null, "usdAmount": 70.75, "marketCap": 44155100, "fdv": 44155100, "price": 0.0457971, "displayPriceUsd": 0.0457971, "isDev": false }, { "type": "swap_buy", "id": "0f1ce7b9-d34c-498a-8965-0ea709ebfd2a", "tradeId": "ab113318-9420-4190-b446-d31edef8c461", "createdAt": "2026-10-27T02:47:30.000Z", "userId": "5b556523-a4a3-5740-86f6-78d285fe44a0", "displayName": "masone", "userHandle": "masone", "profilePictureLink": null, "verified": false, "twitter": null, "usdAmount": 21.77, "marketCap": 44270900, "fdv": 44270900, "price": 0.0459172, "displayPriceUsd": 0.0459172, "isDev": false } ], "hasNextPage": true }, "meta": { "observedAt": 1793069282684, "ageMs": 49, "source": "fresh", "parts": { "tokenActivity": { "observedAt": 1793069282684, "source": "fresh" } } } } } } }, "400": { "description": "{ error, message } for a bad chain, address, handle or query; unknown_parameter (with parameter and allowed) for a query key the route does not take" }, "402": { "description": "Payment Required; x4o2-free-key extension describes free key signup and Authorization header" }, "404": { "description": "unknown_handle: no FOMO user with that handle" }, "409": { "description": "payment_in_flight: the same x402 payment is already being used by another request" }, "429": { "description": "Free key over its limit: minute_quota_exceeded, daily_quota_exceeded (resets 00:00 UTC) or free_tier_paused; honour Retry-After or pay per call; upgrade includes price, networks, payment instructions, discovery, docs and UTC daily reset. Link points to docs. Free-key responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for minute and day windows" }, "502": { "description": "unavailable: FOMO answered with an error; retry shortly" }, "503": { "description": "busy or unavailable: temporarily out of upstream capacity; honour Retry-After or pass stale=1" } } ``` - [GET /v1/profile/{handle}](https://fomo.x4o2.com/v1/profile/{handle}): A FOMO trader's profile: followers, trade counts, volume, P&L, hold time; optionally trades, balances, rank (0.001 USD via x402) The public profile of one FOMO user by handle: id, Solana (address) and EVM (evmAddress) wallets, follower and following counts, swap and trade counts, volume and average hold time. Add include=trades,balances,rank,spotlight for trade history, token balances and leaderboard positions: data.rank is { all, 24h, 7d, 30d } of { rank, pnl } (FOMO ranks every user, far beyond the top 100). Use to evaluate a trader seen anywhere; for many at once use GET /v1/profiles. Paid: 0.001 USDC per call via x402 (Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)). Unpaid requests receive 402 with payment requirements. Request body: ```json {} ``` Parameters: ```json [ { "name": "handle", "in": "path", "required": true, "schema": { "type": "string", "description": "FOMO user handle" }, "description": "FOMO user handle", "example": "PoorGoat_" }, { "name": "maxAge", "in": "query", "required": false, "schema": { "type": "integer", "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "minimum": 0 }, "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "example": "5" }, { "name": "stale", "in": "query", "required": false, "schema": { "type": "integer", "description": "1 returns any cached copy immediately and refreshes in the background", "enum": [ 0, 1 ] }, "description": "1 returns any cached copy immediately and refreshes in the background", "example": "0" }, { "name": "include", "in": "query", "required": false, "schema": { "type": "string", "description": "Comma-separated extras: trades, balances, rank, spotlight" }, "description": "Comma-separated extras: trades, balances, rank, spotlight", "example": "rank" } ] ``` Responses (schemas and captured examples): ```json { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": [ "object", "null" ], "properties": { "profile": { "type": [ "object", "null" ], "properties": { "id": { "type": [ "string", "null" ] }, "address": { "type": [ "string", "null" ] }, "evmAddress": { "type": [ "string", "null" ] }, "createdAt": { "type": [ "string", "null" ] }, "displayName": { "type": [ "string", "null" ] }, "userHandle": { "type": [ "string", "null" ] }, "profilePictureLink": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] }, "following": { "type": [ "number", "null" ] }, "followers": { "type": [ "number", "null" ] }, "activated": { "type": [ "boolean", "null" ] }, "verified": { "type": [ "boolean", "null" ] }, "isReferred": { "type": [ "boolean", "null" ] }, "isRestricted": { "type": [ "boolean", "null" ] }, "swapCount": { "type": [ "number", "null" ] }, "numTrades": { "type": [ "number", "null" ] }, "totalVolume": { "type": [ "number", "null" ] }, "private": { "type": [ "boolean", "null" ] }, "thumbhash": { "type": [ "string", "null" ] }, "coverPhotoLink": { "type": [ "string", "null" ] }, "coverPhotoThumbhash": { "type": [ "string", "null" ] }, "twitter": {}, "clan": {}, "followsCurrentUser": { "type": [ "boolean", "null" ] }, "numFriendsFollowing": { "type": [ "number", "null" ] }, "friendsFollowing": { "type": [ "array", "null" ] }, "averageHoldTimeSeconds": { "type": [ "number", "null" ] }, "badge": { "type": [ "object", "null" ], "properties": { "type": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] }, "text": { "type": [ "string", "null" ] }, "image": {}, "metadata": { "type": [ "object", "null" ], "properties": { "rank": { "type": [ "number", "null" ] }, "totalPnL": { "type": [ "number", "null" ] } } } } } } }, "trades": {}, "balances": {}, "rank": { "type": [ "object", "null" ], "properties": { "all": { "type": [ "object", "null" ], "properties": { "rank": { "type": [ "number", "null" ] }, "pnl": { "type": [ "number", "null" ] } } }, "24h": { "type": [ "object", "null" ], "properties": { "rank": { "type": [ "number", "null" ] }, "pnl": { "type": [ "number", "null" ] } } }, "7d": { "type": [ "object", "null" ], "properties": { "rank": { "type": [ "number", "null" ] }, "pnl": { "type": [ "number", "null" ] } } }, "30d": { "type": [ "object", "null" ], "properties": { "rank": { "type": [ "number", "null" ] }, "pnl": { "type": [ "number", "null" ] } } }, "badge": { "type": [ "object", "null" ], "properties": { "type": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] }, "text": { "type": [ "string", "null" ] }, "image": {}, "metadata": { "type": [ "object", "null" ], "properties": { "rank": { "type": [ "number", "null" ] }, "totalPnL": { "type": [ "number", "null" ] } } } } } } }, "spotlight": {} } }, "meta": { "type": "object", "description": "Freshness of the response", "properties": { "observedAt": { "type": "integer", "description": "Unix ms when the oldest part was observed upstream" }, "ageMs": { "type": "integer", "description": "Age of the oldest part when served, ms" }, "source": { "type": "string", "enum": [ "cache", "fresh", "stale" ] }, "parts": { "type": "object", "description": "observedAt and source per upstream part" } }, "required": [ "observedAt", "ageMs", "source" ] } }, "required": [ "data", "meta" ] }, "example": { "data": { "profile": { "id": "df983a8b-5e5b-5e91-802f-1472e96f04c3", "address": "HXCYBexdXRrNTa3NHHJiKh5wsjb6zfW79MxQYGsszouu", "evmAddress": "0xee368a44d334ab499b25efabbc879548d7be4143", "createdAt": "2025-11-11T13:50:41.428Z", "displayName": "PoorGoat💛🐈", "userHandle": "PoorGoat_", "profilePictureLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/f5eff84fd61177cfe9371f56d15dcf71.jpg?k=3000fJUBQCsikuRDXrNnPBmsg", "description": "Road to 8 Figs 💛🐈\nFind me on X @poorgoat_\nI WILL NEVER ENDORSE A POORGOAT COIN\nNever blindly follow anyone’s trades...", "following": 41, "followers": 616606, "activated": false, "verified": false, "isReferred": false, "isRestricted": false, "swapCount": 1815, "numTrades": 542, "totalVolume": 1565871.211134, "private": false, "thumbhash": "JVoODwLolqZ4d4h/l2iId5h3ifYHZ30A", "coverPhotoLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/61edf29f1d74e084a99d189230d2028d.jpg?k=3000fJUBQCsikuRDXrNnPBmsg", "coverPhotoThumbhash": "zSgKGoSLiYe/l8h5e7+998o=", "twitter": null, "clan": null, "followsCurrentUser": false, "numFriendsFollowing": 0, "friendsFollowing": [], "averageHoldTimeSeconds": 340449, "badge": { "type": "top_100_badge", "title": "Top 100", "text": "Awarded to traders who have reached all-time top 100 on the leaderboard", "image": null, "metadata": { "rank": 12, "totalPnL": 1362885.5491541424 } } }, "trades": null, "balances": null, "rank": { "all": { "rank": 12, "pnl": 1362885.5491541424 }, "24h": { "rank": 584860, "pnl": -116018.13232940761 }, "7d": { "rank": 768650, "pnl": -468126.7815064979 }, "30d": { "rank": 914114, "pnl": -1779809.0559055884 }, "badge": { "type": "top_100_badge", "title": "Top 100", "text": "Awarded to traders who have reached all-time top 100 on the leaderboard", "image": null, "metadata": { "rank": 12, "totalPnL": 1362885.5491541424 } } }, "spotlight": null }, "meta": { "observedAt": 1793069277081, "ageMs": 5681, "source": "cache", "parts": { "profile": { "observedAt": 1793069277081, "source": "cache" }, "rank": { "observedAt": 1793069277142, "source": "cache" } } } } } } }, "400": { "description": "{ error, message } for a bad chain, address, handle or query; unknown_parameter (with parameter and allowed) for a query key the route does not take" }, "402": { "description": "Payment Required; x4o2-free-key extension describes free key signup and Authorization header" }, "404": { "description": "unknown_handle: no FOMO user with that handle" }, "409": { "description": "payment_in_flight: the same x402 payment is already being used by another request" }, "429": { "description": "Free key over its limit: minute_quota_exceeded, daily_quota_exceeded (resets 00:00 UTC) or free_tier_paused; honour Retry-After or pay per call; upgrade includes price, networks, payment instructions, discovery, docs and UTC daily reset. Link points to docs. Free-key responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for minute and day windows" }, "502": { "description": "unavailable: FOMO answered with an error; retry shortly" }, "503": { "description": "busy or unavailable: temporarily out of upstream capacity; honour Retry-After or pass stale=1" } } ``` - [GET /v1/token/{chain}/{address}/candles](https://fomo.x4o2.com/v1/token/{chain}/{address}/candles): OHLCV price candles for a token from FOMO's chart data (0.001 USD via x402) Historical USD candles for one token as FOMO charts it: t (bucket start, unix ms), o, h, l, c and v (USD volume) for the 300 buckets ending at to, optionally trimmed to those at or after from. period picks the bucket size (5m, 30m, 1h, 4h, 12h). Use for price history and chart analysis. Paid: 0.001 USDC per call via x402 (Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)). Unpaid requests receive 402 with payment requirements. Request body: ```json {} ``` Parameters: ```json [ { "name": "chain", "in": "path", "required": true, "schema": { "type": "string", "description": "solana, base, ethereum, bsc, monad, robinhood or a numeric network id" }, "description": "solana, base, ethereum, bsc, monad, robinhood or a numeric network id", "example": "solana" }, { "name": "address", "in": "path", "required": true, "schema": { "type": "string", "description": "Token mint (Solana) or contract address (EVM)" }, "description": "Token mint (Solana) or contract address (EVM)", "example": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump" }, { "name": "maxAge", "in": "query", "required": false, "schema": { "type": "integer", "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "minimum": 0 }, "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "example": "5" }, { "name": "stale", "in": "query", "required": false, "schema": { "type": "integer", "description": "1 returns any cached copy immediately and refreshes in the background", "enum": [ 0, 1 ] }, "description": "1 returns any cached copy immediately and refreshes in the background", "example": "0" }, { "name": "period", "in": "query", "required": false, "schema": { "type": "string", "description": "Bucket size", "enum": [ "5m", "30m", "1h", "4h", "12h" ], "default": "1h" }, "description": "Bucket size", "example": "1h" }, { "name": "from", "in": "query", "required": false, "schema": { "type": "integer", "description": "Drop buckets before this time, unix ms", "minimum": 0 }, "description": "Drop buckets before this time, unix ms" }, { "name": "to", "in": "query", "required": false, "schema": { "type": "integer", "description": "Last bucket at or before this time, unix ms (default: now)", "minimum": 0 }, "description": "Last bucket at or before this time, unix ms (default: now)" } ] ``` Responses (schemas and captured examples): ```json { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": [ "array", "null" ], "items": { "type": [ "object", "null" ], "properties": { "v": { "type": [ "number", "null" ] }, "o": { "type": [ "number", "null" ] }, "h": { "type": [ "number", "null" ] }, "l": { "type": [ "number", "null" ] }, "c": { "type": [ "number", "null" ] }, "t": { "type": [ "number", "null" ] } } } }, "meta": { "type": "object", "description": "Freshness of the response", "properties": { "observedAt": { "type": "integer", "description": "Unix ms when the oldest part was observed upstream" }, "ageMs": { "type": "integer", "description": "Age of the oldest part when served, ms" }, "source": { "type": "string", "enum": [ "cache", "fresh", "stale" ] }, "parts": { "type": "object", "description": "observedAt and source per upstream part" } }, "required": [ "observedAt", "ageMs", "source" ] } }, "required": [ "data", "meta" ] }, "example": { "data": [ { "v": 55147.68946741613, "o": 0.0580773539039808, "h": 0.06058080752536786, "l": 0.0580773539039808, "c": 0.06027799065051281, "t": 1791990000000 }, { "v": 29203.471266466127, "o": 0.06027799065051281, "h": 0.06045829369971369, "l": 0.05891018203267709, "c": 0.05961734683501464, "t": 1791993600000 } ], "meta": { "observedAt": 1793069282784, "ageMs": 250, "source": "fresh", "parts": { "candles": { "observedAt": 1793069282784, "source": "fresh" } } } } } } }, "400": { "description": "{ error, message } for a bad chain, address, handle or query; unknown_parameter (with parameter and allowed) for a query key the route does not take" }, "402": { "description": "Payment Required; x4o2-free-key extension describes free key signup and Authorization header" }, "404": { "description": "unknown_handle: no FOMO user with that handle" }, "409": { "description": "payment_in_flight: the same x402 payment is already being used by another request" }, "429": { "description": "Free key over its limit: minute_quota_exceeded, daily_quota_exceeded (resets 00:00 UTC) or free_tier_paused; honour Retry-After or pay per call; upgrade includes price, networks, payment instructions, discovery, docs and UTC daily reset. Link points to docs. Free-key responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for minute and day windows" }, "502": { "description": "unavailable: FOMO answered with an error; retry shortly" }, "503": { "description": "busy or unavailable: temporarily out of upstream capacity; honour Retry-After or pass stale=1" } } ``` - [GET /v1/token/{chain}/{address}/developers](https://fomo.x4o2.com/v1/token/{chain}/{address}/developers): The token deployer's FOMO identity and holdings: how much the dev still holds or sold (0.001 USD via x402) FOMO's developer panel for a token: the deployer wallet(s) FOMO links to the token, their FOMO profile where one exists, and their current holdings and trading in it. Use as a dev-wallet and rug-risk signal. Paid: 0.001 USDC per call via x402 (Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)). Unpaid requests receive 402 with payment requirements. Request body: ```json {} ``` Parameters: ```json [ { "name": "chain", "in": "path", "required": true, "schema": { "type": "string", "description": "solana, base, ethereum, bsc, monad, robinhood or a numeric network id" }, "description": "solana, base, ethereum, bsc, monad, robinhood or a numeric network id", "example": "solana" }, { "name": "address", "in": "path", "required": true, "schema": { "type": "string", "description": "Token mint (Solana) or contract address (EVM)" }, "description": "Token mint (Solana) or contract address (EVM)", "example": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump" }, { "name": "maxAge", "in": "query", "required": false, "schema": { "type": "integer", "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "minimum": 0 }, "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "example": "5" }, { "name": "stale", "in": "query", "required": false, "schema": { "type": "integer", "description": "1 returns any cached copy immediately and refreshes in the background", "enum": [ 0, 1 ] }, "description": "1 returns any cached copy immediately and refreshes in the background", "example": "0" } ] ``` Responses (schemas and captured examples): ```json { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": [ "object", "null" ], "properties": { "tokenAddress": { "type": [ "string", "null" ] }, "networkId": { "type": [ "number", "null" ] }, "devHoldings": { "type": [ "array", "null" ] } } }, "meta": { "type": "object", "description": "Freshness of the response", "properties": { "observedAt": { "type": "integer", "description": "Unix ms when the oldest part was observed upstream" }, "ageMs": { "type": "integer", "description": "Age of the oldest part when served, ms" }, "source": { "type": "string", "enum": [ "cache", "fresh", "stale" ] }, "parts": { "type": "object", "description": "observedAt and source per upstream part" } }, "required": [ "observedAt", "ageMs", "source" ] } }, "required": [ "data", "meta" ] }, "example": { "data": { "tokenAddress": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump", "networkId": 1399811149, "devHoldings": [] }, "meta": { "observedAt": 1793069283056, "ageMs": 49, "source": "fresh", "parts": { "developers": { "observedAt": 1793069283056, "source": "fresh" } } } } } } }, "400": { "description": "{ error, message } for a bad chain, address, handle or query; unknown_parameter (with parameter and allowed) for a query key the route does not take" }, "402": { "description": "Payment Required; x4o2-free-key extension describes free key signup and Authorization header" }, "404": { "description": "unknown_handle: no FOMO user with that handle" }, "409": { "description": "payment_in_flight: the same x402 payment is already being used by another request" }, "429": { "description": "Free key over its limit: minute_quota_exceeded, daily_quota_exceeded (resets 00:00 UTC) or free_tier_paused; honour Retry-After or pay per call; upgrade includes price, networks, payment instructions, discovery, docs and UTC daily reset. Link points to docs. Free-key responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for minute and day windows" }, "502": { "description": "unavailable: FOMO answered with an error; retry shortly" }, "503": { "description": "busy or unavailable: temporarily out of upstream capacity; honour Retry-After or pass stale=1" } } ``` - [GET /v1/profile/{handle}/followers](https://fomo.x4o2.com/v1/profile/{handle}/followers): Who follows a FOMO trader: handles, wallets and stats of their followers (0.001 USD via x402) The FOMO users following one trader, with each follower's handle, id, wallet addresses and profile stats. Use to gauge a trader's audience and find connected traders. Paid: 0.001 USDC per call via x402 (Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)). Unpaid requests receive 402 with payment requirements. Request body: ```json {} ``` Parameters: ```json [ { "name": "handle", "in": "path", "required": true, "schema": { "type": "string", "description": "FOMO user handle" }, "description": "FOMO user handle", "example": "PoorGoat_" }, { "name": "maxAge", "in": "query", "required": false, "schema": { "type": "integer", "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "minimum": 0 }, "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "example": "5" }, { "name": "stale", "in": "query", "required": false, "schema": { "type": "integer", "description": "1 returns any cached copy immediately and refreshes in the background", "enum": [ 0, 1 ] }, "description": "1 returns any cached copy immediately and refreshes in the background", "example": "0" } ] ``` Responses (schemas and captured examples): ```json { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": [ "object", "null" ], "properties": { "users": { "type": [ "array", "null" ], "items": { "type": [ "object", "null" ], "properties": { "id": { "type": [ "string", "null" ] }, "address": { "type": [ "string", "null" ] }, "evmAddress": { "type": [ "string", "null" ] }, "createdAt": { "type": [ "string", "null" ] }, "displayName": { "type": [ "string", "null" ] }, "userHandle": { "type": [ "string", "null" ] }, "profilePictureLink": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] }, "following": { "type": [ "number", "null" ] }, "followers": { "type": [ "number", "null" ] }, "activated": { "type": [ "boolean", "null" ] }, "verified": { "type": [ "boolean", "null" ] }, "isReferred": { "type": [ "boolean", "null" ] }, "isRestricted": { "type": [ "boolean", "null" ] }, "swapCount": { "type": [ "number", "null" ] }, "numTrades": { "type": [ "number", "null" ] }, "totalVolume": { "type": [ "number", "null" ] }, "private": { "type": [ "boolean", "null" ] }, "thumbhash": { "type": [ "string", "null" ] }, "coverPhotoLink": { "type": [ "string", "null" ] }, "coverPhotoThumbhash": { "type": [ "string", "null" ] }, "twitter": {}, "pnl24h": { "type": [ "number", "null" ] } } } } } }, "meta": { "type": "object", "description": "Freshness of the response", "properties": { "observedAt": { "type": "integer", "description": "Unix ms when the oldest part was observed upstream" }, "ageMs": { "type": "integer", "description": "Age of the oldest part when served, ms" }, "source": { "type": "string", "enum": [ "cache", "fresh", "stale" ] }, "parts": { "type": "object", "description": "observedAt and source per upstream part" } }, "required": [ "observedAt", "ageMs", "source" ] } }, "required": [ "data", "meta" ] }, "example": { "data": { "users": [ { "id": "540a905c-39f7-5521-b31b-0a64456e6a5b", "address": "7Brhm4jMsoam3XQJ1jY2YHe5sSDpWEwpjbP7NHQLivUa", "evmAddress": "0xbb356fb1483b8c78224e83947b032e00695a7d84", "createdAt": "2025-10-25T13:15:04.400Z", "displayName": "cake", "userHandle": "thereisnocakee", "profilePictureLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/79eb049c698748217b4e13bfdf0b1b56_small.jpg?k=3000fJUBQCsikuRDXrNnPBmsg", "description": "lili student", "following": 191, "followers": 481, "activated": false, "verified": false, "isReferred": true, "isRestricted": false, "swapCount": 2141, "numTrades": 864, "totalVolume": 1206453.334692, "private": false, "thumbhash": "LggWBwDIh2ePdoZ2homYd3eHWKAHBXoA", "coverPhotoLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/5ccdefd52820c6781f14adb3481d0ff9.jpg?k=3000fJUBQCsikuRDXrNnPBmsg", "coverPhotoThumbhash": "swcGEoQoICJ5undYBIJmcIg=", "twitter": null, "pnl24h": -880.9115427911747 }, { "id": "8acdfee5-d763-5a8f-8240-dcceeac72444", "address": "Hq3RhUfZgX58Aott3Xkiz9UwaE1YD21hv7m7HeNJrypy", "evmAddress": "0x298d38637ce82166859fa1bc7594d8d5ce70f2a1", "createdAt": "2026-05-24T00:30:17.308Z", "displayName": "“Bismillah”", "userHandle": "Bismillah___", "profilePictureLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/d2c0168026d113c8d1a488543d3f6f03_small.jpg?k=3000fJUBQCsikuRDXrNnPBmsg", "description": "Bismillah al-Rahman al-Rahim\" means \"In the name of Allah, the Most Gracious, the Most Merciful\".", "following": 1489, "followers": 185, "activated": false, "verified": false, "isReferred": false, "isRestricted": false, "swapCount": 8215, "numTrades": 3402, "totalVolume": 867618.557757, "private": false, "thumbhash": "L0sKR4bXt5h6hniPind4p3eGiXIHWHQA", "coverPhotoLink": null, "coverPhotoThumbhash": null, "twitter": null, "pnl24h": 121.87909193628366 } ] }, "meta": { "observedAt": 1793069277081, "ageMs": 6056, "source": "cache", "parts": { "profile": { "observedAt": 1793069277081, "source": "cache" }, "followers": { "observedAt": 1793069277665, "source": "cache" } } } } } } }, "400": { "description": "{ error, message } for a bad chain, address, handle or query; unknown_parameter (with parameter and allowed) for a query key the route does not take" }, "402": { "description": "Payment Required; x4o2-free-key extension describes free key signup and Authorization header" }, "404": { "description": "unknown_handle: no FOMO user with that handle" }, "409": { "description": "payment_in_flight: the same x402 payment is already being used by another request" }, "429": { "description": "Free key over its limit: minute_quota_exceeded, daily_quota_exceeded (resets 00:00 UTC) or free_tier_paused; honour Retry-After or pay per call; upgrade includes price, networks, payment instructions, discovery, docs and UTC daily reset. Link points to docs. Free-key responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for minute and day windows" }, "502": { "description": "unavailable: FOMO answered with an error; retry shortly" }, "503": { "description": "busy or unavailable: temporarily out of upstream capacity; honour Retry-After or pass stale=1" } } ``` - [GET /v1/profile/{handle}/following](https://fomo.x4o2.com/v1/profile/{handle}/following): Who a FOMO trader follows, page by page: handles, wallets and stats (0.001 USD via x402) The traders one FOMO user follows (their signal sources), with handle, id, wallet addresses and profile stats, one page at a time. Pass the returned nextCursor as cursor= for the next page; the list ends with an empty page (nextCursor null). Paid: 0.001 USDC per call via x402 (Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)). Unpaid requests receive 402 with payment requirements. Request body: ```json {} ``` Parameters: ```json [ { "name": "handle", "in": "path", "required": true, "schema": { "type": "string", "description": "FOMO user handle" }, "description": "FOMO user handle", "example": "PoorGoat_" }, { "name": "maxAge", "in": "query", "required": false, "schema": { "type": "integer", "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "minimum": 0 }, "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "example": "5" }, { "name": "stale", "in": "query", "required": false, "schema": { "type": "integer", "description": "1 returns any cached copy immediately and refreshes in the background", "enum": [ 0, 1 ] }, "description": "1 returns any cached copy immediately and refreshes in the background", "example": "0" }, { "name": "cursor", "in": "query", "required": false, "schema": { "type": "string", "description": "nextCursor from the previous page" }, "description": "nextCursor from the previous page" } ] ``` Responses (schemas and captured examples): ```json { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": [ "object", "null" ], "properties": { "users": { "type": [ "array", "null" ], "items": { "type": [ "object", "null" ], "properties": { "id": { "type": [ "string", "null" ] }, "address": { "type": [ "string", "null" ] }, "evmAddress": { "type": [ "string", "null" ] }, "createdAt": { "type": [ "string", "null" ] }, "displayName": { "type": [ "string", "null" ] }, "userHandle": { "type": [ "string", "null" ] }, "profilePictureLink": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] }, "following": { "type": [ "number", "null" ] }, "followers": { "type": [ "number", "null" ] }, "activated": { "type": [ "boolean", "null" ] }, "verified": { "type": [ "boolean", "null" ] }, "isReferred": { "type": [ "boolean", "null" ] }, "isRestricted": { "type": [ "boolean", "null" ] }, "swapCount": { "type": [ "number", "null" ] }, "numTrades": { "type": [ "number", "null" ] }, "totalVolume": { "type": [ "number", "null" ] }, "private": { "type": [ "boolean", "null" ] }, "thumbhash": { "type": [ "string", "null" ] }, "coverPhotoLink": { "type": [ "string", "null" ] }, "coverPhotoThumbhash": { "type": [ "string", "null" ] }, "twitter": {}, "pnl24h": { "type": [ "number", "null" ] }, "badge": { "type": [ "object", "null" ], "properties": { "type": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] }, "text": { "type": [ "string", "null" ] }, "image": {}, "metadata": { "type": [ "object", "null" ], "properties": { "rank": { "type": [ "number", "null" ] }, "totalPnL": { "type": [ "number", "null" ] } } } } }, "clanBadge": { "type": [ "object", "null" ], "properties": { "type": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] }, "text": { "type": [ "string", "null" ] }, "image": { "type": [ "string", "null" ] }, "metadata": { "type": [ "object", "null" ], "properties": { "clanId": { "type": [ "string", "null" ] }, "memberType": { "type": [ "string", "null" ] } } } } } } } }, "nextCursor": { "type": [ "string", "null" ] } } }, "meta": { "type": "object", "description": "Freshness of the response", "properties": { "observedAt": { "type": "integer", "description": "Unix ms when the oldest part was observed upstream" }, "ageMs": { "type": "integer", "description": "Age of the oldest part when served, ms" }, "source": { "type": "string", "enum": [ "cache", "fresh", "stale" ] }, "parts": { "type": "object", "description": "observedAt and source per upstream part" } }, "required": [ "observedAt", "ageMs", "source" ] } }, "required": [ "data", "meta" ] }, "example": { "data": { "users": [ { "id": "66d25a69-e398-5675-8d41-f373f65c6c71", "address": "4RUmgiS7TRNC3rdMnoryUJiYNrwiRhdWSaXiST4AC6ro", "evmAddress": "0x98ae219c69efa1ec281965441c9d363e92097bbc", "createdAt": "2026-08-21T22:04:44.271Z", "displayName": "Alex | 4evertrader", "userHandle": "4evertrader_", "profilePictureLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/082ea18858d054caaa25a1e271f69e9d_small.jpg?k=300gfQS2OYdk8LynpHrPw58Ww", "description": "You’ll find this account eventually.\nThe only question is what my P&L looks like by then.\nEarly narratives. High conv...", "following": 49, "followers": 5444, "activated": false, "verified": false, "isReferred": false, "isRestricted": false, "swapCount": 807, "numTrades": 308, "totalVolume": 1274108.84117, "private": false, "thumbhash": "UCkKHwKaZZd/g4dlknaIOHeFqPpHin8C", "coverPhotoLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/e725843d5323bd7f46176df29dadcbcc.jpg?k=300gfQS2OYdk8LynpHrPw58Ww", "coverPhotoThumbhash": "k0oKIoJmiHePdol3h493+og=", "twitter": null, "pnl24h": -15638.087979188014, "clanBadge": { "type": "clan", "title": "TitusTradz", "text": "Awarded for being in a clan", "image": "https://prod-fomo-profile-pics.s3.amazonaws.com/54f9784255f1462d08fb4dc1be2ed954.jpg?k=300gfQS2OYdk8LynpHrPw58Ww", "metadata": { "clanId": "ac478b54-d111-4674-a283-9cb739a9ce5c", "memberType": "member" } } }, { "id": "e5b3a269-010a-511c-913a-1036fd1840b5", "address": "6F7GEcDQQRBygxJy9KumtPTC58CRMq5ThT2iFibeRrPs", "evmAddress": "0xc4db4c15b7a4005bb0bfc9d78d5688c6bf3a695b", "createdAt": "2025-04-22T00:23:40.131Z", "displayName": "rasmr", "userHandle": "rasmr", "profilePictureLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/1754089790e73f9738f47664febde2d3_small.jpg?k=300gfQS2OYdk8LynpHrPw58Ww", "description": "5k to $1m challenge ✅", "following": 192, "followers": 124746, "activated": true, "verified": false, "isReferred": true, "isRestricted": false, "swapCount": 3027, "numTrades": 1908, "totalVolume": 22384434.915879, "private": false, "thumbhash": "6wcSFwT5h2h5iHh6hrZoqGeIeDBpB5IG", "coverPhotoLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/d426420d67e5b7339872421b6fa8dd2d.jpg?k=300gfQS2OYdk8LynpHrPw58Ww", "coverPhotoThumbhash": "WZUFCoKriIiPd5d3j5D4O3k=", "twitter": null, "pnl24h": 7577.365013031696, "badge": { "type": "top_100_badge", "title": "Top 100", "text": "Awarded to traders who have reached all-time top 100 on the leaderboard", "image": null, "metadata": { "rank": 83, "totalPnL": 468964.6336233588 } } } ], "nextCursor": "6d9a3e82-2ec4-5557-8f70-3cb386bab7f1" }, "meta": { "observedAt": 1793069277081, "ageMs": 6135, "source": "fresh", "parts": { "profile": { "observedAt": 1793069277081, "source": "cache" }, "following": { "observedAt": 1793069283162, "source": "fresh" } } } } } } }, "400": { "description": "{ error, message } for a bad chain, address, handle or query; unknown_parameter (with parameter and allowed) for a query key the route does not take" }, "402": { "description": "Payment Required; x4o2-free-key extension describes free key signup and Authorization header" }, "404": { "description": "unknown_handle: no FOMO user with that handle" }, "409": { "description": "payment_in_flight: the same x402 payment is already being used by another request" }, "429": { "description": "Free key over its limit: minute_quota_exceeded, daily_quota_exceeded (resets 00:00 UTC) or free_tier_paused; honour Retry-After or pay per call; upgrade includes price, networks, payment instructions, discovery, docs and UTC daily reset. Link points to docs. Free-key responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for minute and day windows" }, "502": { "description": "unavailable: FOMO answered with an error; retry shortly" }, "503": { "description": "busy or unavailable: temporarily out of upstream capacity; honour Retry-After or pass stale=1" } } ``` - [GET /v1/profiles](https://fomo.x4o2.com/v1/profiles): Up to 50 FOMO trader profiles in one call, by user id or handle, with wallets and optional leaderboard ranks (0.001 USD via x402) Many FOMO traders at once: ids= (up to 50 user ids, one upstream read) or handles= (up to 25, one read each). Each entry is the profile with Solana (address) and EVM (evmAddress) wallets; include=rank adds rank = { all, 24h, 7d, 30d } of { rank, pnl } per user (one extra read each). Unknown ids or handles go to data.notFound instead of failing the call. Use to rank or enrich traders collected from holders, followers, following or the feed: the way to ranks beyond the leaderboard's top 150. Paid: 0.001 USDC per call via x402 (Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)). Unpaid requests receive 402 with payment requirements. Request body: ```json {} ``` Parameters: ```json [ { "name": "maxAge", "in": "query", "required": false, "schema": { "type": "integer", "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "minimum": 0 }, "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "example": "5" }, { "name": "stale", "in": "query", "required": false, "schema": { "type": "integer", "description": "1 returns any cached copy immediately and refreshes in the background", "enum": [ 0, 1 ] }, "description": "1 returns any cached copy immediately and refreshes in the background", "example": "0" }, { "name": "ids", "in": "query", "required": false, "schema": { "type": "string", "description": "Comma-separated FOMO user ids (uuid), 1-50; exclusive with handles" }, "description": "Comma-separated FOMO user ids (uuid), 1-50; exclusive with handles" }, { "name": "handles", "in": "query", "required": false, "schema": { "type": "string", "description": "Comma-separated FOMO handles, 1-25; exclusive with ids" }, "description": "Comma-separated FOMO handles, 1-25; exclusive with ids", "example": "PoorGoat_,unipcs" }, { "name": "include", "in": "query", "required": false, "schema": { "type": "string", "description": "Comma-separated extras: rank" }, "description": "Comma-separated extras: rank", "example": "rank" } ] ``` Responses (schemas and captured examples): ```json { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": [ "object", "null" ], "properties": { "users": { "type": [ "array", "null" ], "items": { "type": [ "object", "null" ], "properties": { "id": { "type": [ "string", "null" ] }, "address": { "type": [ "string", "null" ] }, "evmAddress": { "type": [ "string", "null" ] }, "createdAt": { "type": [ "string", "null" ] }, "displayName": { "type": [ "string", "null" ] }, "userHandle": { "type": [ "string", "null" ] }, "profilePictureLink": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] }, "following": { "type": [ "number", "null" ] }, "followers": { "type": [ "number", "null" ] }, "activated": { "type": [ "boolean", "null" ] }, "verified": { "type": [ "boolean", "null" ] }, "isReferred": { "type": [ "boolean", "null" ] }, "isRestricted": { "type": [ "boolean", "null" ] }, "swapCount": { "type": [ "number", "null" ] }, "numTrades": { "type": [ "number", "null" ] }, "totalVolume": { "type": [ "number", "null" ] }, "private": { "type": [ "boolean", "null" ] }, "thumbhash": { "type": [ "string", "null" ] }, "coverPhotoLink": { "type": [ "string", "null" ] }, "coverPhotoThumbhash": { "type": [ "string", "null" ] }, "twitter": {}, "clan": { "type": [ "object", "null" ], "properties": { "id": { "type": [ "string", "null" ] }, "name": { "type": [ "string", "null" ] }, "iconLink": { "type": [ "string", "null" ] }, "iconThumbhash": { "type": [ "string", "null" ] }, "role": { "type": [ "string", "null" ] } } }, "followsCurrentUser": { "type": [ "boolean", "null" ] }, "numFriendsFollowing": { "type": [ "number", "null" ] }, "friendsFollowing": { "type": [ "array", "null" ] }, "averageHoldTimeSeconds": { "type": [ "number", "null" ] }, "badge": { "type": [ "object", "null" ], "properties": { "type": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] }, "text": { "type": [ "string", "null" ] }, "image": {}, "metadata": { "type": [ "object", "null" ], "properties": { "rank": { "type": [ "number", "null" ] }, "totalPnL": { "type": [ "number", "null" ] } } } } }, "clanBadge": { "type": [ "object", "null" ], "properties": { "type": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] }, "text": { "type": [ "string", "null" ] }, "image": { "type": [ "string", "null" ] }, "metadata": { "type": [ "object", "null" ], "properties": { "clanId": { "type": [ "string", "null" ] }, "memberType": { "type": [ "string", "null" ] } } } } }, "rank": { "type": [ "object", "null" ], "properties": { "all": { "type": [ "object", "null" ], "properties": { "rank": { "type": [ "number", "null" ] }, "pnl": { "type": [ "number", "null" ] } } }, "24h": { "type": [ "object", "null" ], "properties": { "rank": { "type": [ "number", "null" ] }, "pnl": { "type": [ "number", "null" ] } } }, "7d": { "type": [ "object", "null" ], "properties": { "rank": { "type": [ "number", "null" ] }, "pnl": { "type": [ "number", "null" ] } } }, "30d": { "type": [ "object", "null" ], "properties": { "rank": { "type": [ "number", "null" ] }, "pnl": { "type": [ "number", "null" ] } } }, "badge": { "type": [ "object", "null" ], "properties": { "type": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] }, "text": { "type": [ "string", "null" ] }, "image": {}, "metadata": { "type": [ "object", "null" ] } } } } } } } }, "notFound": { "type": [ "array", "null" ] } } }, "meta": { "type": "object", "description": "Freshness of the response", "properties": { "observedAt": { "type": "integer", "description": "Unix ms when the oldest part was observed upstream" }, "ageMs": { "type": "integer", "description": "Age of the oldest part when served, ms" }, "source": { "type": "string", "enum": [ "cache", "fresh", "stale" ] }, "parts": { "type": "object", "description": "observedAt and source per upstream part" } }, "required": [ "observedAt", "ageMs", "source" ] } }, "required": [ "data", "meta" ] }, "example": { "data": { "users": [ { "id": "df983a8b-5e5b-5e91-802f-1472e96f04c3", "address": "HXCYBexdXRrNTa3NHHJiKh5wsjb6zfW79MxQYGsszouu", "evmAddress": "0xee368a44d334ab499b25efabbc879548d7be4143", "createdAt": "2025-11-11T13:50:41.428Z", "displayName": "PoorGoat💛🐈", "userHandle": "PoorGoat_", "profilePictureLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/f5eff84fd61177cfe9371f56d15dcf71.jpg?k=3000fJUBQCsikuRDXrNnPBmsg", "description": "Road to 8 Figs 💛🐈\nFind me on X @poorgoat_\nI WILL NEVER ENDORSE A POORGOAT COIN\nNever blindly follow anyone’s trades...", "following": 41, "followers": 616606, "activated": false, "verified": false, "isReferred": false, "isRestricted": false, "swapCount": 1815, "numTrades": 542, "totalVolume": 1565871.211134, "private": false, "thumbhash": "JVoODwLolqZ4d4h/l2iId5h3ifYHZ30A", "coverPhotoLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/61edf29f1d74e084a99d189230d2028d.jpg?k=3000fJUBQCsikuRDXrNnPBmsg", "coverPhotoThumbhash": "zSgKGoSLiYe/l8h5e7+998o=", "twitter": null, "clan": null, "followsCurrentUser": false, "numFriendsFollowing": 0, "friendsFollowing": [], "averageHoldTimeSeconds": 340449, "badge": { "type": "top_100_badge", "title": "Top 100", "text": "Awarded to traders who have reached all-time top 100 on the leaderboard", "image": null, "metadata": { "rank": 12, "totalPnL": 1362885.5491541424 } }, "rank": { "all": { "rank": 12, "pnl": 1362885.5491541424 }, "24h": { "rank": 584860, "pnl": -116018.13232940761 }, "7d": { "rank": 768650, "pnl": -468126.7815064979 }, "30d": { "rank": 914114, "pnl": -1779809.0559055884 }, "badge": { "type": "top_100_badge", "title": "Top 100", "text": "Awarded to traders who have reached all-time top 100 on the leaderboard", "image": null, "metadata": { "rank": 12, "totalPnL": 1362885.5491541424 } } } }, { "id": "36adb85a-c0fd-5fa8-916d-8fdc32fe4237", "address": "FJDy9FDRy6bwGEUKuAC98bUtN8MkpE2pT7Dj7HE3Z7Q1", "evmAddress": "0x2ac082e252143c89c6e3bcb972e49855f9f6711c", "createdAt": "2026-05-18T12:45:58.832Z", "displayName": "Unipcs", "userHandle": "unipcs", "profilePictureLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/685a72bf4e0ab7095593e7618caa5c8e.jpg?k=3000fJUBQCsikuRDXrNnPBmsg", "description": "\"If the Lord will, we shall live, and do this, or that.\" - James 4:15", "following": 44, "followers": 812488, "activated": false, "verified": false, "isReferred": true, "isRestricted": false, "swapCount": 1255, "numTrades": 974, "totalVolume": 5381648.839373, "private": false, "thumbhash": "VzkKPwIEWoh7hXiLd5l3t3eGaHB3BoQE", "coverPhotoLink": null, "coverPhotoThumbhash": null, "twitter": null, "clan": { "id": "715a68a6-657e-4424-8c65-68ad3af899b1", "name": "Fantom Troupe", "iconLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/4d5de9da1d1b7ee43ce86588ce29119a.jpg?k=3000fJUBQCsikuRDXrNnPBmsg", "iconThumbhash": "phgWJwJoh4iPd4Z0hmhneIh4l/xoB3sC", "role": "member" }, "followsCurrentUser": false, "numFriendsFollowing": 0, "friendsFollowing": [], "averageHoldTimeSeconds": 398278, "badge": { "type": "top_100_badge", "title": "Top 1", "text": "Awarded to traders who have reached all-time top 100 on the leaderboard", "image": null, "metadata": { "rank": 1, "totalPnL": 3283256.666338974 } }, "clanBadge": { "type": "clan", "title": "Fantom Troupe", "text": "Awarded for being in a clan", "image": "https://prod-fomo-profile-pics.s3.amazonaws.com/4d5de9da1d1b7ee43ce86588ce29119a.jpg?k=3000fJUBQCsikuRDXrNnPBmsg", "metadata": { "clanId": "715a68a6-657e-4424-8c65-68ad3af899b1", "memberType": "member" } }, "rank": { "all": { "rank": 1, "pnl": 3283256.666338974 }, "24h": { "rank": 584851, "pnl": -46144.68059375882 }, "7d": { "rank": 768653, "pnl": -626517.4608238791 }, "30d": { "rank": 914135, "pnl": -9609708.664335756 }, "badge": { "type": "top_100_badge", "title": "Top 1", "text": "Awarded to traders who have reached all-time top 100 on the leaderboard", "image": null, "metadata": { "rank": 1, "totalPnL": 3283256.666338974 } } } } ], "notFound": [] }, "meta": { "observedAt": 1793069277081, "ageMs": 6156, "source": "cache", "parts": { "profile": { "observedAt": 1793069277081, "source": "cache" }, "rank": { "observedAt": 1793069277142, "source": "cache" } } } } } } }, "400": { "description": "{ error, message } for a bad chain, address, handle or query; unknown_parameter (with parameter and allowed) for a query key the route does not take" }, "402": { "description": "Payment Required; x4o2-free-key extension describes free key signup and Authorization header" }, "404": { "description": "unknown_handle: no FOMO user with that handle" }, "409": { "description": "payment_in_flight: the same x402 payment is already being used by another request" }, "429": { "description": "Free key over its limit: minute_quota_exceeded, daily_quota_exceeded (resets 00:00 UTC) or free_tier_paused; honour Retry-After or pay per call; upgrade includes price, networks, payment instructions, discovery, docs and UTC daily reset. Link points to docs. Free-key responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for minute and day windows" }, "502": { "description": "unavailable: FOMO answered with an error; retry shortly" }, "503": { "description": "busy or unavailable: temporarily out of upstream capacity; honour Retry-After or pass stale=1" } } ``` - [GET /v1/leaderboard](https://fomo.x4o2.com/v1/leaderboard): FOMO's trader P&L leaderboard for 24h, 7d, 30d or all time: the top 150 (100 all-time), no paging (0.001 USD via x402) FOMO's best traders for the period (24h, 7d, 30d or all time), best first. Each entry is the trader's profile (handle, user id, Solana and EVM wallets, picture, follower and trade counts, top holdings) plus rank and pnl for the period (also in FOMO's field pnl24h, pnl7d, pnl30d or totalPnL). This is all FOMO publishes: 150 entries per period, 100 all-time, no paging. Ranks beyond that are per user: /v1/profile/{handle}?include=rank, or 50 at a time via /v1/profiles?ids=&include=rank. Paid: 0.001 USDC per call via x402 (Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)). Unpaid requests receive 402 with payment requirements. Request body: ```json {} ``` Parameters: ```json [ { "name": "maxAge", "in": "query", "required": false, "schema": { "type": "integer", "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "minimum": 0 }, "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "example": "5" }, { "name": "stale", "in": "query", "required": false, "schema": { "type": "integer", "description": "1 returns any cached copy immediately and refreshes in the background", "enum": [ 0, 1 ] }, "description": "1 returns any cached copy immediately and refreshes in the background", "example": "0" }, { "name": "period", "in": "query", "required": false, "schema": { "type": "string", "description": "Leaderboard window", "enum": [ "24h", "7d", "30d", "all" ], "default": "24h" }, "description": "Leaderboard window", "example": "24h" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of entries, 1-150", "minimum": 1, "maximum": 150, "default": 150 }, "description": "Number of entries, 1-150", "example": "150" } ] ``` Responses (schemas and captured examples): ```json { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": [ "object", "null" ], "properties": { "leaderboard": { "type": [ "array", "null" ], "items": { "type": [ "object", "null" ], "properties": { "rank": { "type": [ "number", "null" ] }, "pnl": { "type": [ "number", "null" ] }, "id": { "type": [ "string", "null" ] }, "address": { "type": [ "string", "null" ] }, "evmAddress": { "type": [ "string", "null" ] }, "createdAt": { "type": [ "string", "null" ] }, "displayName": { "type": [ "string", "null" ] }, "userHandle": { "type": [ "string", "null" ] }, "profilePictureLink": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] }, "following": { "type": [ "number", "null" ] }, "followers": { "type": [ "number", "null" ] }, "activated": { "type": [ "boolean", "null" ] }, "verified": { "type": [ "boolean", "null" ] }, "isReferred": { "type": [ "boolean", "null" ] }, "isRestricted": { "type": [ "boolean", "null" ] }, "swapCount": { "type": [ "number", "null" ] }, "numTrades": { "type": [ "number", "null" ] }, "totalVolume": { "type": [ "number", "null" ] }, "private": { "type": [ "boolean", "null" ] }, "thumbhash": { "type": [ "string", "null" ] }, "coverPhotoLink": { "type": [ "string", "null" ] }, "coverPhotoThumbhash": { "type": [ "string", "null" ] }, "twitter": {}, "totalPnL": { "type": [ "number", "null" ] }, "clan": { "type": [ "object", "null" ], "properties": { "id": { "type": [ "string", "null" ] }, "name": { "type": [ "string", "null" ] }, "iconLink": { "type": [ "string", "null" ] }, "iconThumbhash": { "type": [ "string", "null" ] } } }, "totalHoldings": { "type": [ "number", "null" ] }, "topHoldings": { "type": [ "array", "null" ], "items": { "type": [ "object", "null" ], "properties": { "imageUrl": { "type": [ "string", "null" ] }, "tokenAddress": { "type": [ "string", "null" ] }, "networkId": { "type": [ "number", "null" ] }, "pnl": { "type": [ "number", "null" ] }, "humanAmount": { "type": [ "number", "null" ] }, "price": { "type": [ "number", "null" ] }, "value": { "type": [ "number", "null" ] } } } }, "badge": { "type": [ "object", "null" ], "properties": { "type": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] }, "text": { "type": [ "string", "null" ] }, "image": {}, "metadata": { "type": [ "object", "null" ], "properties": { "rank": { "type": [ "number", "null" ] }, "totalPnL": { "type": [ "number", "null" ] } } } } }, "clanBadge": { "type": [ "object", "null" ], "properties": { "type": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] }, "text": { "type": [ "string", "null" ] }, "image": { "type": [ "string", "null" ] }, "metadata": { "type": [ "object", "null" ], "properties": { "clanId": { "type": [ "string", "null" ] }, "memberType": { "type": [ "string", "null" ] } } } } } } } } } }, "meta": { "type": "object", "description": "Freshness of the response", "properties": { "observedAt": { "type": "integer", "description": "Unix ms when the oldest part was observed upstream" }, "ageMs": { "type": "integer", "description": "Age of the oldest part when served, ms" }, "source": { "type": "string", "enum": [ "cache", "fresh", "stale" ] }, "parts": { "type": "object", "description": "observedAt and source per upstream part" } }, "required": [ "observedAt", "ageMs", "source" ] } }, "required": [ "data", "meta" ] }, "example": { "data": { "leaderboard": [ { "rank": 1, "pnl": 3283256.666338974, "id": "36adb85a-c0fd-5fa8-916d-8fdc32fe4237", "address": "FJDy9FDRy6bwGEUKuAC98bUtN8MkpE2pT7Dj7HE3Z7Q1", "evmAddress": "0x2ac082e252143c89c6e3bcb972e49855f9f6711c", "createdAt": "2026-05-18T12:45:58.832Z", "displayName": "Unipcs", "userHandle": "unipcs", "profilePictureLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/685a72bf4e0ab7095593e7618caa5c8e_small.jpg?k=3000fJUBQCsikuRDXrNnPBmsg", "description": "\"If the Lord will, we shall live, and do this, or that.\" - James 4:15", "following": 44, "followers": 812488, "activated": false, "verified": false, "isReferred": true, "isRestricted": false, "swapCount": 1255, "numTrades": 7786, "totalVolume": 5381648.839373, "private": false, "thumbhash": "VzkKPwIEWoh7hXiLd5l3t3eGaHB3BoQE", "coverPhotoLink": null, "coverPhotoThumbhash": null, "twitter": null, "totalPnL": 3283256.666338974, "clan": { "id": "715a68a6-657e-4424-8c65-68ad3af899b1", "name": "Fantom Troupe", "iconLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/4d5de9da1d1b7ee43ce86588ce29119a.jpg?k=3000fJUBQCsikuRDXrNnPBmsg", "iconThumbhash": "phgWJwJoh4iPd4Z0hmhneIh4l/xoB3sC" }, "totalHoldings": 247, "topHoldings": [ { "imageUrl": "https://metadata.mobula.io/assets/logos/f03b6095dc83bde168cab16013205334941f599c7405682cced179242df940f8.png", "tokenAddress": "0x39dbed3a2bd333467115de45665cc57f813c4571", "networkId": 4663, "humanAmount": 10958918.177889977, "price": 0.23975544795342196, "value": 2627460.3368249102, "pnl": 2559347.6541244076 }, { "imageUrl": "https://metadata.mobula.io/assets/logos/c8edefd1b2944637e6fe33e25896d701ab348b54a0d53ab4303e78598e1f451f.png", "tokenAddress": "Dz9mQ9NzkBcCsuGPFJ3r1bS4wgqKMHBPiVuniW8Mbonk", "networkId": 1399811149, "humanAmount": 15831000.664067, "price": 0.15180833989693113, "value": 2403277.9297192255, "pnl": 1579074.212281427 } ], "badge": { "type": "top_100_badge", "title": "Top 1", "text": "Awarded to traders who have reached all-time top 100 on the leaderboard", "image": null, "metadata": { "rank": 1, "totalPnL": 3283256.666338974 } }, "clanBadge": { "type": "clan", "title": "Fantom Troupe", "text": "Awarded for being in a clan", "image": "https://prod-fomo-profile-pics.s3.amazonaws.com/4d5de9da1d1b7ee43ce86588ce29119a.jpg?k=3000fJUBQCsikuRDXrNnPBmsg", "metadata": { "clanId": "715a68a6-657e-4424-8c65-68ad3af899b1", "memberType": "member" } } }, { "rank": 2, "pnl": 3022038.2471753634, "id": "aefe2ddd-c580-5245-a2f5-e4ed62f7ef10", "address": "A5SEXYJY4jTEi6sjMLfZs5KAP8SVFvLDPDV67GgSSZSk", "evmAddress": "0x542b6b4cbab54a6ae6aadccd32a24e8c8b75370c", "createdAt": "2025-09-03T23:25:33.441Z", "displayName": "frank", "userHandle": "frankdegods", "profilePictureLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/b099ba0c0f4f5809c7be5d65fb30b72e_small.jpg?k=3000fJUBQCsikuRDXrNnPBmsg", "description": ".", "following": 332, "followers": 384306, "activated": false, "verified": false, "isReferred": true, "isRestricted": false, "swapCount": 8944, "numTrades": 8712, "totalVolume": 70915390.700484, "private": false, "thumbhash": "1wcGH4KPg06KeYlazFeIeoeYivZIB68C", "coverPhotoLink": "https://prod-fomo-profile-pics.s3.amazonaws.com/9237b549da3b32b7102ef491fd06ca59.jpg?k=3000fJUBQCsikuRDXrNnPBmsg", "coverPhotoThumbhash": "JpUFGoLLeJdgdXmYh4BcCOc=", "twitter": null, "totalPnL": 3022038.2471753634, "clan": null, "totalHoldings": 185, "topHoldings": [ { "imageUrl": "https://image-renderer.fomo.cloud/hl/BTC/icon.png", "tokenAddress": "BTC", "networkId": 1337, "pnl": 309030.73017 }, { "imageUrl": "https://image-renderer.fomo.cloud/hl/PUMP/icon.png", "tokenAddress": "PUMP", "networkId": 1337, "pnl": 127376.082298 } ], "badge": { "type": "top_100_badge", "title": "Top 2", "text": "Awarded to traders who have reached all-time top 100 on the leaderboard", "image": null, "metadata": { "rank": 2, "totalPnL": 3022038.2471753634 } } } ] }, "meta": { "observedAt": 1793069276751, "ageMs": 6517, "source": "cache", "parts": { "leaderboard": { "observedAt": 1793069276751, "source": "cache" } } } } } } }, "400": { "description": "{ error, message } for a bad chain, address, handle or query; unknown_parameter (with parameter and allowed) for a query key the route does not take" }, "402": { "description": "Payment Required; x4o2-free-key extension describes free key signup and Authorization header" }, "404": { "description": "unknown_handle: no FOMO user with that handle" }, "409": { "description": "payment_in_flight: the same x402 payment is already being used by another request" }, "429": { "description": "Free key over its limit: minute_quota_exceeded, daily_quota_exceeded (resets 00:00 UTC) or free_tier_paused; honour Retry-After or pay per call; upgrade includes price, networks, payment instructions, discovery, docs and UTC daily reset. Link points to docs. Free-key responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for minute and day windows" }, "502": { "description": "unavailable: FOMO answered with an error; retry shortly" }, "503": { "description": "busy or unavailable: temporarily out of upstream capacity; honour Retry-After or pass stale=1" } } ``` - [GET /v1/tokens/{list}](https://fomo.x4o2.com/v1/tokens/{list}): FOMO token lists: trending, most-held by FOMO traders, graduated, community or verified (0.001 USD via x402) One of the token lists on FOMO's discover tab, with market data per token (price, market cap, 24h volume and change, liquidity, holders, launchpad and graduation state): trending, most-held (what FOMO traders hold most), graduated (launchpad tokens that completed their curve), community or verified. Paid: 0.001 USDC per call via x402 (Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)). Unpaid requests receive 402 with payment requirements. Request body: ```json {} ``` Parameters: ```json [ { "name": "list", "in": "path", "required": true, "schema": { "type": "string", "description": "Which list", "enum": [ "trending", "most-held", "graduated", "community", "verified" ] }, "description": "Which list", "example": "trending" }, { "name": "maxAge", "in": "query", "required": false, "schema": { "type": "integer", "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "minimum": 0 }, "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "example": "5" }, { "name": "stale", "in": "query", "required": false, "schema": { "type": "integer", "description": "1 returns any cached copy immediately and refreshes in the background", "enum": [ 0, 1 ] }, "description": "1 returns any cached copy immediately and refreshes in the background", "example": "0" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of entries, 1-100", "minimum": 1, "maximum": 100, "default": 50 }, "description": "Number of entries, 1-100", "example": "50" } ] ``` Responses (schemas and captured examples): ```json { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": [ "array", "null" ], "items": { "type": [ "object", "null" ], "properties": { "change24": { "type": [ "string", "null" ] }, "createdAt": { "type": [ "number", "null" ] }, "holders": { "type": [ "number", "null" ] }, "liquidity": { "type": [ "string", "null" ] }, "marketCap": { "type": [ "string", "null" ] }, "priceUSD": { "type": [ "string", "null" ] }, "volume24": { "type": [ "string", "null" ] }, "token": { "type": [ "object", "null" ], "properties": { "address": { "type": [ "string", "null" ] }, "decimals": { "type": [ "number", "null" ] }, "networkId": { "type": [ "number", "null" ] }, "name": { "type": [ "string", "null" ] }, "symbol": { "type": [ "string", "null" ] }, "info": { "type": [ "object", "null" ], "properties": { "circulatingSupply": {}, "id": { "type": [ "string", "null" ] }, "imageLargeUrl": { "type": [ "string", "null" ] }, "imageSmallUrl": { "type": [ "string", "null" ] }, "imageThumbUrl": { "type": [ "string", "null" ] }, "name": { "type": [ "string", "null" ] }, "symbol": { "type": [ "string", "null" ] }, "totalSupply": {} } }, "socialLinks": {}, "launchpad": { "type": [ "object", "null" ], "properties": { "launchpadName": { "type": [ "string", "null" ] }, "launchpadIconUrl": { "type": [ "string", "null" ] }, "graduationPercent": { "type": [ "number", "null" ] } } } } } } } }, "meta": { "type": "object", "description": "Freshness of the response", "properties": { "observedAt": { "type": "integer", "description": "Unix ms when the oldest part was observed upstream" }, "ageMs": { "type": "integer", "description": "Age of the oldest part when served, ms" }, "source": { "type": "string", "enum": [ "cache", "fresh", "stale" ] }, "parts": { "type": "object", "description": "observedAt and source per upstream part" } }, "required": [ "observedAt", "ageMs", "source" ] } }, "required": [ "data", "meta" ] }, "example": { "data": [ { "change24": "155.37270371648648", "createdAt": 1793048464, "holders": 4491, "liquidity": "69096.37760184194", "marketCap": "688582.5832578434", "priceUSD": "0.0007045420619045227", "volume24": "3641131.5671376567", "token": { "address": "51SfaAyrYaR8FpibXT4TXtxEpnZSNoDwYVRojtKupump", "decimals": 6, "networkId": 1399811149, "name": "Backed By Belief", "symbol": "Nothing", "info": { "circulatingSupply": "977347727.680676", "id": "51SfaAyrYaR8FpibXT4TXtxEpnZSNoDwYVRojtKupump:1399811149", "imageLargeUrl": "https://metadata.mobula.io/assets/logos/solana_solana_51SfaAyrYaR8FpibXT4TXtxEpnZSNoDwYVRojtKupump.webp", "imageSmallUrl": "https://metadata.mobula.io/assets/logos/solana_solana_51SfaAyrYaR8FpibXT4TXtxEpnZSNoDwYVRojtKupump.webp", "imageThumbUrl": "https://metadata.mobula.io/assets/logos/solana_solana_51SfaAyrYaR8FpibXT4TXtxEpnZSNoDwYVRojtKupump.webp", "name": "Backed By Belief", "symbol": "Nothing", "totalSupply": "977347727.680676" }, "socialLinks": null, "launchpad": { "launchpadName": "Pump.fun", "launchpadIconUrl": "https://metadata.mobula.io/assets/logos/factory_pumpfun.webp", "graduationPercent": 0 } } }, { "change24": "-0.04745684888457631", "createdAt": 1781643949, "holders": 152150, "liquidity": "950123.4736066854", "marketCap": "65542429.108451344", "priceUSD": "0.06554242910845134", "volume24": "1709496.3792814752", "token": { "address": "9cRCn9rGT8V2imeM2BaKs13yhMEais3ruM3rPvTGpump", "decimals": 6, "networkId": 1399811149, "name": "The Black Bull", "symbol": "ANSEM", "info": { "circulatingSupply": 1000000000, "id": "9cRCn9rGT8V2imeM2BaKs13yhMEais3ruM3rPvTGpump:1399811149", "imageLargeUrl": "https://metadata.mobula.io/assets/logos/7918164b5dc7387893c2e1a637dfe5bfa9417923fcd1cd3bcde77058b954b3ae.png", "imageSmallUrl": "https://metadata.mobula.io/assets/logos/7918164b5dc7387893c2e1a637dfe5bfa9417923fcd1cd3bcde77058b954b3ae.png", "imageThumbUrl": "https://metadata.mobula.io/assets/logos/7918164b5dc7387893c2e1a637dfe5bfa9417923fcd1cd3bcde77058b954b3ae.png", "name": "The Black Bull", "symbol": "ANSEM", "totalSupply": 1000000000 }, "socialLinks": null, "launchpad": { "launchpadName": null, "launchpadIconUrl": null, "graduationPercent": 0 } } } ], "meta": { "observedAt": 1793069283288, "ageMs": 40, "source": "fresh", "parts": { "tokenList": { "observedAt": 1793069283288, "source": "fresh" } } } } } } }, "400": { "description": "{ error, message } for a bad chain, address, handle or query; unknown_parameter (with parameter and allowed) for a query key the route does not take" }, "402": { "description": "Payment Required; x4o2-free-key extension describes free key signup and Authorization header" }, "404": { "description": "unknown_handle: no FOMO user with that handle" }, "409": { "description": "payment_in_flight: the same x402 payment is already being used by another request" }, "429": { "description": "Free key over its limit: minute_quota_exceeded, daily_quota_exceeded (resets 00:00 UTC) or free_tier_paused; honour Retry-After or pay per call; upgrade includes price, networks, payment instructions, discovery, docs and UTC daily reset. Link points to docs. Free-key responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for minute and day windows" }, "502": { "description": "unavailable: FOMO answered with an error; retry shortly" }, "503": { "description": "busy or unavailable: temporarily out of upstream capacity; honour Retry-After or pass stale=1" } } ``` - [GET /v1/search](https://fomo.x4o2.com/v1/search): Search tokens on FOMO by name, ticker or address (0.001 USD via x402) FOMO's token search across the chains it trades: matches name, symbol or address and returns each token's address, network id, metadata and market data. Use to resolve a name or ticker to a chain and address for the /v1/token routes. Paid: 0.001 USDC per call via x402 (Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)). Unpaid requests receive 402 with payment requirements. Request body: ```json {} ``` Parameters: ```json [ { "name": "maxAge", "in": "query", "required": false, "schema": { "type": "integer", "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "minimum": 0 }, "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "example": "5" }, { "name": "stale", "in": "query", "required": false, "schema": { "type": "integer", "description": "1 returns any cached copy immediately and refreshes in the background", "enum": [ 0, 1 ] }, "description": "1 returns any cached copy immediately and refreshes in the background", "example": "0" }, { "name": "q", "in": "query", "required": false, "schema": { "type": "string", "description": "Name, ticker or address, up to 100 characters" }, "description": "Name, ticker or address, up to 100 characters", "example": "cate" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of entries, 1-100", "minimum": 1, "maximum": 100, "default": 20 }, "description": "Number of entries, 1-100", "example": "20" } ] ``` Responses (schemas and captured examples): ```json { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": [ "array", "null" ], "items": { "type": [ "object", "null" ], "properties": { "change24": { "type": [ "string", "null" ] }, "createdAt": { "type": [ "number", "null" ] }, "holders": { "type": [ "number", "null" ] }, "liquidity": { "type": [ "string", "null" ] }, "marketCap": { "type": [ "string", "null" ] }, "priceUSD": { "type": [ "string", "null" ] }, "volume24": { "type": [ "string", "null" ] }, "token": { "type": [ "object", "null" ], "properties": { "address": { "type": [ "string", "null" ] }, "decimals": { "type": [ "number", "null" ] }, "networkId": { "type": [ "number", "null" ] }, "name": { "type": [ "string", "null" ] }, "symbol": { "type": [ "string", "null" ] }, "info": { "type": [ "object", "null" ], "properties": { "circulatingSupply": { "type": [ "string", "null" ] }, "id": { "type": [ "string", "null" ] }, "imageLargeUrl": { "type": [ "string", "null" ] }, "imageSmallUrl": { "type": [ "string", "null" ] }, "imageThumbUrl": { "type": [ "string", "null" ] }, "name": { "type": [ "string", "null" ] }, "symbol": { "type": [ "string", "null" ] }, "totalSupply": { "type": [ "string", "null" ] } } }, "socialLinks": { "type": [ "object", "null" ], "properties": { "discord": {}, "telegram": { "type": [ "string", "null" ] }, "twitter": { "type": [ "string", "null" ] }, "website": { "type": [ "string", "null" ] } } }, "launchpad": { "type": [ "object", "null" ], "properties": { "launchpadName": { "type": [ "string", "null" ] }, "launchpadIconUrl": { "type": [ "string", "null" ] }, "graduationPercent": { "type": [ "number", "null" ] } } } } } } } }, "meta": { "type": "object", "description": "Freshness of the response", "properties": { "observedAt": { "type": "integer", "description": "Unix ms when the oldest part was observed upstream" }, "ageMs": { "type": "integer", "description": "Age of the oldest part when served, ms" }, "source": { "type": "string", "enum": [ "cache", "fresh", "stale" ] }, "parts": { "type": "object", "description": "observedAt and source per upstream part" } }, "required": [ "observedAt", "ageMs", "source" ] } }, "required": [ "data", "meta" ] }, "example": { "data": [ { "change24": "-0.06718606218800116", "createdAt": 1785083564, "holders": 144672, "liquidity": "1330467.735606206", "marketCap": "44299891.45289496", "priceUSD": "0.04594730845954886", "volume24": "1952427.280316228", "token": { "address": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump", "decimals": 6, "networkId": 1399811149, "name": "Cate", "symbol": "CATE", "info": { "circulatingSupply": "964145516.63882", "id": "Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump:1399811149", "imageLargeUrl": "https://metadata.mobula.io/assets/logos/solana_solana_Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump.webp", "imageSmallUrl": "https://metadata.mobula.io/assets/logos/solana_solana_Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump.webp", "imageThumbUrl": "https://metadata.mobula.io/assets/logos/solana_solana_Ai66LHZG9MCzg1WKdawwqduVAXpNDUuV8M3uyq5ppump.webp", "name": "Cate", "symbol": "CATE", "totalSupply": "964145516.63882" }, "socialLinks": { "discord": null, "telegram": "https://t.me/catecoin_telegram", "twitter": "https://x.com/i/communities/2004330768022004131", "website": "https://cate.meme/" }, "launchpad": { "launchpadName": "Pump.fun", "launchpadIconUrl": "https://metadata.mobula.io/assets/logos/factory_pumpfun.webp", "graduationPercent": 0 } } }, { "change24": "0.10586317453223529", "createdAt": 1787439044, "holders": 5087, "liquidity": "30865.87767872578", "marketCap": "282514.30412061606", "priceUSD": "0.00029156812989155034", "volume24": "5251.572512334135", "token": { "address": "DDVUsN8sDFxbaX6gNBoD44kjZhFETWJnwAn4EX1dpump", "decimals": 6, "networkId": 1399811149, "name": "Baby Catecoin", "symbol": "BABYCATE", "info": { "circulatingSupply": "968947820.962799", "id": "DDVUsN8sDFxbaX6gNBoD44kjZhFETWJnwAn4EX1dpump:1399811149", "imageLargeUrl": "https://metadata.mobula.io/assets/logos/solana_solana_DDVUsN8sDFxbaX6gNBoD44kjZhFETWJnwAn4EX1dpump.webp", "imageSmallUrl": "https://metadata.mobula.io/assets/logos/solana_solana_DDVUsN8sDFxbaX6gNBoD44kjZhFETWJnwAn4EX1dpump.webp", "imageThumbUrl": "https://metadata.mobula.io/assets/logos/solana_solana_DDVUsN8sDFxbaX6gNBoD44kjZhFETWJnwAn4EX1dpump.webp", "name": "Baby Catecoin", "symbol": "BABYCATE", "totalSupply": "968947820.962799" }, "socialLinks": { "discord": null, "telegram": "https://t.me/BABYCATEOnPump", "twitter": "https://x.com/BABYCATEOnPump", "website": "https://babycate.online/" }, "launchpad": { "launchpadName": "Pump.fun", "launchpadIconUrl": "https://metadata.mobula.io/assets/logos/factory_pumpfun.webp", "graduationPercent": 0 } } } ], "meta": { "observedAt": 1793069283352, "ageMs": 283, "source": "fresh", "parts": { "search": { "observedAt": 1793069283352, "source": "fresh" } } } } } } }, "400": { "description": "{ error, message } for a bad chain, address, handle or query; unknown_parameter (with parameter and allowed) for a query key the route does not take" }, "402": { "description": "Payment Required; x4o2-free-key extension describes free key signup and Authorization header" }, "404": { "description": "unknown_handle: no FOMO user with that handle" }, "409": { "description": "payment_in_flight: the same x402 payment is already being used by another request" }, "429": { "description": "Free key over its limit: minute_quota_exceeded, daily_quota_exceeded (resets 00:00 UTC) or free_tier_paused; honour Retry-After or pay per call; upgrade includes price, networks, payment instructions, discovery, docs and UTC daily reset. Link points to docs. Free-key responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for minute and day windows" }, "502": { "description": "unavailable: FOMO answered with an error; retry shortly" }, "503": { "description": "busy or unavailable: temporarily out of upstream capacity; honour Retry-After or pass stale=1" } } ``` - [GET /v1/feed](https://fomo.x4o2.com/v1/feed): FOMO's social feed: large buys and sells, multi-trader buys, new listings, theses and profit milestones (0.001 USD via x402) The event feed FOMO shows its users: large buys and sells, several traders buying or selling the same token, new token listings, price since listing, new theses, trader profit milestones and smart-following signals. types= narrows it to some event types (FOMO always adds its pinned manual post); page back with cursor. Newest first, usually minutes old. Use as a stream of social trading signals and large trades by FOMO traders. Paid: 0.001 USDC per call via x402 (Base (eip155:8453) or Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp)). Unpaid requests receive 402 with payment requirements. Request body: ```json {} ``` Parameters: ```json [ { "name": "maxAge", "in": "query", "required": false, "schema": { "type": "integer", "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "minimum": 0 }, "description": "Serve a cached copy up to this many seconds old; 0 forces the freshest allowed", "example": "5" }, { "name": "stale", "in": "query", "required": false, "schema": { "type": "integer", "description": "1 returns any cached copy immediately and refreshes in the background", "enum": [ 0, 1 ] }, "description": "1 returns any cached copy immediately and refreshes in the background", "example": "0" }, { "name": "types", "in": "query", "required": false, "schema": { "type": "string", "description": "Comma-separated event types: large_buy, large_sell, large_transfer_in, large_transfer_out, single_user_transfer_out, single_user_sell, thesis_created, multi_user_buy, multi_user_sell, new_token_listing, price_since_listing, user_trade_profit_milestone, user_with_smart_following, manual" }, "description": "Comma-separated event types: large_buy, large_sell, large_transfer_in, large_transfer_out, single_user_transfer_out, single_user_sell, thesis_created, multi_user_buy, multi_user_sell, new_token_listing, price_since_listing, user_trade_profit_milestone, user_with_smart_following, manual", "example": "large_buy,large_sell" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "description": "Number of entries, 1-100", "minimum": 1, "maximum": 100, "default": 50 }, "description": "Number of entries, 1-100", "example": "50" }, { "name": "cursor", "in": "query", "required": false, "schema": { "type": "string", "description": "nextCursor from the previous page" }, "description": "nextCursor from the previous page" } ] ``` Responses (schemas and captured examples): ```json { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "data": { "type": [ "object", "null" ], "properties": { "feed": { "type": [ "array", "null" ], "items": { "type": [ "object", "null" ], "properties": { "id": { "type": [ "string", "null" ] }, "userId": { "type": [ "string", "null" ] }, "tradeId": { "type": [ "string", "null" ] }, "swapId": {}, "transferId": {}, "tokenAddress": { "type": [ "string", "null" ] }, "networkId": { "type": [ "number", "null" ] }, "createdAt": { "type": [ "string", "null" ] }, "body": { "type": [ "object", "null" ], "properties": { "fdv": { "type": [ "number", "null" ] }, "tag": {}, "price": { "type": [ "number", "null" ] }, "ticker": { "type": [ "string", "null" ] }, "userId": { "type": [ "string", "null" ] }, "avgCost": { "type": [ "number", "null" ] }, "numSwaps": { "type": [ "number", "null" ] }, "marketCap": { "type": [ "string", "null" ] }, "isFirstBuy": { "type": [ "boolean", "null" ] }, "percentPnl": { "type": [ "number", "null" ] }, "userHandle": { "type": [ "string", "null" ] }, "displayName": { "type": [ "string", "null" ] }, "userImageUrl": {}, "inHumanAmount": { "type": [ "number", "null" ] }, "tokenImageUrl": { "type": [ "string", "null" ] }, "currentSizeUsd": { "type": [ "number", "null" ] }, "inTokenAddress": { "type": [ "string", "null" ] }, "outHumanAmount": { "type": [ "number", "null" ] }, "realizedPnlUsd": { "type": [ "number", "null" ] }, "outTokenAddress": { "type": [ "string", "null" ] }, "humanTokenAmount": { "type": [ "number", "null" ] }, "link": {}, "title": { "type": [ "string", "null" ] }, "anchorText": {}, "description": { "type": [ "string", "null" ] } } }, "verified": { "type": [ "boolean", "null" ] }, "likes": { "type": [ "number", "null" ] }, "views": { "type": [ "number", "null" ] }, "type": { "type": [ "string", "null" ] }, "pinned": { "type": [ "boolean", "null" ] }, "twitter": {}, "reacted": { "type": [ "boolean", "null" ] } } } }, "nextCursor": { "type": [ "string", "null" ] } } }, "meta": { "type": "object", "description": "Freshness of the response", "properties": { "observedAt": { "type": "integer", "description": "Unix ms when the oldest part was observed upstream" }, "ageMs": { "type": "integer", "description": "Age of the oldest part when served, ms" }, "source": { "type": "string", "enum": [ "cache", "fresh", "stale" ] }, "parts": { "type": "object", "description": "observedAt and source per upstream part" } }, "required": [ "observedAt", "ageMs", "source" ] } }, "required": [ "data", "meta" ] }, "example": { "data": { "feed": [ { "id": "6119f6e8-ac03-4c69-8934-bc27280bc3d3", "userId": null, "tradeId": null, "swapId": null, "transferId": null, "tokenAddress": null, "networkId": null, "createdAt": "2026-10-26T19:49:00.000Z", "body": { "link": null, "title": "Recap: October 25th, 2026", "anchorText": null, "description": "• As consolidation continues across the broad market and [$BTC](token://base/0xcbb7c0000ab88b473b1f5afd9ef808440eed33...", "displayName": "fomo" }, "verified": false, "likes": 16, "views": 0, "type": "manual", "pinned": true, "twitter": null, "reacted": false }, { "id": "64da5f8d-27c5-5b42-9716-e1cde0d5c82a", "userId": "94bf78e0-7500-57b1-8381-e26fa07d6e3b", "tradeId": "c104edc2-0c5b-4e5a-80b5-3c796c53dfdc", "swapId": null, "transferId": null, "tokenAddress": "nxPqZ4F7ux8Vph5NFu25rEP6Kx9Gr1U6Fmj36Rjpump", "networkId": 1399811149, "createdAt": "2026-10-27T02:46:55.000Z", "body": { "fdv": 9804490, "tag": null, "price": 0.010174493032, "ticker": "Dacity", "userId": "94bf78e0-7500-57b1-8381-e26fa07d6e3b", "avgCost": 0.0101129, "numSwaps": 2, "marketCap": "9804490", "isFirstBuy": false, "percentPnl": -1.24541, "userHandle": "ohherro", "displayName": "AHMYGAT", "userImageUrl": null, "inHumanAmount": 155633.99, "tokenImageUrl": "https://token-media.defined.fi/1399811149_nxPqZ4F7ux8Vph5NFu25rEP6Kx9Gr1U6Fmj36Rjpump_small_f8c8de71a303.png", "currentSizeUsd": 0, "inTokenAddress": "nxPqZ4F7ux8Vph5NFu25rEP6Kx9Gr1U6Fmj36Rjpump", "outHumanAmount": 1554.31, "realizedPnlUsd": -19.6016, "outTokenAddress": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "humanTokenAmount": 0 }, "verified": false, "likes": 0, "views": 0, "type": "large_sell", "pinned": false, "twitter": null, "reacted": false } ], "nextCursor": "6ab734bf-510e-5a8f-97db-354721ddff53" }, "meta": { "observedAt": 1793069283669, "ageMs": 58, "source": "fresh", "parts": { "feed": { "observedAt": 1793069283669, "source": "fresh" } } } } } } }, "400": { "description": "{ error, message } for a bad chain, address, handle or query; unknown_parameter (with parameter and allowed) for a query key the route does not take" }, "402": { "description": "Payment Required; x4o2-free-key extension describes free key signup and Authorization header" }, "404": { "description": "unknown_handle: no FOMO user with that handle" }, "409": { "description": "payment_in_flight: the same x402 payment is already being used by another request" }, "429": { "description": "Free key over its limit: minute_quota_exceeded, daily_quota_exceeded (resets 00:00 UTC) or free_tier_paused; honour Retry-After or pay per call; upgrade includes price, networks, payment instructions, discovery, docs and UTC daily reset. Link points to docs. Free-key responses include RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset for minute and day windows" }, "502": { "description": "unavailable: FOMO answered with an error; retry shortly" }, "503": { "description": "busy or unavailable: temporarily out of upstream capacity; honour Retry-After or pass stale=1" } } ``` ## Shared schemas ```json { "schemas": { "Meta": { "type": "object", "description": "Freshness of the response", "properties": { "observedAt": { "type": "integer", "description": "Unix ms when the oldest part was observed upstream" }, "ageMs": { "type": "integer", "description": "Age of the oldest part when served, ms" }, "source": { "type": "string", "enum": [ "cache", "fresh", "stale" ] }, "parts": { "type": "object", "description": "observedAt and source per upstream part" } }, "required": [ "observedAt", "ageMs", "source" ] } }, "securitySchemes": { "apiKey": { "type": "http", "scheme": "bearer", "description": "Free API key from https://x4o2.com/keys (email login): 60 requests a minute and 1,000 a UTC day per key and service, served while the service has spare capacity, else 429 (minute_quota_exceeded, daily_quota_exceeded, free_tier_paused) with Retry-After; paid x402 requests always go through." } } } ```