Get started
Quickstart
1 · Create a key
- Sign in with a wallet: you sign one message — no transaction, no funds moved, no password.
- Open API and create a live key. Pick the scopes you need — for this guide
tokens:readandsignals:read. - Copy it now: the full key is shown once.
export FOMOQUANT_API_KEY="fq_live_…" # paste your key2 · Call the API
Check which key you are using, then fetch a token's quant snapshot. Any symbol from the tokens list works.
curl https://fomoquant.app/v1/key -H "Authorization: Bearer $FOMOQUANT_API_KEY"
curl https://fomoquant.app/v1/quant/token/XYZ -H "Authorization: Bearer $FOMOQUANT_API_KEY"scores holds the plain numbers; score_details explains each one: drivers whose points add up to the value, the raw feature behind each driver, a confidence level with its sample size and basis, and the model version.
{
"object": "token_quant",
"dataset": "live",
"livemode": true,
"token": {
"object": "token",
"id": "tk_4f8k2m9q1x7c3v5b6n0d",
"dataset": "live",
"symbol": "XYZ",
"name": "Xyzzy Agents",
"chain": "base",
"address": "0x1111111111111111111111111111111111111111",
"logo_url": null,
"status": "active",
"narrative": { … },
"fomo_url": null,
"livemode": true
},
"timestamp": "2026-10-10T12:00:00.000Z",
"scores": {
"momentum": 66,
"conviction": 51,
"crowding": 24,
"early_quality": 76,
"narrative_velocity": 64,
"divergence": 45,
"smart_cohort": 58
},
"score_details": {
"momentum": {
"object": "score",
"key": "momentum",
"value": 66,
"display": "66",
"drivers": [
{
"key": "thesis_velocity",
"label": "Thesis velocity",
"points": 23,
"raw": 2.18,
"display": "+218%",
"percentile": null,
"note": "14 theses in the last hour vs a 7-day baseline of 4.4/h"
},
{
"key": "unique_author_growth",
"label": "Unique author growth",
"points": 13,
"raw": 0.714,
"display": "+71%",
"percentile": null,
"note": "12 authors this hour vs 7 the hour before"
},
{
"key": "acceleration",
"label": "Acceleration",
"points": 15,
"raw": 1.333,
"display": "+133%",
"percentile": null,
"note": "14 vs 6 theses in the prior hour"
},
{
"key": "persistence",
"label": "Mention persistence",
"points": 15,
"raw": 18,
"display": "18 / 24 hours active",
"percentile": null
}
],
"confidence": {
"level": "HIGH",
"sample_size": 37,
"basis": "37 theses · 26 authors in 24h",
"details": {
"theses_24h": 37,
"unique_authors_24h": 26,
"theses_1h": 14
}
},
"model_version": "momentum-v1.0",
"summary": "Attention is accelerating."
},
"conviction": { … },
"crowding": { … },
"early_quality": { … },
"narrative_velocity": { … },
"divergence": { … },
"smart_cohort": { … }
},
"divergence_state": "EARLY_SOCIAL",
"signals": [ … ],
"market": { … },
"activity": { … },
"features": { … },
"analogs": { … },
"model_versions": { … },
"freshness": { … }
}Rate-limit state comes back on every response (RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset). Errors are JSON: {"error": {"code", "message", "request_id"}} — see the API reference.
3 · Use the SDK
@fomoquant/sdk is a zero-dependency, fully typed client for Node ≥ 22, Bun, Deno and edge runtimes. Responses are typed snake_case objects identical to the REST JSON.
pnpm add @fomoquant/sdkimport { FomoQuant } from "@fomoquant/sdk";
const fq = new FomoQuant({ apiKey: process.env.FOMOQUANT_API_KEY!, baseUrl: "https://fomoquant.app" });
const xyz = await fq.tokens.get("$XYZ");
const m = xyz.score_details.momentum!;
console.log(`Momentum ${m.value} (${m.confidence.level}: ${m.confidence.basis}) · ${m.model_version}`);
for (const d of m.drivers) console.log(` ${d.label.padEnd(24)} ${d.display.padStart(10)} +${d.points}`);
// Data quality is never hidden
if (xyz.freshness?.stale) console.warn(xyz.freshness.stale_reasons.join("; "));
// Active signals across all pages
for await (const s of fq.signals.iterate({ status: "active" })) {
console.log(s.token.symbol, s.label, s.why.join(" · "));
}Realtime and webhooks
Subscribe to signal.created, score.updated, cohort.convergence and narrative.shift over the WebSocket stream (scope stream:read), or receive signed webhooks on your server.
const stream = fq.stream({
events: ["signal.created", "score.updated"],
tokens: ["$XYZ"],
onEvent(ev) {
if (ev.event === "signal.created") console.log(ev.data.token.symbol, ev.data.label, ev.data.why);
},
});Next: read how each score is built in Scores, or browse every endpoint in the API reference.
FomoQuant provides analytics and historical/statistical context, not financial advice or guaranteed predictions.