Skip to content

Data providers

Atlas pulls from five upstream services, all routed through the backend (backend/services/) so API keys stay server-side. The frontend never calls these providers directly — that's enforced by the project's secrets handling rules.

Finnhub

Used forLive equity quotes, instrument search, intraday OHLC
Wired inbackend/services/finnhub.py
Routesmarket.py, search.py, websocket.py
Env varFINNHUB_API_KEY
Frontend surfacesMarket panel, Watchlist, Advanced search, Market dashboards

Finnhub powers the live side of equity data. Quote updates flow over the WebSocket channel during market hours.

EODHD

Used forEOD prices, fundamentals, dividends, splits, analyst estimates
Wired inbackend/services/eodhd.py
Routesmarket.py, graphs.py
Env varsEODHD_API_KEY, EODHD_BASE_URL
Frontend surfacesMarket panel (fundamentals view), the entire Security dashboard

EODHD is the heavy lift — every fundamental and disclosure surface in Atlas is downstream of it.

OpenSky

Used forADS-B aircraft positions
Routesaircraft.py
Env varsOPENSKY_USERNAME, OPENSKY_PASSWORD (optional — anonymous access works at lower rate limits)
Frontend surfaces3D Globe ADS-B layer, Timeline & events, aircraft detail cards

OpenSky is the source of truth for ADS-B in Atlas. Coverage is dense over Europe / North America, sparse over oceans and remote interiors.

MarineTraffic

Used forAIS vessel positions
Routesvessels.py
Env varMARINETRAFFIC_API_KEY (optional — gates the AIS layer)
Frontend surfaces3D Globe AIS layer, Timeline & events, vessel detail cards

Coverage is dense in coastal waters, sparser mid-ocean. Vessels can disable transponders — last-update timestamps drifting past 24h usually mean the transponder went dark, not the vessel stopped.

Cesium Ion

Used for3D globe tile rendering, terrain, imagery
RoutesNone (frontend Cesium client)
Env varsCESIUM_ION_TOKEN (backend), VITE_CESIUM_ION_TOKEN (frontend, public)
Frontend surfaces3D Globe entirely

Cesium Ion is the only provider where a token is exposed to the client — the VITE_* prefix bundles it into the build. Use a Cesium Ion access token scoped to globe rendering only, never a full-permissions token.

Frontend-only env

For completeness, the frontend reads two more env vars at build time:

  • VITE_API_URL — base URL of the backend (defaults to http://127.0.0.1:8000 in dev).
  • VITE_CESIUM_ION_TOKEN — bundled into the client; treat as public.

Re-reading credentials

All backend service modules use a _key() helper that re-reads os.environ on every call rather than capturing at import time. This supports test-time monkeypatching and zero-downtime credential rotation — restart the backend after rotating, but in-flight requests don't fail.

Released under the project license. Public sources only — no proprietary or restricted data.