Menu
Condensed endpoint table, rate limits, and SDK links
Centralized data exchange hub for real-time flight information sharing across the VATSIM ecosystem.
[]()
[
]()
[
]()
[
]()
FIXM Field Naming: Both legacy (
out_utc) and FIXM-aligned (actual_off_block_time) field names are supported permanently. Default responses use legacy names; append?format=fixmfor FIXM-aligned output. See VATSWIM_FIXM_Field_Mapping.md.
| Phase | Status |
|---|---|
| Phase 0: Infrastructure | ✅ Complete |
| Phase 1: REST API | ✅ Complete |
| Phase 2: WebSocket | ✅ Complete |
| Phase 3: SDKs & Integrations | ✅ Complete (Python, C#, Java, JS) |
| Phase 4: Data Isolation | ✅ Complete — all endpoints query SWIM_API exclusively |
Live Features:
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://perti.vatcscc.org/api/swim/v1/flights?status=active"
pip install -e sdk/python
python examples/basic_example.py YOUR_API_KEY
from swim_client import SWIMClient
client = SWIMClient('your-api-key')
@client.on('flight.departed')
def on_departure(data, timestamp):
print(f"{data.callsign} departed {data.dep}")
client.subscribe(['flight.departed', 'flight.arrived'])
client.run()
const swim = new SWIMWebSocket('your-api-key');
await swim.connect();
swim.subscribe(['flight.departed'], { airports: ['KJFK'] });
swim.on('flight.departed', (data) => {
console.log(`${data.callsign} departed ${data.dep}`);
});
Virtual airlines can push flight sim telemetry via the ingest API:
curl -X POST "https://perti.vatcscc.org/api/swim/v1/ingest/adl" \
-H "Authorization: Bearer swim_par_your_key" \
-H "Content-Type: application/json" \
-d '{
"flights": [{
"callsign": "DLH401",
"dept_icao": "KJFK",
"dest_icao": "EDDF",
"altitude_ft": 35000,
"groundspeed_kts": 485,
"vertical_rate_fpm": -1800
}]
}'
curl -X POST "https://perti.vatcscc.org/api/swim/v1/ingest/adl" \
-H "Authorization: Bearer swim_par_your_key" \
-H "Content-Type: application/json" \
-d '{
"flights": [{
"callsign": "DLH401",
"dept_icao": "KJFK",
"dest_icao": "EDDF",
"out_utc": "2026-01-16T14:30:00Z",
"off_utc": "2026-01-16T14:45:00Z"
}]
}'
| Field | Type | Description |
|---|---|---|
vertical_rate_fpm |
INT | Climb/descent rate (+ = climb, - = descend) |
out_utc |
DATETIME | OOOI - Gate departure |
off_utc |
DATETIME | OOOI - Wheels up |
on_utc |
DATETIME | OOOI - Wheels down |
in_utc |
DATETIME | OOOI - Gate arrival |
eta_utc |
DATETIME | FMC-calculated ETA |
etd_utc |
DATETIME | Expected departure |
Base URL: https://perti.vatcscc.org/api/swim/v1
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | API info (no auth) |
/flights |
GET | List flights |
/flight |
GET | Single flight by GUFI |
/positions |
GET | Bulk positions (GeoJSON) |
/tmi/programs |
GET | Active TMI programs (GS/GDP) |
/tmi/controlled |
GET | TMI-controlled flights |
/tmi/reroutes |
GET | TMI reroute definitions |
/tmi/gs |
GET/POST | Ground Stop programs |
/tmi/gs/{id} |
GET | Ground Stop details |
/tmi/gs/{id}/flights |
GET | Flights affected by GS |
/tmi/gs/{id}/model |
POST | Model GS impact |
/tmi/gs/{id}/activate |
POST | Activate GS program |
/tmi/gdp |
GET/POST | Ground Delay Programs |
/tmi/gdp/{id}/flights |
GET | Flights in GDP |
/tmi/gdp/{id}/slots |
GET | GDP slot allocation |
/tmi/mit |
GET | Miles-In-Trail restrictions |
/tmi/minit |
GET | Minutes-In-Trail restrictions |
/tmi/afp |
GET | Airspace Flow Programs |
/tmi/entries |
GET | TMI restriction entries (MIT, AFP, etc.) |
/tmi/advisories |
GET | NTML advisory messages |
/tmi/measures |
GET | TMI measures and flow restrictions |
/tmi/routes |
GET | TMI public routes |
/tmi/flow |
GET | Flow management overview |
/tmi/flow/providers |
GET | Flow management providers (ECFMP) |
/tmi/flow/events |
GET | Flow events |
/tmi/flow/measures |
GET | Flow measures |
/cdm/status |
GET | CDM system status |
/cdm/readiness |
GET/POST | Pilot readiness status |
/cdm/compliance |
GET | CDM compliance monitoring |
/cdm/metrics |
GET | CDM performance metrics |
/cdm/airport-status |
GET | CDM airport status |
/reference/taxi-times |
GET | Airport taxi reference times |
/routes/resolve |
GET | Resolve a single route string to waypoints, distance, and ARTCCs |
/routes/resolve |
POST | Batch resolve up to 50 route strings in a single request |
/routes/cdrs |
GET | Coded Departure Routes |
/playbook/plays |
GET | Playbook route plays |
/playbook/throughput |
GET | Playbook route throughput |
/playbook/analysis |
GET | Route analysis (PostGIS) |
/metering/{airport} |
GET | TBFM metering data for airport |
/metering/{airport}/sequence |
GET | Arrival sequence list |
/jatoc/incidents |
GET | JATOC incident records |
/splits/presets |
GET | Runway configuration presets |
/fea |
GET | Flow Evaluation Areas |
/controllers |
GET | Active ATC controllers (with vNAS enrichment) |
/controllers?summary=true |
GET | Facility staffing summary |
/ingest/adl |
POST | Ingest flight data (write access) |
/ingest/track |
POST | High-freq position updates (write access) |
/ingest/metering |
POST | TBFM metering data (write access) |
/ingest/vnas/controllers |
POST | vNAS controller enrichment (write access) |
/ws |
WS | Real-time WebSocket |
| Event | Description |
|---|---|
flight.created |
New pilot connected |
flight.departed |
Wheels up |
flight.arrived |
Wheels down |
flight.deleted |
Pilot disconnected |
flight.positions |
Position batch |
tmi.issued |
GS/GDP issued |
tmi.released |
TMI ended |
controller.connected |
ATC controller logged on |
controller.disconnected |
ATC controller logged off |
controller.positions |
Controller position batch |
system.heartbeat |
Server keepalive |
{
"airports": ["KJFK", "KLAX"],
"artccs": ["ZNY"],
"callsign_prefix": ["AAL", "UAL"]
}
| Tier | Connections | Rate Limit | Write Access |
|---|---|---|---|
| public | 5 | 100/min | No |
| developer | 50 | 300/min | No |
| partner | 500 | 3,000/min | Yes |
| system | 10,000 | 30,000/min | Yes |
Request a key: Contact dev@vatcscc.org
| Language | Status | Location |
|---|---|---|
| Python | ✅ Complete | sdk/python/ |
| JavaScript | ✅ Built-in | api/swim/v1/ws/swim-ws-client.js |
| C# | ✅ Complete | sdk/csharp/ |
| Java | ✅ Complete | sdk/java/ |
| Document | Description |
|---|---|
| Connector Guide | Unified guide for integrating external data sources |
| API Documentation | Full API reference |
| vACDM Integration | A-CDM departure milestone integration |
| ECFMP Integration | European flow management data integration |
| SimTraffic Integration | SimTraffic metering integration |
| vNAS Integration | vNAS ERAM/STARS push integration |
| ACARS Integration | ACARS OOOI and datalink integration |
| Simulator Integration | Flight simulator plugin integration |
| Implementation Tracker | Current status |
| AOC Telemetry Transition | Latest changes |
| OpenAPI Spec | REST API spec (import into Postman) |
| Swagger UI | Interactive docs |
| Component | Monthly |
|---|---|
| Azure SQL Basic | $5 |
| WebSocket | $0 |
| Total | $5 |