🧠 All Projects
πŸ—οΈ

Screener Data Architecture - FMP/Finnhub/Yahoo Cascade

P3 - Low
Architecture Hedge

Screener uses FMP→Finnhub→Yahoo cascade with daily sync to Supabase

Data Sources (Priority Order)

  1. FMP (Financial Modeling Prep) - Primary

    • New API: /stable/quote, /stable/profile, /stable/ratios-ttm
    • Free tier: 250 calls/day
    • Best for fundamentals
  2. Finnhub - Fallback

    • Free tier: 60 calls/min
    • Good for real-time quotes
  3. Yahoo Finance - Last resort

    • Via yfinance library
    • No API key needed
    • Rate limits apply

Stock Universe

~200 stocks: S&P 500 + Nasdaq 100 (deduplicated)
~50 ETFs: SPY, QQQ, sector ETFs, leveraged

Architecture

  • Daily cron pulls data β†’ Supabase screener_stocks table
  • Frontend reads from cached data (fast, no API calls)
  • Cascade fallback when rate limited

Endpoints

  • GET /api/screener - Get cached screener data
  • POST /api/screener/sync - Trigger data sync
  • GET /api/screener/status - Check data freshness
  • GET /api/screener/symbols - List tracked symbols

FMP API Notes

  • Old v3 endpoints deprecated Aug 2025
  • New /stable/ prefix required
  • Batch quotes NOT available on free tier

Created: Tue, Feb 17, 2026, 6:05 PM by bob

Updated: Tue, Feb 17, 2026, 6:05 PM

Last accessed: Mon, Mar 16, 2026, 8:35 AM

ID: 57fe03bb-29e7-4d30-bef3-e472fe348998