Developers · REST reference

Developer API

REST JSON over HTTPS. Reads the same live artifacts as the Discord scanner. Traders using Cursor / Claude / VS Code want Confluence Pro MCP ($79/mo) — not this REST doc.

Base URL: https://api.0dteconfluence.com (or your self-hosted VPS on port 8080)

Auth: every /v1/* route requires an API key.

X-API-Key: cfl_your_key_here

Or:

Authorization: Bearer cfl_your_key_here

Rate limit: 120 requests/minute per key (configurable on the server).

Endpoints

GET /health

No auth. Service + market status.

GET /v1/levels/spy · GET /v1/rails/spy

Gamma Rails — live SPY 0DTE dealer map from the Tradier chain.

{
  "product": "Gamma Rails",
  "symbol": "SPY",
  "underlying_price": 621.45,
  "regime": "negative_gamma",
  "gamma_flip": 622.0,
  "call_wall": 625.0,
  "put_wall": 618.0,
  "max_pain": 620.0,
  "magnet": 620.0,
  "net_gex": -1.2e9,
  "net_dex": -450000000
}

GET /v1/tape/spy

Confluence Tape — live classified options flow (5-minute slope + session cumulative).

{
  "product": "Confluence Tape",
  "tape_product": "Confluence Tape",
  "confluence_tape": -1250000,
  "tape_5m": -340000,
  "quadrant": "bearish (call- / put+)",
  "ofi": -0.18,
  "ofi_5m": -0.31,
  "stale": false,
  "updated_at": "2026-07-13 10:15:02 ET"
}

We do not expose third-party proprietary flow names in the public API.

POST /v1/webhooks/rails · DELETE /v1/webhooks/rails

Gamma Rails ($19) or Developer ($99) keys only. Register your HTTPS endpoint to receive push JSON (no polling).

curl -s -X POST https://api.0dteconfluence.com/v1/webhooks/rails \
  -H "X-API-Key: cfl_your_rails_key" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://your-server.com/rails","secret":"optional_hmac","events":["morning","refresh"]}'

Outbound events

EventWhenHeader
morning~9:00 ET after morning desk refreshX-Confluence-Event: morning
refreshWall/flip/magnet changes, or every 15m in RTHX-Confluence-Event: refresh

Body matches GET /v1/rails/spy plus "event" and "ts". If you set secret, verify X-Confluence-Signature: sha256=<hmac> (HMAC-SHA256 of raw JSON body).

Remove: DELETE /v1/webhooks/rails with the same API key.

GET /v1/enrich/spy?direction=PUT&strike=625&setup=fade_call_wall

Positioning context at a rail — DEX lean, pin score, OI build, GEX shift since open.

ParamRequiredValues
directionyesCALL or PUT
strikeyesWall strike (e.g. 625)
setupnoSetup tag from grader
level_namenoe.g. call_wall

GET /v1/alerts/latest

Last graded A+/B candidate written by scan_loop.py (same payload shape as Discord, minus embed formatting). Developer + Pro.

GET /v1/alerts/history?limit=20&min_score=6

Session alert log from scan_candidates.jsonl — A+/B only, newest first.

ParamDefaultNotes
limit20Max 100
min_score6Confluence score floor (0–8)
{
  "count": 2,
  "min_score": 6,
  "alerts": [ { "grade": "A+", "direction": "PUT", "score": 7, "spot": 621.2 } ]
}

GET /v1/market/clock

Session state — open/half-day, force-flat, lane ends, event-day flag. Developer + Pro.

{
  "status": "open",
  "date": "2026-07-18",
  "force_flat": "15:30",
  "last_entry": "15:15",
  "lane1_aplus_end": "11:10",
  "lane2_auto_end": "14:00",
  "event_day": false,
  "half_day": false
}

GET /v1/morning/desk

Today’s morning-desk card (same content as Discord #morning-desk) after the ~9:00 ET refresh. Returns morning_desk_unavailable if nothing posted yet. Developer + Pro.

{
  "date": "2026-07-18",
  "posted_at": "2026-07-18T09:00:12-04:00",
  "card": "…markdown card…",
  "one_line": "neg-gamma · fade 625 / support 618 · …",
  "rails": { "gamma_flip": 622, "call_wall": 625, "put_wall": 618 },
  "iv_rank": 34,
  "regime": "negative_gamma"
}

Key tiers (Stripe products)

These are not the same as Discord alert membership ($49). See developers.html.

Stripe productPriceAPI key tierAccess
Gamma Rails$19/morails/v1/rails/spy, /v1/levels/spy + morning/refresh webhooks
Confluence Tape$29/motape/v1/tape/spy only (+ Discord #tape — not via REST)
Developer API$99/modeveloperAll /v1/* including enrich, alerts history, market clock, morning desk
Robinhood Pro MCP$79/moproAlerts + rails + tape + enrich + clock + morning desk — via MCP server

Buying Developer ($99) includes rails + tape + enrich — you do not need the $19 and $29 plans.

Robinhood Pro ($79) uses the same API backend with tier pro but is sold as an MCP install for traders — see home.

Configure on the VPS:

CONFLUENCE_API_KEYS=cfl_abc123:developer,cfl_tape456:tape

Or .secrets/api_keys.json:

{
  "keys": {
    "cfl_abc123": { "tier": "developer", "email": "[email protected]" }
  }
}

Run on the VPS

docker compose -f deploy/docker-compose.yml --profile api up -d

Smoke test:

curl -s http://127.0.0.1:8080/health | jq .
curl -s -H "X-API-Key: YOUR_KEY" http://127.0.0.1:8080/v1/tape/spy | jq .

Subscribe

Get an API key on the Developers page. Checkout metadata tier=api maps to the Developer API plan ($99/mo).

0DTE Confluence — Data, levels, confluence, edge.