BlackTick

Authenticated JSON endpoints -- connect any external bot or tool

Your API Key
Authentication
All endpoints require an X-API-Key header matching your key above.
curl -H "X-API-Key: YOUR_API_KEY_HERE" https://subsystem-unusual-suffering.ngrok-free.dev/api/ext/status
Base URL
Base https://subsystem-unusual-suffering.ngrok-free.dev
All endpoint paths below are appended to this. Run the tunnel script to get your URL — it changes each session unless you use a named tunnel.
Endpoints
GET/api/ext/status🔑 auth
Scanner health and live market stats. Use as a heartbeat — call every 30s to confirm the scanner is alive.
Query Parameters
ParamTypeDefaultDescription
No parameters
Example response { "ok": true, "scanner": "UOA-Dashboard", "port": 5008, "market_open": true, "time_et": "2026-05-23 10:32:14", "signals_cached": 12, "dark_pool_prints": 34, "spy_price": 527.43, "spy_change": 0.41, "vix": null, "webhook_active": false, "uptime_ts": 1748001134.28 }
GET/api/signals🔑 auth
Today's UOA signals — filtered and ready for a trading bot to consume.
Query Parameters
ParamTypeDefaultDescription
min_scoreinteger7Minimum signal score 1–10. Score 8+ = high conviction, 9–10 = institutional.
directionCALL | PUTallFilter by flow direction. Omit to return both calls and puts.
limitinteger50Max results to return. Hard cap at 200.
Example response { "ok": true, "count": 1, "as_of": "2026-05-23 10:32:14 ET", "signals": [{ "ticker": "NVDA", "direction": "CALL", "score": 9, "flow_type": "SWEEP", "market_sentiment": "BULLISH", "premium": 284500, "vol_oi_ratio": 8.3, "strike": 135, "expiry": "2026-06-20", "dte": 28, "stock_price": 131.42, "stock_change": 1.24, "occ": "NVDA260620C00135000", "ask": 4.85, "bid": 4.70, "mid": 4.775, "delta": 0.48, "iv": 52.3, "above_ask": true, "divergence": false, "timestamp": "10:32:08", "money_tier": "INSTITUTIONAL", "sector": "Technology" }] }
GET/api/positions🔑 auth
Current open trade recommendations from the scanner. Only returns today's records.
Query Parameters
ParamTypeDefaultDescription
limitinteger10Max positions to return. Hard cap at 200.
Example response { "ok": true, "count": 1, "as_of": "2026-05-23 10:32:14 ET", "positions": [{ "ticker": "NVDA", "direction": "CALL", "score": 9, "occ": "NVDA260620C00135000", "entry_price": 4.80, "date": "2026-05-23" }] }
GET/api/convergencepublic
Live convergence scores — tickers where UOA, dark pool, breakout, and net flow are pointing the same direction. Score ≥ 7 = strong setup. Only returns tickers with score ≥ 5 and at least 2 signal types.
Query Parameters
ParamTypeDefaultDescription
min_scoreinteger5Minimum convergence score. Use 7+ for strong setups, 9+ for institutional.
directionBULLISH | BEARISHallFilter by signal direction.
limitinteger20Max results to return. Hard cap at 200.
Example response [{ "ticker": "AAPL", "score": 8, "direction": "BULLISH", "signal_count": 3, "uoa_score": 8, "uoa_premium": 420000, "dark_pool_notional": 1850000, "net_flow_call": 620000, "net_flow_put": 145000, "bo_score": 7, "recency_mins_ago": 14.2, "recency_window_mins": 38.5, "tradeable": true }]
GET/api/darkpool/live🔑 auth
Today's dark pool prints sorted by notional size descending. Large off-exchange blocks that didn't trade on lit markets.
Query Parameters
ParamTypeDefaultDescription
min_notionalinteger1000000Minimum print size in dollars. Default filters sub-$1M prints.
limitinteger50Max prints to return. Hard cap at 500.
Example response { "ok": true, "count": 1, "prints": [{ "ticker": "MSFT", "price": 422.50, "size": 4200, "notional": 1774500, "timestamp": "10:18:44", "exchange": "FINRA" }] }
GET/api/smartmoneypublic
Multi-day smart money tracker — tickers with repeated institutional flow across multiple sessions.
Query Parameters
ParamTypeDefaultDescription
min_daysinteger2Minimum number of days with activity. Use 3+ for strongest conviction.
limitinteger20Max results to return. Hard cap at 200.
Example response [{ "ticker": "AMD", "direction": "BULLISH", "days": 3, "total_premium": 1240000, "last_seen": "10:28:31" }]
GET/api/maxpainpublic
Max pain strikes and OI walls for active tickers. Sorted by distance from max pain — closest first.
Query Parameters
ParamTypeDefaultDescription
tickerstringallFilter to a specific ticker, e.g. ?ticker=SPY
limitinteger30Max results to return. Hard cap at 200.
Example response [{ "ticker": "SPY", "max_pain": 545, "current_price": 547.23, "distance_pct": 0.41, "expiry": "2026-05-23", "dte": 0 }]
Webhook Push (optional)
Set WEBHOOK_URL env var to receive live pushes when signals fire. Scanner will POST to your URL with X-API-Key header.
Events pushed automatically:
uoa_signal — 9-10/10 UOA signal detected
trade_rec — high-conviction breakout trade recommendation
WEBHOOK_URL=https://your-bot-server.com/scanner-hook python3 uoa_dashboard.py
Cloudflare Tunnel
Run the tunnel script to expose this scanner to the internet with a stable free URL.
bash ~/"UOA BOT"/start_tunnel.sh
🕒 Market Schedule
Upcoming Market Notices
🏛️
US Market Schedule Notice
APIAPI documentation for developers
Messages
Educational & informational only — not financial advice, and not a recommendation to buy or sell any security. BlackTick surfaces options-flow data to study. Options involve substantial risk of loss.