Skip to content
API reference · Search

Search

GEThttps://fomodata.dev/v1/search
Scopes:search:readRate class:searchFlag:SEARCH_API_ENABLED

Full-text search over FomoData's local index of authorized data: theses (ranked by relevance), profiles (handle prefix, display name) and tokens (symbol prefix, name). Searches are never proxied to Fomo. Thesis results respect your plan's history window.

Live keys read real Fomo data FomoData ingested from its authorized upstream; test keys read clearly-labelled sandbox data (livemode: false, source: "sandbox").

Example request

curl 'https://fomodata.dev/v1/search?q=ai%20agents&types=theses,profiles,tokens' \
  -H "Authorization: Bearer $FOMODATA_API_KEY"

Parameters

Query parameters
qstringrequired
Search text. @handle and $SYMBOL prefixes are understood.
typesstring
Comma-separated subset of theses,profiles,tokens (default all).
limitinteger
Page size, 1–50 (default 10).

Response

200 Search results grouped by type

application/jsonSearchResult
  • objectenumrequired"search_result"
  • querystringrequired
  • 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
  • profilesarray<Profile>required+ 16 child attributes
    • objectenumrequired"profile"
    • idstringrequired
    • handlestringrequired
    • display_namestring | nullrequired
    • avatar_urlstring (uri) | nullrequired
    • profile_urlstring (uri) | nullrequired
    • biostring | nullrequired
    • verifiedboolean | nullrequired
    • sourceenumrequiredWhere the data came from. sandbox = clearly-labelled test fixtures."fomo""sandbox"
    • livemodebooleanrequired
    • created_atstring (date-time) | nullrequiredAccount creation time upstream, when known.
    • first_seen_atstring (date-time)requiredWhen FomoData first observed this profile.
    • updated_atstring (date-time)required
    • source_updated_atstring (date-time) | nullrequired
    • staleboolean
    • walletobjectOnly present when the Wallets API is enabled and the association is public/authorized.+ 2 child attributes
      • addressstringrequired
      • networkstringrequired
  • tokensarray<Token>required+ 20 child attributes
    • objectenumrequired"token"
    • idstringrequired
    • symbolstringrequired
    • namestring | nullrequired
    • chainstringrequired
    • chain_idinteger | nullrequired
    • addressstringrequired
    • logo_urlstring (uri) | nullrequired
    • fomo_urlstring (uri) | nullrequired
    • thesis_countintegerrequiredTheses FomoData has ingested for this token (see metrics_scope).
    • unique_thesis_authorsintegerrequired
    • recent_thesis_countintegerrequiredTheses in the last 24 hours.
    • first_seen_atstring (date-time)required
    • last_activity_atstring (date-time) | nullrequired
    • metrics_scopeenumrequiredCounts cover theses FomoData has observed since first_seen_at — not Fomo's all-time totals."ingested"
    • sourceenumrequiredWhere the data came from. sandbox = clearly-labelled test fixtures."fomo""sandbox"
    • livemodebooleanrequired
    • updated_atstring (date-time)required
    • source_updated_atstring (date-time) | nullrequired
    • staleboolean
  • livemodebooleanrequired
200 · example
{
  "object": "search_result",
  "query": "string",
  "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
    }
  ],
  "profiles": [
    {
      "object": "profile",
      "id": "fp_4KZq8mXw2T0aN6rB1cYd9E",
      "handle": "@milo",
      "display_name": "Milo",
      "avatar_url": "https://example.com",
      "profile_url": "https://fomo.family/profile/milo",
      "bio": "string",
      "verified": true,
      "source": "fomo",
      "livemode": true,
      "created_at": "2026-10-07T10:04:12.000Z",
      "first_seen_at": "2026-10-07T10:04:12.000Z",
      "updated_at": "2026-10-07T10:04:12.000Z",
      "source_updated_at": "2026-10-07T10:04:12.000Z",
      "stale": true,
      "wallet": {
        "address": "string",
        "network": "evm"
      }
    }
  ],
  "tokens": [
    {
      "object": "token",
      "id": "string",
      "symbol": "$RUN",
      "name": "string",
      "chain": "robinhood",
      "chain_id": 4663,
      "address": "string",
      "logo_url": "https://example.com",
      "fomo_url": "https://example.com",
      "thesis_count": 0,
      "unique_thesis_authors": 0,
      "recent_thesis_count": 0,
      "first_seen_at": "2026-10-07T10:04:12.000Z",
      "last_activity_at": "2026-10-07T10:04:12.000Z",
      "metrics_scope": "ingested",
      "source": "fomo",
      "livemode": true,
      "updated_at": "2026-10-07T10:04:12.000Z",
      "source_updated_at": "2026-10-07T10:04:12.000Z",
      "stale": true
    }
  ],
  "livemode": true
}

Errors

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

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