Version 1.0.0 • Production Ready
A centralized real-time data exchange hub for flight information across the VATSIM network.
Query flights, positions, and TMI data with filtering and pagination.
Real-time event streaming for departures, arrivals, and position updates.
Position data ready for MapLibre, Leaflet, or Mapbox rendering.
Ground Stops, GDPs, EDCTs, and controlled flight information.
Start integrating with SWIM in three steps.
Log in with your VATSIM account at the API Key Portal to create a key instantly.
Include your API key in the Authorization header:
curl -H "Authorization: Bearer YOUR_KEY" \ https://perti.vatcscc.org/api/swim/v1/flights
Read the full documentation to discover all endpoints, filters, and WebSocket events.
Choose the tier that fits your needs. Public and Developer keys are available instantly.
| Feature | Public | Developer | Partner | System |
|---|---|---|---|---|
| Rate Limit | 100 req/min | 300 req/min | 3,000 req/min | 30,000 req/min |
| WebSocket Connections | 5 | 50 | 500 | 10,000 |
| Write Access | Limited | Full | ||
| Self-Service | Contact Us | Contact Us | ||
| Best For | Personal projects | Development & testing | Virtual airlines | vNAS, CRC, SimTraffic |
Complete REST API for querying flight data and ingesting updates.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/swim/v1/flights |
List flights with filtering by airport, ARTCC, callsign, phase, and TMI status |
| GET | /api/swim/v1/flight |
Get single flight by GUFI, flight_uid, or flight_key |
| GET | /api/swim/v1/positions |
Bulk flight positions in GeoJSON FeatureCollection format |
| GET | /api/swim/v1/tmi/programs |
Active TMI programs (Ground Stops, GDPs) |
| GET | /api/swim/v1/tmi/controlled |
Flights under TMI control with EDCT/slot assignments |
| POST | /api/swim/v1/ingest/adl |
Ingest flight data (OOOI times, ETAs) — Partner+ tier |
| POST | /api/swim/v1/ingest/track |
Ingest track/position updates — System tier |
SWIM serves different needs across the VATSIM ecosystem.
# Track all flights with your prefix GET /flights?callsign=DAL* # Get TMI-controlled flights to your hub GET /tmi/controlled?dest=KATL # Push OOOI times (Partner tier) POST /ingest/adl {"flights": [{"callsign": "DAL123", "off_utc": "..."}]}
// JavaScript - WebSocket subscription const ws = new WebSocket('wss://perti.vatcscc.org/api/swim/v1/ws'); ws.onopen = () => { ws.send(JSON.stringify({ action: 'subscribe', channels: ['flight.positions'], filters: { airports: ['KJFK'] } })); };
# All flights in your ARTCC GET /flights?artcc=ZDC # Flights destined to your airspace GET /flights?fp_dest_artcc=ZNY # Active TMI programs GET /tmi/programs # Controlled flights at your airport GET /tmi/controlled?airport=KJFK
# Find your flight GET /flights?callsign=N172SP # Check ground stops at destination GET /tmi/programs?airport=KJFK # Traffic at your destination GET /flights?dest_icao=KORD&phase=enroute # Flights in a geographic area GET /positions?bounds=-76,39,-72,42
Official client libraries (coming soon).
Everything you need to get started with SWIM.
Create your API key in seconds and start integrating real-time VATSIM flight data today.
Get Your API Key Read the Docs