Install
openclaw skills install optionwhalesQuery real-time option flow intelligence and generate AI-powered trade analysis reports. Use when users ask about option flow, unusual options activity, institutional positioning, market sentiment from derivatives, or AI trade reports.
openclaw skills install optionwhalesTwo capabilities in one skill:
Free tier available! Sign up at https://www.optionwhales.io to get a free API key instantly — no credit card required.
✅ USE this skill when:
❌ DON'T use this skill when:
Requires an OptionWhales API key.
export OPTIONWHALES_API_KEY="ow_free_your_key_here" # or ow_pro_...
Requires an AI service Bearer token (contact system administrator).
export AI_API_TOKEN="your_bearer_token_here"
Base URL: https://api.optionwhales.io/v1
All requests require header: X-API-Key: $OPTIONWHALES_API_KEY
curl -s -H "X-API-Key: $OPTIONWHALES_API_KEY" \
"https://api.optionwhales.io/v1/flow/current" | python3 -m json.tool
Response includes per-ticker: intent_primary (Directional/Gamma/LongVol/ShortVol/Mixed),
direction_bias (bullish/bearish/neutral), intent_confidence (0-1), momentum_fast,
momentum_slow, coherence_last, strength_last, key_strikes.
curl -s -H "X-API-Key: $OPTIONWHALES_API_KEY" \
"https://api.optionwhales.io/v1/flow/current/AAPL" | python3 -m json.tool
Returns: ranking (summary), clusters (strategy clusters with dollar Greeks),
cluster_trades (individual trades), time_series (30-min momentum buckets).
# System health and session status
curl -s -H "X-API-Key: $OPTIONWHALES_API_KEY" \
"https://api.optionwhales.io/v1/flow/sessions" | python3 -m json.tool
# Get a specific session's rankings
curl -s -H "X-API-Key: $OPTIONWHALES_API_KEY" \
"https://api.optionwhales.io/v1/flow/2025-06-02" | python3 -m json.tool
# Get a specific ticker from a historical session
curl -s -H "X-API-Key: $OPTIONWHALES_API_KEY" \
"https://api.optionwhales.io/v1/flow/2025-06-02/AAPL" | python3 -m json.tool
curl -s -H "X-API-Key: $OPTIONWHALES_API_KEY" \
"https://api.optionwhales.io/v1/momentum/rankings" | python3 -m json.tool
curl -s -H "X-API-Key: $OPTIONWHALES_API_KEY" \
"https://api.optionwhales.io/v1/momentum/AAPL/history" | python3 -m json.tool
# Current session
curl -s -H "X-API-Key: $OPTIONWHALES_API_KEY" \
"https://api.optionwhales.io/v1/abnormal-trades/current" | python3 -m json.tool
# Historical session
curl -s -H "X-API-Key: $OPTIONWHALES_API_KEY" \
"https://api.optionwhales.io/v1/abnormal-trades/2025-06-02" | python3 -m json.tool
curl -s -H "X-API-Key: $OPTIONWHALES_API_KEY" \
"https://api.optionwhales.io/v1/account/usage" | python3 -m json.tool
python3 -c "
import asyncio, websockets, json
async def stream():
uri = 'wss://api.optionwhales.io/v1/ws/abnormal-trades?api_key=YOUR_PRO_KEY'
async with websockets.connect(uri) as ws:
await ws.send(json.dumps({'type': 'subscribe', 'tickers': ['AAPL', 'NVDA', 'TSLA']}))
async for msg in ws:
data = json.loads(msg)
if data['type'] == 'abnormal_trade':
print(json.dumps(data['data'], indent=2))
asyncio.run(stream())
"
# Current flow rankings
python3 {baseDir}/scripts/optionflow.py flow
# Flow for specific ticker
python3 {baseDir}/scripts/optionflow.py flow --ticker AAPL
# Historical session flow
python3 {baseDir}/scripts/optionflow.py flow --session 2025-06-02
# Momentum rankings
python3 {baseDir}/scripts/optionflow.py momentum
# Top 5 momentum tickers
python3 {baseDir}/scripts/optionflow.py momentum --top 5
# Current abnormal trades
python3 {baseDir}/scripts/optionflow.py abnormal
# Historical abnormal trades
python3 {baseDir}/scripts/optionflow.py abnormal --session 2025-06-02
| Intent | Meaning |
|---|---|
| Directional | Net delta-dominant flow — strong directional bet |
| Gamma | Gamma-dominant — positioning for rapid price moves |
| LongVol | Buying volatility (long vega, positive theta risk) |
| ShortVol | Selling volatility (short vega, positive theta) |
| Mixed | No dominant Greek — conflicting signals |
0–1 scale combining flow coherence (how aligned the trades are) and strength (total dollar Greek magnitude). Above 0.7 is high conviction.
momentum_fast (α=0.35): responsive to recent flow changesmomentum_slow (α=0.15): trend-smoothedBase URL: https://ai-service-production-b44b.up.railway.app
All requests require header: Authorization: Bearer $AI_API_TOKEN
| Tier | Credits/Day | Can Generate? |
|---|---|---|
| FREE | 0 | No — hard-blocked |
| TRIAL | 5 | Yes |
| PRO | 5 | Yes |
| ADMIN | Unlimited | Yes |
Additional constraints:
curl -s -X POST \
-H "Authorization: Bearer $AI_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"user_id":"user@example.com","user_tier":"PRO","ticker":"TSLA","session_date":"2026-03-25","session_type":"live","large_orders":[]}' \
"https://ai-service-production-b44b.up.railway.app/reports"
Returns: {"job_id": "abc-123", "status": "queued", "message": "..."}
curl -s -H "Authorization: Bearer $AI_API_TOKEN" \
"https://ai-service-production-b44b.up.railway.app/reports/{job_id}"
curl -s -H "Authorization: Bearer $AI_API_TOKEN" \
"https://ai-service-production-b44b.up.railway.app/reports/by-id?user_id=user@example.com&ticker=TSLA&trading_day=2026-03-25&report_id=rpt-456"
curl -s -H "Authorization: Bearer $AI_API_TOKEN" \
"https://ai-service-production-b44b.up.railway.app/reports/{job_id}/artifact/md"
curl -s -H "Authorization: Bearer $AI_API_TOKEN" \
"https://ai-service-production-b44b.up.railway.app/reports/history?ticker=TSLA&trading_day=2026-03-25&user_id=user@example.com"
curl -s -H "Authorization: Bearer $AI_API_TOKEN" \
"https://ai-service-production-b44b.up.railway.app/reports/history/summary?user_id=user@example.com&trading_day=2026-03-25"
curl -s -H "Authorization: Bearer $AI_API_TOKEN" \
"https://ai-service-production-b44b.up.railway.app/quotas?user_id=user@example.com&tier=PRO"
curl -s -X POST \
-H "Authorization: Bearer $AI_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"user_id":"user@example.com","user_tier":"PRO","ticker":"TSLA","session_date":"2026-03-25","session_type":"live","large_orders":[]}' \
"https://ai-service-production-b44b.up.railway.app/eligibility"
curl -s -H "Authorization: Bearer $AI_API_TOKEN" \
"https://ai-service-production-b44b.up.railway.app/health"
# Generate a report
python3 {baseDir}/scripts/aireport.py generate --ticker TSLA --user-id user@example.com --user-tier PRO
# Check job status
python3 {baseDir}/scripts/aireport.py status --job-id abc-123
# Fetch report (JSON)
python3 {baseDir}/scripts/aireport.py report --user-id user@example.com --ticker TSLA --trading-day 2026-03-25 --report-id rpt-456
# Fetch report (Markdown)
python3 {baseDir}/scripts/aireport.py report --job-id abc-123 --format markdown
# Browse existing reports
python3 {baseDir}/scripts/aireport.py summary --user-id user@example.com --trading-day 2026-03-25
# List reports for a ticker
python3 {baseDir}/scripts/aireport.py history --ticker TSLA --trading-day 2026-03-25 --user-id user@example.com
# Check quota
python3 {baseDir}/scripts/aireport.py quota --user-id user@example.com --tier PRO
# Check eligibility
python3 {baseDir}/scripts/aireport.py eligibility --ticker TSLA --user-id user@example.com --user-tier PRO
# Service health
python3 {baseDir}/scripts/aireport.py health
| Action | Meaning |
|---|---|
| BUY | Bullish — AI recommends long exposure on the underlying |
| SELL | Bearish — AI recommends short exposure / protective puts |
| HOLD | Neutral — no new directional exposure recommended |
0–100 scale reflecting the AI pipeline's conviction. Above 70% = high conviction; below 50% = conflicting signals.
| Section | Content |
|---|---|
| Option Flow | Institutional flow analysis, intent momentum, flow coherence |
| Abnormal Flow | Large/unusual trades flagged by the detection engine |
| Market Structure | GEX levels, call/put walls, max pain, key strike zones |
| Market | Macro indicators, OHLCV, technical levels |
| Fundamentals | Company fundamentals, valuation metrics |
| News | Recent news sentiment analysis |
| Debate | Bull vs Bear researcher arguments with judge decision |
| Risk | Three-analyst risk assessment (aggressive, conservative, neutral) |
| User asks | Tool |
|---|---|
| "What's the flow today?" | python3 {baseDir}/scripts/optionflow.py flow |
| "Show TSLA option activity" | python3 {baseDir}/scripts/optionflow.py flow --ticker TSLA |
| "Top momentum tickers" | python3 {baseDir}/scripts/optionflow.py momentum |
| "Any unusual trades?" | python3 {baseDir}/scripts/optionflow.py abnormal |
| "Is AAPL bullish or bearish?" | python3 {baseDir}/scripts/optionflow.py flow --ticker AAPL → check direction_bias |
| "Generate AI report for TSLA" | python3 {baseDir}/scripts/aireport.py generate --ticker TSLA --user-id <user> --user-tier PRO |
| "Show my report history" | python3 {baseDir}/scripts/aireport.py summary --user-id <user> --trading-day <today> |
| "Check my report quota" | python3 {baseDir}/scripts/aireport.py quota --user-id <user> --tier PRO |
| "Show my API usage" | python3 {baseDir}/scripts/optionflow.py usage |