Skip to content
API reference · Search

Semantic search (coming soon)

Coming soon
POSThttps://fomodata.dev/v1/search/semantic
Scopes:search:readRate class:searchFlag:SEMANTIC_SEARCH_ENABLED

COMING SOON. Semantically relevant theses for a natural-language query, indexing only content authorized for search. Until semantic indexing ships this endpoint returns 404 FEATURE_DISABLED; use GET /v1/search for full-text search.

Not available yet

This endpoint is behind SEMANTIC_SEARCH_ENABLED, which is off on this deployment. Calls return 404 FEATURE_DISABLED.

Example request

curl -X POST 'https://fomodata.dev/v1/search/semantic' \
  -H "Authorization: Bearer $FOMODATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "query": "early AI infrastructure theses"
}'

Request body

application/jsonSemanticSearchRequest
  • querystringrequired
  • limitinteger
Example body
{
  "query": "early AI infrastructure theses"
}

Response

200 Search results (once available)

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.