---
name: reference-wic-free-market-data-apis-2026-05-25
description: Free / free-tier market-data API providers for WIC rate displays + the TradingView live-rates dock decision
metadata: 
  node_type: memory
  type: reference
  originSessionId: 5ce58531-1677-43dd-932d-12465f578bc0
---

2026-05-25 (WIC, World Investment Center repo `fc0web/world-investment-center`). Reference list of **free market-data APIs** for WIC's rate/price displays, saved at the user's request. Full doc committed in the WIC repo: **`docs/free-market-data-apis.md`** (commit `59b0bd5`) — view there for the table.

**Key facts (so I don't re-derive):**
- "Free" = free **tier** (limits / delayed / key / attribution); free tiers change often (Alpha Vantage shrank, IEX Cloud shut down) → **verify connectivity before committing**, like the World Bank fetcher.
- **Crypto** (real-time-ish, often no key, CORS-OK): CoinGecko ★, CoinCap, Binance public.
- **FX** (free = daily/hourly *reference*, not live ticks): Frankfurter ★ (ECB, no key, CORS) — **endpoint moved 2026: `https://api.frankfurter.dev/v1/...` (api.frankfurter.app now 301-redirects there); use `base`/`symbols` params; timeseries = `/v1/{start}..{end}`** (verified 2026-05-25 when wiring the WIC market-watch row). Also open.er-api.com, exchangerate.host, Fixer/CurrencyLayer/OpenExchangeRates (key).
- **Stocks**: Finnhub ★ (free key, US real-time-ish + WS), Twelve Data, Alpha Vantage (shrunk), FMP/Marketstack/Polygon (EOD). Yahoo unofficial = ToS-gray, avoid.
- **Metals**: weakest free; copper mostly paid → fall back to production/reserves (World Bank/USGS).
- **Economic**: World Bank (already used, no key), FRED (free key), IMF.
- **Embeds**: TradingView free widgets (no key, real-time-ish, display-only, attribution required). Bloomberg has NO free embeddable widget.
- **Security**: never put API keys in browser; proxy key-required APIs via a Cloudflare Pages Function. Key-free (CoinGecko/Frankfurter) = browser fetch OK.

**★ Monetization / paywall ToS audit (2026-05-25, user wants to paywall complex data — verified via WebFetch+WebSearch):**
- **TradingView free widgets**: attribution MANDATORY (ToS §4; removing = ban/legal). ToS bars commercial use of services/APIs "except by separate agreement"; **paywall not explicitly addressed → keep in the FREE public layer with attribution, do NOT put behind a paywall**, don't build the paid product on it. [policies](https://www.tradingview.com/policies/)
- **CoinGecko free Demo plan = NOT for commercial use**; commercial needs paid plan ($35/mo+) + "Data provided by CoinGecko" attribution. [api_terms](https://www.coingecko.com/en/api_terms)
- **Paywall-OK (monetizable) sources**: WIC's OWN computed analytics (correlations / D-FUMT₈ / integrated views) · World Bank (CC-BY 4.0 + attribution) · ECB/Frankfurter (attribution) · Natural Earth (public domain) · ISO 3166/4217 datasets (PDDL public domain).
- Verdict: build the PAID tier on {WIC analytics + World Bank + ECB + Natural Earth + ISO}; keep TradingView/CoinGecko-free in the FREE layer; never sell "signals/advice" (regulated) — only objective data/analytics. (TODO: add a 有料化可否 column to WIC docs/free-market-data-apis.md.)

**WIC decision (this session):** the bottom-left "Live Rates" dock uses a **lazy-loaded TradingView "Market Overview" widget** (Forex/Crypto/Indices/Metals tabs) — `src/components/LiveRates.astro`, rendered in `index.astro`. DISPLAY ONLY (no trading on WIC, no investment advice — the standing WIC principle [[project_wwd_to_wic_rename_2026-05-23]]). Lazy-load = page stays light (same pattern as the LiveStream "click to load" card).

**Why:** the user wanted "real-time moving rates, free, grand look" without building data infra; TradingView embed is the pragmatic free fit. Self-hosted alternative (CoinGecko + Frankfurter) stays on the table for a bespoke lightweight panel later.
**How to apply:** for WIC price/rate features, prefer key-free (CoinGecko/Frankfurter) browser fetch or TradingView embed; for key APIs use a Cloudflare Function. Always display-only.
