◆ DATA PROVIDERS

Price + news data — three stacks, free to premium

Swing Deck already ships with a 4-tier cascade that falls through providers automatically. You can run the whole thing without a single API key, but adding 3 free keys (5 minutes of signup work) unlocks live quotes, sentiment, and better news. Here's what each tier adds and how to wire them.

The cascade (how Swing Deck fetches data)

┌─ QUOTES ─────────────────────────────────────────────────────────┐
│ Tier 0  Tradier        — sub-second, bearer token                │
│ Tier 1  Finnhub        — ~15-min delayed on free tier            │
│ Tier 2A Alpha Vantage  — keyed free tier                         │
│ Tier 2B Stooq          — free, EOD-based                         │
│ Tier 3  yfinance       — last resort, unofficial                 │
└──────────────────────────────────────────────────────────────────┘

┌─ HISTORICAL BARS ────────────────────────────────────────────────┐
│ Tier 2A Alpha Vantage  — daily, keyed                            │
│ Tier 2B Stooq          — daily, free                             │
│ Tier 3  yfinance       — last resort                             │
└──────────────────────────────────────────────────────────────────┘

┌─ NEWS ───────────────────────────────────────────────────────────┐
│ Tier 1A Finnhub news   — keyed, per-ticker                       │
│ Tier 1B GNews.io       — commercial-friendly ($49 upgrade path)  │
│ Tier 1C News API       — non-commercial free tier                │
│ Tier 2  Google RSS     — free, unlimited                         │
│ Tier 3  yfinance news  — last resort                             │
└──────────────────────────────────────────────────────────────────┘

┌─ SENTIMENT ──────────────────────────────────────────────────────┐
│ Primary MarketAux      — sentiment scoring, 100/day free         │
│ Fallback OBV + volume  — no external call                        │
└──────────────────────────────────────────────────────────────────┘
    

Each tier falls through to the next on 429 (rate-limited), 500 (provider down), or empty response. The dashboard shows which tier answered each request in the source-health panel.

Three recommended stacks

🆓 FREE STACK · $0/mo · default out-of-box

Works without any API key signup. Good for testing Swing Deck before deciding to invest time in registrations.

BrokerManual portfolio.txt + paper trading mode
QuotesStooq (EOD) + yfinance (last resort)
HistoricalStooq + yfinance
NewsGoogle RSS (unlimited, free)
SentimentOBV + volume fallback (no sentiment scoring)
Total$0/mo

What works: Full 11-point score, all 11 price-action triggers, all 13 pillars, status lights, AI thesis, morning briefing.
What's missing: live quotes (EOD only), AI sentiment, ticker-specific news with broad publisher coverage.

🔑 FREE-WITH-KEYS · $0/mo · recommended for most users

Same $0 cost, but you register for 4 free API keys (5 min total). Unlocks sentiment, per-ticker news, and full cascade.

BrokerTradier (free tier, 15-min delayed quotes + Greeks)
QuotesTradier → Finnhub → Alpha Vantage → Stooq → yfinance
HistoricalAlpha Vantage → Stooq → yfinance
NewsFinnhub (60/min) + GNews (100/day) + MarketAux (100/day)
SentimentMarketAux (AI scored)
Total$0/mo

The sweet spot. Every feature works. 5 minutes of signup = lifetime of better data.

💼 PRO STACK · ~$30/mo · for active traders

BrokerTradier Pro (real-time) or Alpaca
Tradier Pro real-time$10/mo
MarketAux Pro$19/mo · 10,000 calls/day · full sentiment
Everything elseCovered by free-tier keys above
Total~$29/mo

Key upgrade: real-time quotes (no 15-min lag on triggers) + higher news throughput for active-ticker workflows.

🏆 PREMIUM STACK · ~$280/mo · power users

Broker writesE*TRADE or IBKR · free
Polygon Stocks Advanced$79/mo · institutional-grade real-time
Unusual Whales$50/mo · options flow + dark-pool prints
SpotGamma$99/mo · real gamma exposure levels
Finnhub Pro$50/mo · news + fundamentals + earnings transcripts
Total~$280/mo

What this unlocks: real gamma walls (not the blog guru's metaphor — actual dealer positioning), options-flow edge, institutional news coverage, intraday regime awareness.

Free-keys quickstart (5 minutes total)

Register these 4 free keys in order. Each takes ~60 seconds. Add to your .env file.

1Finnhubfinnhub.io/register

60 API calls/min free forever. Powers: real-time quotes, per-ticker company news.
.env: FINNHUB_API_KEY=...

2MarketAuxmarketaux.com/register

100 calls/day free. Powers: AI sentiment scoring (drives Swing Deck's Whale Sentiment score).
.env: MARKETAUX_API_KEY=...

3Alpha Vantagealphavantage.co/support

25 calls/day free. Powers: historical backup, international tickers.
.env: ALPHA_VANTAGE_API_KEY=...

4GNewsgnews.io/register

100 calls/day free. Powers: broad-publisher news. Commercial-friendly paid tier ($49/mo).
.env: GNEWS_API_KEY=...

Tradier is set up separately — see Broker setup. The free token works for quotes + Greeks.

Viewing cascade health in the dashboard

Hit http://localhost:8001/data/sources/health to see which providers are keyed + which tier answered each recent request. Also surfaced on the Settings panel as "Data Sources → Provider health."

{
  "providers": {
    "tradier":       true,
    "finnhub":       true,
    "marketaux":     true,
    "alpha_vantage": true,
    "gnews":         true,
    "newsapi":       false
  }
}

Every true = an active tier. Every false = Swing Deck falls through to the next one (no user-visible breakage — just a degraded free-tier experience).

Ready to wire it up

Each free key is 60 seconds. All 4 = a production-grade stack for $0.

Back to install →