Skip to content
API reference · Tokens

Token activity

GEThttps://fomodata.dev/v1/tokens/{ref}/activity
Scopes:tokens:readRate class:standardFlag:TOKENS_API_ENABLED

Recent theses, unique posters and an hourly timeline for the last 24 hours.

All counts are derived from theses FomoData ingested from its authorized upstream since first_seen_at (metrics_scope: "ingested") — not Fomo's all-time totals.

Example request

curl 'https://fomodata.dev/v1/tokens/$RUN/activity?chain=robinhood&recent=10' \
  -H "Authorization: Bearer $FOMODATA_API_KEY"

Parameters

Path parameters
refstringrequired
Token reference: tk_… id, contract/mint address, chain:address, $RUN or RUN (case-insensitive). A symbol on several chains returns 409 AMBIGUOUS_TOKEN — pass ?chain= or the address.
Query parameters
chainstring
Narrow to one chain, e.g. robinhood, solana, base. Test keys: sandbox.
recentinteger
How many recent theses to include (1–50, default 10).

Response

200 Token activity

application/jsonTokenActivity
  • objectenumrequired"token_activity"
  • tokenobjectrequired+ 5 child attributes
    • idstringrequired
    • symbolstringrequired
    • namestring | nullrequired
    • chainstringrequired
    • addressstringrequired
  • thesis_count_1hintegerrequired
  • thesis_count_24hintegerrequired
  • unique_authors_24hintegerrequired
  • last_activity_atstring (date-time) | nullrequired
  • timelinearray<object>requiredHourly buckets, newest last, last 24h.+ 3 child attributes
    • bucket_startstring (date-time)required
    • thesesintegerrequired
    • unique_authorsintegerrequired
  • recent_thesesarray<Thesis>required+ 12 child attributes
    • objectenumrequired"thesis"
    • idstringrequired
    • profileobjectrequired+ 4 child attributes
      • idstringrequired
      • handlestringrequired
      • display_namestring | nullrequired
      • avatar_urlstring (uri) | nullrequired
    • tokenobjectrequired+ 5 child attributes
      • idstringrequired
      • symbolstringrequired
      • namestring | nullrequired
      • chainstringrequired
      • addressstringrequired
    • textstringrequired
    • public_urlstring (uri) | nullrequiredFomo exposes no public per-thesis permalink today, so this is null unless one becomes available.
    • likesinteger | nullrequired
    • repliesinteger | nullrequired
    • created_atstring (date-time)required
    • updated_atstring (date-time)required
    • sourceenumrequiredWhere the data came from. sandbox = clearly-labelled test fixtures."fomo""sandbox"
    • livemodebooleanrequired
  • metrics_scopeenumrequired"ingested"
  • livemodebooleanrequired
  • computed_atstring (date-time)required
200 · example
{
  "object": "token_activity",
  "token": {
    "id": "tk_9bF2kLmQ0sVx7RtY3nHc1A",
    "symbol": "$RUN",
    "name": "Run",
    "chain": "robinhood",
    "address": "0x5a4d1f3c0f6e2b8d9a7c4e1f0b3d6a9c2e5f8a1b"
  },
  "thesis_count_1h": 0,
  "thesis_count_24h": 0,
  "unique_authors_24h": 0,
  "last_activity_at": "2026-10-07T10:04:12.000Z",
  "timeline": [
    {
      "bucket_start": "2026-10-07T10:04:12.000Z",
      "theses": 0,
      "unique_authors": 0
    }
  ],
  "recent_theses": [
    {
      "object": "thesis",
      "id": "th_7Hq2LmZx9RkT4bVn0sYc3D",
      "profile": {
        "id": "fp_4KZq8mXw2T0aN6rB1cYd9E",
        "handle": "@milo",
        "display_name": "Milo",
        "avatar_url": "https://example.com"
      },
      "token": {
        "id": "tk_9bF2kLmQ0sVx7RtY3nHc1A",
        "symbol": "$RUN",
        "name": "Run",
        "chain": "robinhood",
        "address": "0x5a4d1f3c0f6e2b8d9a7c4e1f0b3d6a9c2e5f8a1b"
      },
      "text": "Course looks fast today. Running it back.",
      "public_url": "https://example.com",
      "likes": 0,
      "replies": 0,
      "created_at": "2026-10-07T10:04:12.000Z",
      "updated_at": "2026-10-07T10:04:12.000Z",
      "source": "fomo",
      "livemode": true
    }
  ],
  "metrics_scope": "ingested",
  "livemode": true,
  "computed_at": "2026-10-07T10:04:12.000Z"
}

Errors

StatusWhen
401Missing, invalid, revoked or expired API key
403Insufficient scope, live access not approved, or history limit
404Not found (or feature disabled)
409Conflict (e.g. ambiguous token symbol)
422Validation failed
429Rate limit or quota exceeded

All errors use the standard envelope. See error codes for every code value.