Skip to content

Build on top
of Fomo.

Profiles, Trade Theses, token activity and realtime events through one clean API.

Profiles.Theses.Activity.Realtime.One API.

Free sandbox. No card required.

Private beta · Live data access by approval. Sandbox keys are available immediately.

theses.ts
import { FomoData } from "@fomodata/sdk";

const fomo = new FomoData({
  apiKey: process.env.FOMODATA_API_KEY
});

const theses = await fomo.theses.list({
  token: "$RUN",
  since: "1h"
});
→ { object: "list", data: [ … ], has_more }
npm install https://fomodata.dev/sdk/fomodata-sdk-0.1.0.tgz

npm package coming soon. This installs the same build from this server.

  • Profiles
  • Theses
  • Tokens
  • Search
  • Streams
  • Webhooks
  • SDK
  • Verify

The data layer

Four resources.
One connected picture.

Follow a profile to its theses, a thesis to its token, and a token to its activity. Shared IDs keep that context together across the REST API.

Identity & context

Profiles

Resolve a handle into a consistent profile. Public metadata, stable IDs and freshness fields, ready for your app.

GET/v1/profiles/@sbx_miloSandbox
{ "object": "profile",
  "handle": "@sbx_milo",
  "source": "sandbox" }
GET/profiles/{handle}Read Profiles documentation
Posts & perspectives

Trade Theses

Find what people are posting about. Filter by token, author, chain and time, then paginate with cursors.

GET/v1/theses?token=$RUN&since=1hSandbox
{ "object": "list",
  "data": [ { "object": "thesis", … } ],
  "has_more": false }
GET/thesesRead Trade Theses documentation
Activity & discovery

Tokens

Connect a token to its thesis activity. Explore recent posts, unique authors and changes in posting velocity.

GET/v1/tokens/$RUN/activitySandbox
{ "object": "token_activity",
  "thesis_count_1h": 7,
  "unique_authors_24h": 5 }
GET/tokens/{ref}/activityRead Tokens documentation
Full-text search

Search

Search across theses, profiles and tokens in the authorized index. One query, structured results.

GET/v1/search?q=raceSandbox
{ "object": "search_result",
  "theses": [ … ], "profiles": [ … ],
  "tokens": [ … ] }
GET/searchRead Search documentation
Stable schemas. Cursor pagination. Test and live environments.https://fomodata.dev/v1

Project dashboard

Know what your
integration is doing.

Create keys, inspect requests and see your usage without leaving your project.

  • Scoped keys, shown once
  • Separate test and live environments
Create your workspace
My first projectIllustrative workspace

API keys

2 sample keys

Local development

fd_test_Ab12••••••
TEST

Production backend

fd_live_Qx9K••••••
LIVE

Recent requests

GET/v1/theses200
POST/v1/verify/thesis200
GET/v1/profiles/{ref}404

Thesis verification

Verify a thesis.
See the evidence.

POST /v1/verify/thesis

Check whether a handle posted about a token within a time window. Get a clear result, the matching thesis and the checks behind it.

Useful for quest entries, community contests and participation rules. Verification confirms that a thesis exists; it doesn't judge the quality of the idea.

Explore verification
Verification resultSandbox example

Thesis verified

reason: VERIFIED

Profile
@sbx_milo
Token
$RUN
Posted within the requested window
07 Oct 2026 · 10:04:12 UTC
  • Identity matched
  • Token matched
  • Inside the time window
  • Thesis exists
  • Not marked deleted
POST /v1/verify/thesislivemode: false

https://fomodata.dev/v1/verify/thesis

Realtime delivery

Turn an event
into an action.

A new thesis, a profile update, a change in token activity. Bring those events into your product through the channel that fits.

Resume with a cursorVerify webhook signatures
One event format. Every channel.Sandbox preview
wss://visits-taking-trademark-corner.trycloudflare.com/v1/streamSandbox

→ {"action":"subscribe","events":["thesis.created","token.activity","token.thesis_velocity","profile.updated"]}

← {"type":"subscribed","subscription_id":"ssub_…"}

  • #1040thesis.created@sbx_milo$RUN

    Sandbox thesis: course looks fast today.

  • #1041thesis.created@sbx_juno$SEEK

    Sandbox thesis: hiding spots are getting crowded.

  • #1042token.activity$RUN

    theses_1h=7 · unique_authors_24h=5

  • #1043thesis.created@sbx_pixel$ART

    Sandbox thesis: canvas fills up before noon.

  • #1044thesis.created@sbx_rio$RUN

    Sandbox thesis: entering the next heat.

livemode: false · source: "sandbox"

Stable event IDs make duplicates recognizable. Reconnect or replay a delivery without losing its identity.

What you can build

From data to applications.

Games with thesis entry, bots, dashboards and alerts. If it runs on Fomo activity, it starts with one request.

Thesis-entry games like

  • FomoSeek
  • FomoRun
  • FomoRace
  • FomoTag
  • FomoCraft
  • FomoArt

And everything around them

  • Community bots
  • Live dashboards
  • Thesis alerts
  • Quest verification
  • Leaderboards
  • Token analytics
  • Research tools
  • Games & quests

Authorized data only

Clear data.
Clear boundaries.

Read about our data

Know the source

Live data availability depends on provider authorization. Sandbox fixtures remain available. No scraping, private messages, balances or PnL.

Control your access

Scope keys to what your app needs. Live access is reviewed per project, separate from your test environment.

Test with confidence

Sandbox access starts at sign-up. Test responses are clearly labeled with their source and livemode: false.

  • Sandbox keysAvailable now
  • Live dataBy approval
  • Semantic searchComing soon
  • WalletsUnavailable

Quickstart

Your first request
starts here.

Try the full request flow with sandbox data. The same SDK works with live keys once your project has access.

  1. Create a test key

    Create your account, then save your key as FOMODATA_API_KEY. It's shown once.

  2. Install the TypeScript SDK

    Use the downloadable SDK build, or call REST directly. The npm package is coming soon.

  3. Fetch a profile

    Run the example with your test key to retrieve the sandbox profile @sbx_milo.

Follow the quickstart
TypeScript or plain HTTP
Install
npm install https://fomodata.dev/sdk/fomodata-sdk-0.1.0.tgz
import { FomoData } from "@fomodata/sdk";

const fomo = new FomoData({ apiKey: process.env.FOMODATA_API_KEY! });

const profile = await fomo.profiles.get("@sbx_milo");

console.log(profile.handle);
// "@sbx_milo"
Typed responsesOpenAPI specificationSandbox included

KeyYour project starts with a key

Put Fomo data to work.

Create a test key, make your first request, and connect the response to your app.