# What Data Sources Are Used for Flight Tracking in God's Eye View?

> Discover the data sources for flight tracking in God's Eye View. Learn how OpenSky Network, adsb.lol, and adsbdb.com provide real-time ADS-B feeds, local snapshots, and aircraft metadata.

- Repository: [Bilawal Sidhu/gods-eye-view](https://github.com/bilawalsidhu/gods-eye-view)
- Tags: data-sources
- Published: 2026-08-29

---

**God's Eye View aggregates real-time flight data from three public aviation APIs—OpenSky Network for global ADS-B feeds, adsb.lol for high-resolution local snapshots and military aircraft, and adsbdb.com for aircraft metadata enrichment—to power its comprehensive tracking interface.**

The open-source flight tracking application **God's Eye View** (`bilawalsidhu/gods-eye-view`) relies on a multi-source architecture to deliver real-time aviation data without hosting expensive radio hardware. Understanding what data sources are used for flight tracking in this React-based application reveals how modern web apps aggregate public ADS-B feeds through proxy layers and modular data services.

## The Three Core Data Sources for Flight Tracking

### OpenSky Network (Global ADS-B Feed)

The **OpenSky Network** provides the primary backbone of global aircraft positions, offering a worldwide ADS-B feed covering all aircraft. The application proxies requests through the local endpoint `/api/opensky`, which forwards to `https://opensky-network.org/api/...` according to the proxy implementation in [`vite.config.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/vite.config.js) (lines 2912-3045). The main data layer consumes this feed via [`src/data/flights.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/flights.js), where the constant `const API_URL = '/api/opensky'` defines the base path for fetching state vectors.

### adsb.lol (Point Snapshots and Military Aircraft)

**adsb.lol** serves two distinct purposes within the application architecture. First, it delivers point-based snapshots for the current map viewport, proxied through `/api/adsblol` as defined in [`vite.config.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/vite.config.js) (lines 4703-4730). Second, it provides a dedicated military aircraft feed accessed via `/api/adsblol/mil`, with processing logic isolated in [`src/data/militaryFlights.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/militaryFlights.js). This separation allows the application to render military flights with distinct visual styling while maintaining high-resolution positional data for the user's current view.

### adsbdb.com (Callsign Enrichment)

**adsbdb.com** enriches raw flight data with aircraft metadata including type designators, registration numbers, and origin-destination routes. The proxy at `/api/adsbdb/*` (see [`vite.config.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/vite.config.js) lines 2325-2416) forwards enrichment requests to the adsbdb API. The flight manager in [`src/data/flights.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/flights.js) processes these enrichments through helper functions like `_enqueueEnrich`, which queues requests for callsign-to-route and ICAO-to-type translations.

## How the Data Sources Are Integrated

### Vite Proxy Configuration

The development server uses Vite's proxy feature to route API requests and handle CORS restrictions. The [`vite.config.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/vite.config.js) file defines three critical proxy paths: `/api/opensky` for OpenSky Network global feeds, `/api/adsblol` for adsb.lol snapshots and military data, and `/api/adsbdb` for metadata enrichment. This architecture allows the frontend to fetch data from third-party APIs as if they were local endpoints, centralizing request management and caching logic.

### Data Layer Implementation

The application modularizes data fetching across specialized modules. [`src/data/flights.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/flights.js) orchestrates the primary OpenSky feed and manages the adsbdb enrichment queue. [`src/data/militaryFlights.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/militaryFlights.js) isolates military-specific parsing logic, while [`src/data/adsbLolFallback.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/adsbLolFallback.js) handles viewport-based point queries with the `fetchAdsblolPoint` function. Attribution for these sources is maintained in [`src/data/dataCredits.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/dataCredits.js), ensuring compliance with API terms of service.

## Code Implementation Examples

The following implementations demonstrate how each data source is consumed within the application's data layer:

*Fetching the OpenSky feed (used by the main flight layer):*

```javascript
// src/data/flights.js
const API_URL = '/api/opensky';

export async function fetchOpenSky() {
  const response = await fetch(API_URL);
  const data = await response.json();   // { states: [...] }
  return data;
}

```

*Fetching a point-snapshot from adsb.lol (used for the current viewport):*

```javascript
// src/data/adsbLolFallback.js
export async function fetchAdsblolPoint(lat, lon) {
  const url = `/api/adsblol/point?lat=${lat}&lon=${lon}`;
  const resp = await fetch(url, { headers: { 'User-Agent': 'gods-eye-view' } });
  return resp.json(); // { ac: [...] }
}

```

*Enriching a callsign with adsbdb data (type & route):*

```javascript
// src/data/flights.js (excerpt)
_enqueueEnrich(`t:${icao24}`, `/api/adsbdb/type/${icao24.toLowerCase()}`, (data) => {
  // data.type, data.registration, …
});
_enqueueEnrich(`r:${callsign}`, `/api/adsbdb/route/${encodeURIComponent(callsign)}`, (data) => {
  // data.route (origin → destination)
});

```

## Summary

- Three public APIs power the stack: **OpenSky Network**, **adsb.lol**, and **adsbdb.com**
- The Vite development server proxies all requests through `/api/*` endpoints to handle CORS and implement caching strategies
- [`src/data/flights.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/flights.js) coordinates primary flight data and metadata enrichment via the `_enqueueEnrich` helper
- Military aircraft tracking is isolated in [`src/data/militaryFlights.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/militaryFlights.js) using the adsb.lol military feed at `/api/adsblol/mil`
- Point-based viewport queries for high-resolution local data are handled by [`src/data/adsbLolFallback.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/adsbLolFallback.js)

## Frequently Asked Questions

### What is the primary data source for real-time flight positions?

The **OpenSky Network** provides the primary global ADS-B feed for all aircraft positions worldwide. The application consumes this through the proxied endpoint `/api/opensky` as implemented in [`src/data/flights.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/flights.js), which polls the OpenSky API and processes the `states` array containing live aircraft coordinates, velocities, and altitudes.

### How does God's Eye View handle military aircraft tracking?

Military aircraft are tracked separately using **adsb.lol**'s dedicated military feed. The system queries `/api/adsblol/mil` through the proxy configuration in [`vite.config.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/vite.config.js), with parsing and state management logic isolated in [`src/data/militaryFlights.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/militaryFlights.js). This architectural separation ensures military flights are flagged distinctly from civilian traffic in the visualization layer while maintaining high update frequencies.

### What API provides aircraft type and route information?

The **adsbdb.com** API enriches raw flight data with aircraft registration, ICAO type designators, and origin-destination routes. When a callsign is detected, the application queues enrichment requests via the `_enqueueEnrich` helper in [`src/data/flights.js`](https://github.com/bilawalsidhu/gods-eye-view/blob/main/src/data/flights.js), fetching metadata from `/api/adsbdb/type/${icao24}` for aircraft specifications and `/api/adsbdb/route/${callsign}` for flight plan details.

### Is authentication required for these flight tracking APIs?

According to the source code in `bilawalsidhu/gods-eye-view`, the **OpenSky Network** supports optional authentication for higher rate limits, while **adsb.lol** and **adsbdb.com** are consumed without authentication tokens in the current implementation. The Vite proxy configuration handles request forwarding without injecting API keys into client-side bundles, keeping credentials server-side during development.