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, inst...
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 |