# Stock Monitoring API Research *Compiled 2026-01-29 8pm ET* ## Goal Automated alerts for: - Price movements >5% daily - News headlines for specific tickers (NABL, MSFT, S, etc.) ## API Comparison | API | Free Tier | Rate Limit | Real-time | News | Best For | |-----|-----------|------------|-----------|------|----------| | **Finnhub** | ✅ Yes | 60/min | ✅ | ✅ | Best free option | | **Alpha Vantage** | ✅ Yes | 25/day | ❌ (15min delay) | ✅ | Technical indicators | | **Polygon.io** | ✅ Yes | 5/min | ❌ (EOD) | ✅ | Historical data | | **yfinance** | ✅ Free | ~2000/hr | ✅ | ❌ | Quick polling | | **TradingView** | ❌ Paid ($15/mo) | N/A | ✅ | ❌ | Visual alerts | ## Recommendation: Finnhub + yfinance combo ### Finnhub (news + fundamentals) - Free API key: https://finnhub.io/register - 60 calls/minute = plenty for monitoring - Has company news endpoint - Has price target / analyst ratings ```python import finnhub client = finnhub.Client(api_key="YOUR_KEY") # Get quote quote = client.quote('NABL') # c=current, pc=previous close, dp=% change # Get news news = client.company_news('NABL', _from="2026-01-01", to="2026-01-30") ``` ### yfinance (quick price checks, no API key) ```python import yfinance as yf # Single quote stock = yf.Ticker("NABL") info = stock.info price = info.get('currentPrice') prev_close = info.get('previousClose') pct_change = ((price - prev_close) / prev_close) * 100 # Multiple stocks at once data = yf.download(['NABL', 'MSFT', 'S'], period='1d') ``` ## Implementation Plan ### Simple cron-based monitor 1. Run every 30 min during market hours (9:30am-4pm ET) 2. Poll prices for watchlist 3. Calculate daily % change 4. If >5% move OR significant news → ping Signal ### Watchlist - **NABL** - Johan's ex-employer, PE takeover watch - **S** - Johan's short position - **MSFT, NVDA, TSLA** - Big tech moves - **GLD, SLV** - Metals - **BTC** - Crypto ## No Built-in Webhooks None of the free tiers offer "push when price hits X" functionality. Must poll and compare ourselves. ## Next Steps 1. Get free Finnhub API key 2. Create `/home/johan/clawd/scripts/stock-monitor.py` 3. Add cron job for market hours 4. Integrate with James dashboard news feed --- *Research by James, ready for Johan's review*