# Data provider sources (Phase F3)

## OANDA (practice REST v20)

- **Docs:** https://developer.oanda.com/rest-live-v20/introduction/
- **Use:** FX (Phase C/D), XAU_USD, US100_USD (canonical NAS100)
- **Cost:** Practice/demo account; user-supplied token in `.env` only
- **History:** Paginated candles; complete bars only (`complete: true`)
- **Limits:** Rate limits apply; importer uses delay between pages
- **Terms:** User must comply with OANDA API / demo account terms

## Binance (spot public REST)

- **Docs:** https://binance-docs.github.io/apidocs/spot/en/#kline-candlestick-data
- **Endpoint:** `GET /api/v3/klines` (no API key for market data)
- **Use:** BTCUSDT, ETHUSDT historical klines
- **Cost:** $0 for public market data tier
- **History:** Up to 1000 klines per request; paginate with `startTime` / `endTime`
- **Volume:** Stored as `quote` volume type (not tick FX volume)
- **Limits:** IP rate limits; 429 handled as provider error
- **Terms:** User responsible for compliance with Binance API terms and local regulations

## NAS100 / index caveat

Canonical symbol **NAS100** maps to OANDA **US100_USD**. Availability depends on practice account instrument list. If OANDA rejects the instrument, import fails with a clear provider error — not fabricated data.

## Not used in F3

- TradingView / scraped feeds
- Paid market-data APIs
- Redis, queues, cloud warehouses
