API Reference

Base URL: https://api.n0brains.com · All responses are JSON · Timestamps are Unix epoch (seconds)

Quick Start

  1. Create an account — get your API key instantly
  2. Set the header X-API-Key on every request
  3. Hit GET /signals — you are done
curl -H "X-API-Key: intel_sk_your_key" https://api.n0brains.com/signals

Want to see how the signals are performing? Our live forward-test is at /proof.

For Agents

In a hurry? The Quickstart has copy-paste prompts — a free-tier one-liner and a full Pro/MCP agent. Or read on for the details.

n0brains is a plain HTTP API — no SDK, no install step. Point any agent (Claude Code, OpenClaw, LangChain, a custom orchestrator) at it by handing it the base URL and your key. One line in the agent's instructions:

Use the n0brains API at https://api.n0brains.com with X-API-Key intel_sk_your_key

Swap in your real key and that's the whole integration — the agent discovers the endpoints implicitly from the API's shape (full reference below). Base URL https://api.n0brains.com, auth header X-API-Key.

Optional: a structured skill file

Some runtimes prefer a structured skill file over a one-line instruction. n0brains-signals.md packages the same thing — frontmatter, every tool with examples, auth, error handling, behaviour rules — as a single Markdown file you drop in. The one-liner works just as well; this is for when you want it codified.

curl -O https://n0brains.com/openclaw/n0brains-signals.md

Download n0brains-signals.md ↓

RuntimeWhere it goesAuth
OpenClawdrop n0brains-signals.md into your agent's skills direnv NB_API_KEY
Claude Codecopy to ~/.claude/skills/n0brains-signals/SKILL.mdenv NB_API_KEY
Custom orchestratorload the .md as system context, or just use the one-lineryour secret store, key n0brains_api_key
Direct HTTP / TS clientskip the skill — use the endpoints below or the n0brains-ts clientheader X-API-Key

Prefer typed calls? The optional TypeScript client n0brains-ts (@n0brains/client) wraps every endpoint. Or the CLI for the shell, and the MCP server for Claude Desktop / Cursor / Cline.

Plans & Credits

Free and Pro are the two subscription tiers (rate limits above). Beyond your tier's included rate, you have two pay-as-you-go options:

OptionHow it worksAccount?
Pay-per-call credits One-time packs (from $5). A credit is spent only on a data call made beyond your tier's included rate limit — within your rate, calls stay free. Buy and track them in your account dashboard. Yes — card via Stripe
x402 Pay per request in USDC on Base, no signup. See /docs/x402. No — walletless

When you're out of credits and over your rate limit, data endpoints return 402 with a link to buy more. Within your rate limit, nothing is charged.

Authentication

All authenticated endpoints require an API key via the X-API-Key header. Keys are generated on registration and can be rotated via POST /auth/api-keys.

Login also returns a JWT token usable via Authorization: Bearer.

MethodHeaderExample
API KeyX-API-Keyintel_sk_a1b2c3...
JWT TokenAuthorizationBearer eyJhbGci...

Rate Limits

TierRequests/minSignal DelayAccess
Free6015 minutesREST API only, limited fields. MCP tools/list open for catalog discovery.
Pro600Real-timeREST + WebSocket + Webhooks + MCP server, full fields

Rate limit exceeded returns 429 with a message pointing to the upgrade page.

Endpoints

MethodPathAuthDescription
GET/healthNoneLiveness check
GET/signalsAPI KeyList active signals. Filter with ?asset=, ?signal_type=, ?urgency=, ?direction=, and ?asset_class= (crypto · stock · metal · commodity · index) to scope to crypto or the tokenized stock market
GET/signals/{id}API KeySingle signal detail
GET/signals/similarProSemantic nearest-neighbor search
GET/narrative/{coin}ProNarrative heatmap for asset
GET/manipulation/{coin}ProManipulation score for asset
GET/trust/{coin}ProTrust & scam score for token
GET/levels/{coin}API KeyS/R levels from Hyperliquid
GET/indicators/{coin}API KeyTechnical indicators — RSI, MACD, SMA/EMA (20/50/200 + 200-week), Stochastic, Fibonacci, trend/momentum read
GET/state/{coin}/briefProLLM-written prose analysis — current read, key + structural levels, macro/on-chain, technicals, outlook. The narrative layer over /state, grounded only in our data
GET/liquidation-map/{coin}API KeyCEX estimated liquidation-cluster zones (modeled from OI + leverage tiers)
GET/liqmap/{coin}API KeyDEX real on-chain liquidation map — actual positions with exact liq prices. Crypto (Hyperliquid + GMX) and the tokenized stock market via Hyperliquid HIP-3 (/liqmap/SP500, /liqmap/NVDA, /liqmap/GOLD, …)
GET/liquidation-heatmap/{coin}API KeyCEX liquidation heatmap — price×time intensity grid. ?days= (1–180), ?rows=, ?cols=
GET/liq-heatmap/{coin}API KeyDEX real-position liquidation heatmap — price×time grid (BTC/ETH)
GET/correlationAPI KeyCross-asset return-correlation matrix (7d). ?vs=BTC, ?coins=…
GET/correlation/{coin}API KeyOne coin's correlation + beta to BTC/ETH + peers
GET/rotationAPI KeyAltseason/rotation read — into_alts / into_btc / neutral
GET/options/{coin}API KeyOptions analytics (BTC/ETH): ATM IV, skew, term structure, max-pain
GET/sentiment/{coin}API KeyAggregate sentiment — net lean, volume, velocity (curated sources)
GET/mindshareAPI KeyAttention-share leaderboard — each asset's share + velocity (rising/falling)
GET/mindshare/{coin}API KeyOne coin's mindshare share, rank, velocity
GET/market-opensAPI KeySession opening prices
GET/price/{coin}NoneCurrent spot/mid price for one coin (Hyperliquid)
GET/prices?coins=BTC,ETH,SOLNoneBatch current prices in one call
GET/market-state/{coin}ProPer-coin proven-signal consensus — direction, confidence, regime, top drivers
GET/stateProUnified market state — regime + composite, macro pack, proven types, per-coin rollup in one call
GET/state/{coin}ProOne-call per-coin view — price, market-state, regime + composite, levels, technical indicators, liqmap target
GET/plan/{coin}ProAssembled trade plan — direction, entry, strongest target (strength-weighted, not nearest), stop, risk/reward, sizing hint, options context (put/call + skew), and warnings (max-pain timing against the trade, entry near a liq cluster). The synthesis layer over /state + /levels + /options
GET/rank?coins=BTC,ETH,SOLProCross-asset ranking — assembled trade plans for the given coins sorted by setup_score (best first). Answers "which coin is the better trade right now?"
GET/macroAPI KeyMacro Pulse — latest BTC + ETH directional bias
GET/macro?history=NProMacro Pulse historical snapshots (last N reports, max 30)
GET/regimeAPI KeyMarket-wide risk appetite — risk-on / risk-off / squeeze + a signed risk score and directional market_bias, blended from the macro composite, cross-sectional breadth, funding regime and volatility. Answers "do conditions favor risk right now?" Descriptive, candidate.
GET/liquidityAPI KeyNet cross-asset liquidity map — Fed net liquidity, multi-chain stablecoin dry-powder (DefiLlama), total perp OI, cross-venue leverage concentration (cascade-fragility), liquidation pressure, net taker flow. Answers "where is liquidity?"
GET/flowsAPI KeyCross-asset flows — crypto rotation, crypto-vs-tradfi OI split by asset class, and institutional posture (ETF / COT / 13F, descriptive). Answers "where are funds going, and is the market buying something other than crypto?"
GET/market-mapAPI KeyComposite of /regime + /liquidity + /flows in one call — the full cross-asset market picture.
GET/discoveryAPI KeyEmergent-edge discovery — corroboration class-combinations mined from the shadow ledger vs realized forward returns, ranked by measured edge (honesty-gated). Surfaces patterns nobody hand-coded. status=accruing until the ledger fills.
GET/performanceNonePublic win rate / PnL stats
GET/proofNoneForward-return scoreboard — per-type win rate, excess vs BTC, CI, proven flag (powers /proof)
GET/proof/equityNoneEdge-accumulation equity curve over proven-type signals
GET/public/feedNonePublic delayed signal feed (the free-tier 15-min-lagged stream)
GET/status/uptimeNoneService uptime / status snapshot
POST/auth/registerNoneCreate account
POST/auth/loginNoneLogin
GET/auth/meAPI KeyUser profile
POST/auth/api-keysAPI KeyGenerate new API key
DEL/auth/api-keys/{id}API KeyRevoke API key
POST/billing/checkoutAPI KeyStripe subscription checkout (Pro)
POST/billing/buy-creditsAPI KeyStripe one-time checkout for a credit pack
GET/billing/credit-packsAPI KeyList purchasable credit packs
GET/creditsAPI KeyCredit balance + transaction history
POST/billing/portalAPI KeyStripe customer portal
POST/webhooksProRegister webhook
DEL/webhooks/{id}ProRemove webhook
WS/streamProReal-time signal stream
POST/mcp/Pro (tools/call); open (tools/list)MCP server — read-only tools for Claude Desktop, Cursor, Cline. See /docs/mcp.

Prefer the command line? The n0brains CLI wraps every endpoint as a zero-dependency command that prints JSON — built for trading agents and shell pipelines. Agents without an account can also pay per call in USDC on Base (x402) — no key, no signup.

GET /signals

Returns active signals, optionally filtered. Free tier receives signals with a 15-minute delay.

Query Parameters

ParamTypeDescription
assetstringFilter by ticker (e.g. BTC)
signal_typestringregulatory, whale, whale_position, sentiment, price, hack, listing, macro, macro_flow, macro_pulse, liquidation, funding, deleverage, other. (unlock and research can be returned but are not filterable here — filtering on them 400s.)
directionstringbullish, bearish, neutral
urgencystringhigh, medium, low
limitint1-200 (default 50)
offsetintPagination offset (default 0)
include_opensboolInclude market opening prices (default true)
min_confidencefloatMinimum confidence score (0.0–1.0, default 0.0)
min_scorefloatMinimum signal score (default 0.0)
bandstringFilter by trade quality band: A+, A, B, C, D
min_trade_qualityfloatMinimum trade quality score (0.0–1.0, default 0.0)
proven_onlyboolOnly signal types proven to beat BTC (alpha) and profitable per direction (default false)
tradeable_onlyboolOnly conviction=strong signals (default false)

Response - Free Tier

{
  "count": 3,
  "signals": [
    {
      "id": 195,
      "asset": null,
      "signal_type": "regulatory",
      "direction": "neutral",
      "urgency": "medium",
      "summary": "Senate Banking Committee scheduled to vote on the Clarity Act crypto bill.",
      "confidence": 0.15,
      "conviction": "watch",
      "action_hint": "monitor",
      "corroborated": false,
      "score": 0.27,
      "trade_quality_score": 0.61,
      "trade_quality_band": "B",
      "expected_move_pct": null,
      "regime_at_signal": "risk-off",
      "timestamp": 1778555605,
      "expires_at": 1778570005,
      "type_performance": {
        "excess_pct": 0.3,
        "hit_rate": 0.08,
        "proven": false,
        "n": 398
      },
      "disclaimer": "Analytical data only. Not financial advice."
    },
    {
      "id": 196,
      "asset": "ETH",
      "signal_type": "sentiment",
      "direction": "bearish",
      "urgency": "high",
      "summary": "Sharp negative social shift on ETH as funding flips and large holders trim.",
      "confidence": 0.71,
      "conviction": "strong",
      "action_hint": "trade_signal",
      "corroborated": true,
      "score": 1.38,
      "trade_quality_score": 0.74,
      "trade_quality_band": "A",
      "regime_at_signal": "risk-off",
      "timestamp": 1778555800,
      "expires_at": 1778570200,
      "reference_price": 3210,
      "invalidation_level": 3274.2,
      "target_level": 3081.6,
      "levels_basis": "model",
      "type_performance": {
        "excess_pct": 4.96,
        "hit_rate": 0.61,
        "proven": true,
        "n": 1016
      },
      "historical_edge": {
        "cell": "sentiment|bearish|risk-off",
        "sample_n": 36,
        "win_rate": 0.97,
        "avg_pnl_pct": 7.19,
        "median_pnl_pct": 6.9,
        "as_of": "2026-05-27T02:09:02+00:00"
      },
      "disclaimer": "Analytical reference levels for informational purposes only. Not a recommendation to buy or sell, and not financial advice."
    },
    {
      "id": 197,
      "asset": "BTC",
      "signal_type": "regulatory",
      "direction": "bullish",
      "urgency": "medium",
      "summary": "Industry group endorses ETF approval extension; broader institutional access expected.",
      "confidence": 0.45,
      "conviction": "notable",
      "action_hint": "alert",
      "corroborated": true,
      "score": 0.81,
      "trade_quality_score": 0.52,
      "trade_quality_band": "C",
      "regime_at_signal": "squeeze",
      "timestamp": 1778556100,
      "expires_at": 1778570500,
      "type_performance": {
        "excess_pct": -2.1,
        "hit_rate": 0.04,
        "proven": false,
        "n": 352
      },
      "historical_edge": {
        "cell": "regulatory|bullish|squeeze",
        "sample_n": 128,
        "win_rate": 0,
        "avg_pnl_pct": -4.91,
        "median_pnl_pct": -4.65,
        "as_of": "2026-05-27T02:09:02+00:00"
      },
      "paired_inverse": {
        "direction": "bearish",
        "basis": "historical_anti_predictive_cell",
        "implied_avg_pnl_pct": 4.91,
        "flipped_cell_stats": {
          "n": 14,
          "win_rate": 0.93,
          "avg_pnl_pct": 3.92
        },
        "advisory_text": "Historical 0% win rate (128 samples) on bullish regulatory in squeeze regime suggests fade. Not a recommendation — informational only.",
        "citation": "De Bondt & Thaler 1985 JoF; Tetlock 2007 JoF; Chan 2003. Short-term overreaction to dramatic news reverses on horizon of days–weeks. Crypto: PLOS One 2024."
      },
      "disclaimer": "Analytical data only. Not financial advice."
    }
  ],
  "market_opens": {
    "tokyo": {
      "BTC": 81150,
      "ETH": 3200.5,
      "SOL": 96.3,
      "timestamp": 1778539200
    },
    "london": {
      "BTC": 81201.5,
      "ETH": 3205,
      "SOL": 96.48,
      "timestamp": 1778553600
    },
    "new_york": {
      "BTC": 81262.5,
      "ETH": 3210,
      "SOL": 96.55,
      "timestamp": 1778560800
    }
  }
}

Pro Tier Adds

Each signal object includes these additional fields:

{
  "sources": [
    "news",
    "whale"
  ],
  "source": "news",
  "channel": "google_crypto"
}

Signal Fields

FieldTypeDescription
idintUnique signal ID
assetstring|nullTicker symbol or null if market-wide
signal_typestringregulatory, whale, whale_position, sentiment, price, hack, listing, unlock, research, macro, macro_flow, macro_pulse, liquidation, funding, deleverage, other
directionstringbullish, bearish, neutral
urgencystringhigh, medium, low
summarystringMax 100 char description
confidencefloat0.0-1.0, calibrated P(win) — per-signal-type binned empirical win rate from closed-trade outcomes (not a raw LLM score). Updated weekly.
convictionstringstrong, notable, watch, none — our analytical rating of a signal's strength (not a trade instruction). strong is data-driven: it applies only to signal types whose forward-return record clears our statistical bar in paper-trading (see /proof), at the top of that type's score distribution, and only when the expected move clears round-trip trading cost (a move too small to beat fees + slippage is downgraded to notable). Use this field.
action_hintstringDeprecated — the prior name for conviction (trade_signal↔strong, alert↔notable, monitor↔watch, ignore↔none). Still emitted this release for backward compatibility; will be removed. Migrate to conviction.
corroboratedboolTrue when multiple sources confirm the asset AND recent reads don't net-contradict the direction (direction-aware — a bullish call isn't confirmed by bearish chatter on the same coin)
scorefloatIC-weighted composite: source_weight x urgency x calibrated_confidence x signal-type information coefficient
timestampintUnix epoch (seconds)
expires_atintWhen this signal expires
sourcesarrayPro only - Source names that contributed
sourcestringPro only - Primary source name
channelstringPro only - Specific channel/feed
trade_quality_scorefloat0.0–1.0 composite signal quality (regime + confidence + corroboration)
trade_quality_bandstringA+/A/B/C/D quality band — A+ ≥ 0.85, A ≥ 0.70, B ≥ 0.55, C ≥ 0.40
expected_move_pctfloat|nullEstimated move size as % of price based on nearest S/R delta + ATR
type_performanceobjectThis signal type's measured track record: {excess_pct, hit_rate, proven, n} — forward return vs BTC (alpha) at 1h, hit rate, proven flag, sample size
reference_pricefloattrade_signal only — algorithmic reference price (analytical, not an entry recommendation)
invalidation_levelfloattrade_signal only — price that would falsify the signal's thesis
target_levelfloattrade_signal only — nearest analytical target in the signal's direction
levels_basisstringtrade_signal only — sr_touches (order-book S/R) or model (derived)
resistance_low / resistance_highfloatThe resistance level's zone band (S/R is an area, not a line) — the price range of the touch cluster. Target the zone edge, not the midpoint.
support_low / support_highfloatThe support level's zone band — same idea on the support side.
resistance_flipped / support_flippedboolPolarity flip: true when this level was originally the opposite role and price has since broken through it (old support now acting as resistance, or vice versa). A flipped level is real but carries a slightly lower strength weight.
regime_at_signalstringMarket regime when signal was generated: risk-on, risk-off, range, squeeze
manipulation_scorefloat0.0–1.0 coordination/manipulation probability at signal creation time
wallet_typestring|nullWhale signal only — vc_institutional, smart_whale, market_maker, mev_arb, sniper, etc.
smart_money_scorefloat|nullWhale signal only — credibility of originating wallet (0.0–1.0)
trust_scorefloat|nullLaunchpad/token signals — composite contract trust (0.0–1.0)
rug_probabilityfloat|nullLaunchpad/token signals — estimated rug/scam probability (0.0–1.0)
is_honeypotbool|nullLaunchpad/token signals — GoPlus honeypot flag
historical_edgeobject|nullDescriptive stats for this signal's (signal_type × direction × regime_at_signal) cell from closed paper trades. Object: {cell, sample_n, win_rate, avg_pnl_pct, median_pnl_pct, as_of}. Refreshed weekly. Null when regime or type is missing.
paired_inverseobject|nullContrarian-direction advisory. Present only when the historical cell is empirically anti-predictive (n ≥ 30, win_rate ≤ 30%, avg_pnl ≤ -2%). Object: {direction, basis, implied_avg_pnl_pct, flipped_cell_stats, advisory_text, citation}. Cites peer-reviewed short-term reversal literature (De Bondt & Thaler 1985, Tetlock 2007, Chan 2003, PLOS One 2024). Informational; never a trade recommendation.

Historical Edge & Paired Inverse

Every signal carries a historical_edge object describing the closed-paper-trade outcomes of past signals in the same (signal_type × direction × regime_at_signal) cell. Stats are refreshed weekly. The fields are descriptive — they do not gate, size, or recommend.

When a cell is empirically anti-predictive (n ≥ 30 closed trades, win rate ≤ 30%, average PnL ≤ -2%), the signal also carries a paired_inverse object. It surfaces the contrarian-direction reading of the same event alongside a citation to peer-reviewed short-term reversal literature (De Bondt & Thaler 1985, Tetlock 2007, Chan 2003, PLOS One 2024). It is presented as data, not a recommendation: the flipped_cell_stats field shows how the opposite-direction cell has actually performed historically, which is often weaker than the implied_avg_pnl_pct would suggest in pure-inversion terms.

Use these fields to interpret signal quality in context. A signal with a strong historical_edge (high win_rate, large avg_pnl_pct, large sample_n) is more reliable than the same signal in a cell where the edge is weak or inverted. The cell stats and any paired-inverse advisory are intended for your own analysis — they are not trade recommendations, and we do not suggest position sizes or leverage.

GET /levels/{coin}

Returns nearest support/resistance from the Hyperliquid order book — as zones (each level carries its price band), with polarity-flip tracking (a broken support is surfaced as resistance, and vice versa).

{
  "coin": "BTC",
  "current_price": 81262.5,
  "nearest_resistance": 81450,
  "nearest_support": 80871,
  "all_resistance": [
    81450,
    81800,
    82200,
    82500,
    83000
  ],
  "all_support": [
    80871,
    80500,
    80000,
    79500,
    79000
  ]
}

GET /market-opens

Opening prices for BTC, ETH, and SOL at each major trading session.

{
  "market_opens": {
    "tokyo": {
      "BTC": 81150,
      "ETH": 3200.5,
      "SOL": 96.3,
      "timestamp": 1778539200
    },
    "shanghai": {
      "BTC": 81180,
      "ETH": 3202,
      "SOL": 96.35,
      "timestamp": 1778542800
    },
    "hong_kong": {
      "BTC": 81190,
      "ETH": 3203.5,
      "SOL": 96.4,
      "timestamp": 1778542800
    },
    "london": {
      "BTC": 81201.5,
      "ETH": 3205,
      "SOL": 96.48,
      "timestamp": 1778553600
    },
    "new_york": {
      "BTC": 81262.5,
      "ETH": 3210,
      "SOL": 96.55,
      "timestamp": 1778560800
    }
  }
}

GET /macro

Macro Pulse — our daily directional bias for BTC and ETH. Generated at 07:00 UTC daily (with a deeper 30-day review every Sunday 22:00 UTC). A deterministic macro composite — net liquidity (Fed balance sheet − TGA − RRP), the dollar index, real yields, the 2s10s curve, M2 and VIX, all from FRED — anchors the regime call. That composite is synthesised with the upcoming USD high-impact macro calendar (FOMC, CPI, NFP, PPI, Retail Sales) and the last 7 days of intel signals into a single regime call plus per-asset bias, conviction, key levels, and invalidation. The /macro response carries the raw composite + drivers alongside the narrative read.

Free tier: latest report only, generated_at + regime + bias/conviction. Pro tier: full payload including reasoning, key levels, invalidation, and calendar_risks. Add ?history=N (Pro, max 30) to include the last N snapshots alongside the current report.

{
  "generated_at": "2026-05-13T07:00:00+00:00",
  "window_days": 7,
  "horizon": "week",
  "regime": "risk-off",
  "regime_reason": "Hotter-than-expected CPI/PPI driving inflation fears and heavy long de-leveraging.",
  "btc": {
    "bias": "bearish",
    "conviction": 0.85,
    "reason": "Macro bearishness triggered by PPI surge and heavy long liquidations.",
    "key_levels": "$80,000 (psychological), $76,500 (structural)",
    "invalidation": "Retail Sales print materially below forecast, sparking risk-on rotation."
  },
  "eth": {
    "bias": "bearish",
    "conviction": 0.9,
    "reason": "Extreme long squeeze risk; 97% long liquidations on key venues.",
    "key_levels": "$3,200 (immediate support), $2,850 (major pivot)",
    "invalidation": "Unexpected dovish turn from new Fed chair."
  },
  "calendar_risks": [
    "Core Retail Sales m/m (2026-05-14) — potential further downside if hot",
    "Fed Chair Nomination Vote (2026-05-13) — policy uncertainty"
  ]
}

Field Reference

FieldTypeDescription
regimestringrisk-on, risk-off, range, squeeze
regime_reasonstring≤120 char rationale
btc.bias / eth.biasstringbullish, bearish, neutral
btc.conviction / eth.convictionfloat0.0–1.0. ≥0.7 = very high. ≥0.85 = veto-grade contradictions.
btc.reason / eth.reasonstringPrimary driver, ≤140 chars
btc.key_levels / eth.key_levelsstringRelevant macro pivots
btc.invalidation / eth.invalidationstringWhat flips the call
calendar_risksarrayTop 1–3 upcoming events that could flip bias
window_daysintLookback window (7 daily / 30 weekly)
horizonstringForward horizon label (e.g. "week", "next two weeks")
generated_atstringISO-8601 UTC. Stale after 36h — clients should refetch.

Auth Endpoints

POST /auth/register

Create a new account. Returns an API key immediately.

{
  "api_key": "intel_sk_a1b2c3d4e5f6...",
  "key_prefix": "intel_sk",
  "tier": "free",
  "message": "Save your API key - it will not be shown again."
}

POST /auth/login

{
  "token": "eyJhbGciOiJIUzI1NiIs...",
  "tier": "free",
  "api_keys": [
    {
      "id": 1,
      "prefix": "intel_sk_a1b2",
      "name": "default",
      "created_at": 1778555605
    }
  ]
}

WebSocket /stream

Pro tier only. Connect to receive signals in real-time.

wss://api.n0brains.com/stream?api_key=intel_sk_...

Signal received:
{"type": "signal", "data": {"id": 195, "asset": "BTC", "signal_type": "whale", "direction": "bullish", "urgency": "high", "summary": "Strategy buys 535 BTC for $43M", "confidence": 0.95, "score": 1.42, "trade_quality_band": "A", "regime_at_signal": "risk-on"}}

Ping/pong:
send: "ping"
recv: {"type": "pong", "timestamp": 1778555605}

Webhooks

Pro tier only. Register a URL to receive POST deliveries for new signals.

POST /webhooks

{
  "id": 1,
  "url": "https://your-server.com/hooks/n0brains",
  "secret": "a1b2c3d4...",
  "events": "signal.created",
  "note": "Use X-Intel-Signature header to verify deliveries. Secret is shown only once."
}

Delivery Format

POST to your URL with header X-Intel-Signature:

{
  "event": "signal.created",
  "timestamp": 1778555605,
  "data": {
    "id": 195,
    "asset": "BTC",
    "signal_type": "whale",
    "direction": "bullish",
    "urgency": "high",
    "summary": "Strategy buys 535 BTC for $43M",
    "confidence": 0.95,
    "score": 1.42,
    "trade_quality_band": "A",
    "regime_at_signal": "risk-on"
  }
}

Data Sources and Scoring

The pipeline ingests from the watchers listed below. Each source carries a weight that multiplies into the final signal score — so what you read isn't a raw feed dump, it's one corroborated, ranked number.

score = source_weight × urgency_weight × confidence_decayed

Urgency weights: low: 1.0, medium: 2.0, high: 3.0

Confidence decay: confidence degrades exponentially with age. confidence_decayed = confidence₀ × exp(−age / τ) where τ = half-life / ln(2) per signal type (liquidation: ~43min, hack/sentiment/listing: ~2.9h, whale/price/funding: ~8.7h, regulatory: ~5.8h, macro: ~11.5h, macro_pulse: ~34.6h). A stale signal has a lower score than a fresh one of identical quality.

Source weight self-tuning: weights are EMA-adjusted daily from tracked outcome win rates. Sources that fire correctly get boosted up to 1.4×; sources that underperform are dampened to 0.6×. Minimum 10 outcomes before adjustment.

Active Watchers

  1. Telegram - WatcherGuru, ZachXBT Investigations, yoyodexhaber, sondakikav
  2. News RSS - 15 feeds (Reuters, AP, BBC, CNBC, Bloomberg, CoinDesk, CoinTelegraph, Decrypt, Google News, etc.)
  3. Government RSS - 11 feeds (White House, SEC, CFTC, Fed, Kremlin, Xinhua, TASS, EU, etc.)
  4. CoinMarketCap - Price alerts, trending coins
  5. Macro - Fear and Greed Index, DeFi TVL
  6. Binance - Funding rates, liquidation cascades (WebSocket)
  7. Market Opens - BTC/ETH/SOL prices at Tokyo, Shanghai, Hong Kong, London, NY session opens
  8. Exchange Listings - Real CEX listing catalysts: Binance & Bybit launchpad/launchpool, plus new spot-market detection (symbol-list diff) on Binance, Upbit (Korea / kimchi premium), and OKX. Pump.fun / Raydium memecoin launches were dropped — they were ~98% of the old listing feed with no tradeable edge.
  9. ETF Flows - US spot BTC + ETH + SOL ETF daily net flows via SoSoValue (free public API). Emitted as context (macro_flow, non-directional): a backtest found ETF net inflow does not predict forward returns — it is a coincident/lagging demand print (SOL inflows were contrarian).
  10. Stablecoin Flows - USDT/USDC Treasury deploy/redeem + net inflow staged to exchange wallets, plus total stablecoin supply trend (DeFiLlama). A leading liquidity read (stablecoin inflow to exchanges leads short-horizon BTC/ETH returns in our data); aggregate supply is dry-powder context.
  11. On-Chain Valuation - Coin Metrics (free): MVRV, exchange in/outflows + reserves, active addresses (BTC + ETH). Net exchange OUTFLOW / falling reserves = self-custody accumulation; MVRV maps cycle profit/froth. Feeds the Macro Pulse composite's on-chain leg; emitted as context.
  12. Token Unlocks - DeFiLlama emissions calendar (free). Material near-term unlocks (insider/investor cliffs) on tradeable tokens = scheduled supply that sellers front-run → unlock signal, bearish. Self-proves via the forward-return gate.
  13. TradFi & CME - Yahoo Finance (free): CME BTC/ETH futures gap (weekend gaps tend to fill — a recurring level read) plus SPX/gold cross-asset correlation context.
  14. Smart Money - Alchemy ETH WebSocket (alchemy_pendingTransactions) on 408 curated wallets + Etherscan V2 confirmed-tx fallback. 700+ verified labeled addresses (CEX hot/cold, market maker, institutional, smart trader) auto-refreshed weekly from Etherscan label cloud + Alchemy top-volume sweep. MEV bots filtered.
  15. Stealth Accumulation - Background scanner pulls Etherscan V2 tokentx per tracked wallet every 30 min. Flags wallet receiving same ERC20 in ≥3 fragmented buys totaling ≥$500K within 24 h — catches quiet accumulation before whale-alert feeds.
  16. On-Chain Whale Tracking - Large ETH transfers to/from exchanges via Alchemy WebSocket (threshold 1000 ETH); large BTC transfers via mempool.space WebSocket on tracked cold wallets (threshold 100 BTC). Hyperliquid leaderboard consensus from top traders. SOL CEX flow via Alchemy Solana accountSubscribe on 12 hot/cold wallets (threshold 10000 SOL).
  17. L/S Ratios - Bybit, Binance, Gate.io positioning data
  18. S/R Levels - Real-time support/resistance from Hyperliquid order book
  19. Macro Pulse - Daily BTC + ETH directional bias. Deterministic FRED macro composite (net liquidity, DXY, real yields, curve, VIX, M2) anchors the regime, synthesised with the USD high-impact calendar (FOMC, CPI, NFP, PPI) and 7d intel signals. Sunday weekly 30d deep-dive.
  20. X (Twitter) API - Curated 11-account feed via official X API v2. Onchain primary (@lookonchain, @spotonchain, @arkham, @whale_alert), official exchange announcements (@binance, @coinbase, @CoinbaseAssets, @upbit_global), and newswire-speed macro (@DeItaone, @FirstSquawk, @DBdaily). 20s polling, retweets and replies filtered.

Source Weights

SourceWeightRationale
gov_news1.3Market-moving regulatory/policy events
smart_money1.2On-chain address tracking (Alchemy + Etherscan, 408 wallets)
stealth_accumulation1.4Fragmented quiet buys (≥3 tx, ≥$500K, 24h window)
whale_eth1.1Large ETH transfers (Alchemy WS, ≥1000 ETH)
whale_btc1.0Large BTC transfers (mempool.space WS, ≥100 BTC)
telegram:investigations1.2High-signal hack/exploit intel
x:lookonchain1.5Onchain wallet moves with tx hashes — leading indicator
x:binance / x:coinbase1.5Official exchange listing announcements
x:spotonchain / x:arkham1.4Onchain analytics, labelled wallets
x:CoinbaseAssets1.4Coinbase listing roadmap leaks
x:DeItaone1.3Newswire-speed macro headlines
x:upbit_global1.3Korea listings, kimchi premium catalyst
x:FirstSquawk1.2Headline wire, fast macro
x:DBdaily0.9Corporate adoption tracking
x:whale_alert0.7Auto-bot, mostly exchange↔cold storage noise
binance_funding1.0Primary exchange data
binance_liq1.0Liquidation data
cmc_price0.9CoinMarketCap price alerts
telegram:WatcherGuru0.9Fast breaking news
rss:trumpstruth0.9Market-moving but noisy
rss:coindesk0.8Established outlet
cex_listing0.8Real exchange listings (Binance/Bybit/Upbit/OKX)
rss:cointelegraph0.7General crypto news
rss:decrypt0.7General crypto news
market_open0.6Session opening prices
macro_fearGreed0.6Sentiment index
rss:reddit_crypto0.5r/CryptoCurrency community signal
rss:reddit_btc0.5r/Bitcoin community signal
dexscreener0.2Enrichment only
Default (unlisted)0.5-

GET /signals/similar

Pro tier only. Semantic nearest-neighbor search across all signals using BGE-M3 vector embeddings. Find signals related by meaning — not just matching keywords.

Query Parameters

ParamTypeDescription
coinstringOptional — filter results to this asset ticker
qstringFree-text query (defaults to coin name if omitted)
kintNumber of results (default 5, max 20)
[
  {
    "id": 182,
    "similarity": 0.97,
    "summary": "BTC whale | bullish | high | Strategy loads 420 BTC at open",
    "metadata": {
      "asset": "BTC",
      "signal_type": "whale",
      "direction": "bullish",
      "urgency": "high",
      "score": 1.38,
      "timestamp": 1778551200
    }
  },
  {
    "id": 178,
    "similarity": 0.94,
    "summary": "BTC whale | bullish | medium | Institutional wallet accumulates 310 BTC",
    "metadata": {
      "asset": "BTC",
      "signal_type": "whale",
      "direction": "bullish",
      "urgency": "medium",
      "score": 1.1,
      "timestamp": 1778548800
    }
  }
]

GET /narrative/{coin}

Pro tier only. Rolling narrative momentum for an asset — how many signals have fired, at what velocity, from how many independent sources, and whether a coordination pattern is detected.

{
  "coin": "BTC",
  "narrative_strength": 0.74,
  "narrative_velocity": 3.2,
  "narrative_decay_rate": 0.18,
  "manipulation_probability": 0.12,
  "dominant_direction": "bullish",
  "direction_conviction": 0.81,
  "source_diversity": 4,
  "signal_count_1h": 7,
  "signal_count_4h": 19,
  "signal_count_24h": 42,
  "disclaimer": "Analytical data only. Not financial advice."
}

Field Reference

FieldTypeDescription
narrative_strengthfloat0.0–1.0 weighted signal volume over 24h
narrative_velocityfloatRate of new signals per hour in 1h window
narrative_decay_ratefloatHow quickly signal volume is falling (0 = growing, 1 = cold)
manipulation_probabilityfloat0.0–1.0. Elevated if ≥3 independent source types fire same direction within 5 min
dominant_directionstringbullish, bearish, or neutral (majority vote across window)
direction_convictionfloatFraction of signals matching dominant direction
source_diversityintNumber of distinct source types in 1h window
signal_count_1h / 4h / 24hintRaw signal count per rolling window

GET /manipulation/{coin}

Pro tier only. Composite manipulation score for an asset. Combines social burst, coordinated pump, and liquidation cascade sub-scores.

{
  "coin": "ETH",
  "manipulation_score": 0.34,
  "social_burst_score": 0.2,
  "coordinated_pump_score": 0.5,
  "liquidation_cascade_score": 0.1,
  "flags": [
    "coordinated_pump"
  ],
  "disclaimer": "Analytical data only. Not financial advice."
}

Field Reference

FieldTypeDescription
manipulation_scorefloatComposite: social_burst×0.30 + coordinated_pump×0.45 + liq_cascade×0.25
social_burst_scorefloatElevated if social signal count ≥5× 10-min baseline
coordinated_pump_scorefloatElevated if ≥4 distinct source prefixes fire same direction in 10 min
liquidation_cascade_scorefloatElevated if ≥3 liquidation signals for coin within 15 min
flagsarrayActive flags: social_burst, coordinated_pump, liquidation_cascade

GET /trust/{coin}

Pro tier only. Trust and scam scoring for a token ticker. Resolves the ticker to a contract address via DexScreener, then checks GoPlus Security for contract flags. Results are cached 6 hours per token address.

{
  "asset": "PEPE",
  "address": "0x6982508145454ce325ddbe47a25d4ec3d2311933",
  "chain_id": "1",
  "trust_score": 0.82,
  "rug_probability": 0.18,
  "contract_risk": 0.1,
  "insider_pct": 0.04,
  "is_honeypot": false,
  "is_mintable": false,
  "sell_tax": 0,
  "low_liquidity": false,
  "liquidity_usd": 4820000,
  "flags": [],
  "data_source": "goplus",
  "computed_at": 1778555605,
  "disclaimer": "Analytical data only. Not financial advice."
}

Field Reference

FieldTypeDescription
trust_scorefloat1.0 − rug_probability. Higher = safer.
rug_probabilityfloatComposite: contract_risk×0.60 + liquidity_risk×0.20 + vol_liq_risk×0.10 + signal_history_risk×0.10
contract_riskfloatGoPlus-derived. Sums: honeypot (+0.50), mintable (+0.20), owner_can_change_balance (+0.25), upgradeable_proxy (+0.10), high_sell_tax, insider_pct
insider_pctfloatCreator + owner combined token holding percentage
is_honeypotboolGoPlus honeypot flag — token cannot be sold
is_mintableboolContract can mint unlimited new supply
sell_taxfloatSell transaction tax (0.10 = 10%)
low_liquidityboolTrue if liquidity_usd < $50,000
flagsarrayActive contract risk flags from GoPlus
data_sourcestringgoplus, dexscreener, signal_history_only, or none

Error Responses

// 401 Unauthorized
{"detail": "Invalid API key"}

// 429 Rate Limited
{"detail": "Rate limit exceeded (60 req/min for free tier). Upgrade at https://n0brains.com"}

// 404 Not Found
{"detail": "Signal not found"}

// 403 Forbidden
{"detail": "WebSocket requires Pro tier"}