Menu
Back to Documentation Index

Quick Reference

Condensed endpoint table, rate limits, and SDK links

VATSWIM (System Wide Information Management)

> Centralized data exchange hub for real-time flight information sharing across the VATSIM ecosystem.

![Status]()

![Phase]()

![Cost]()

![FIXM]()

> FIXM Migration (2026-01-27): Transitioning to FIXM-aligned column names (actual_off_block_time

> instead of out_utc, etc.). Both column sets populated during 30-day transition. Use ?format=fixm

> for FIXM output. See VATSWIM_FIXM_Field_Mapping.md.

✅ Status: Production Ready

PhaseStatus
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:

  • REST API with FIXM field naming
  • Multiple output formats: JSON, FIXM, XML, GeoJSON, CSV, KML, NDJSON
  • Real-time WebSocket events
  • Database-backed authentication
  • Tier-based rate limits (100-30,000 req/min)
  • Response caching, ETags, gzip compression
  • Python SDK
  • AOC Telemetry Ingest (vertical rate, OOOI times)
  • NEW: Full data isolation — all endpoints query SWIM_API only; 3 sync daemons keep data fresh

  • Quick Start

    REST API

    curl -H "Authorization: Bearer YOUR_API_KEY" \
         "https://perti.vatcscc.org/api/swim/v1/flights?status=active"
    

    WebSocket (Python)

    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()
    

    WebSocket (JavaScript)

    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});
    });
    


    🆕 AOC Telemetry Integration

    Virtual airlines can push flight sim telemetry via the ingest API:

    Push Telemetry with Vertical Rate

    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
        }]
      }'
    

    Push OOOI Times

    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"
        }]
      }'
    

    Supported Telemetry Fields

    FieldTypeDescription
    vertical_rate_fpmINTClimb/descent rate (+ = climb, - = descend)
    out_utcDATETIMEOOOI - Gate departure
    off_utcDATETIMEOOOI - Wheels up
    on_utcDATETIMEOOOI - Wheels down
    in_utcDATETIMEOOOI - Gate arrival
    eta_utcDATETIMEFMC-calculated ETA
    etd_utcDATETIMEExpected departure

    API Endpoints

    Base URL: https://perti.vatcscc.org/api/swim/v1

    EndpointMethodDescription
    /GETAPI info (no auth)
    /flightsGETList flights
    /flightGETSingle flight by GUFI
    /positionsGETBulk positions (GeoJSON)
    /tmi/programsGETActive TMI programs (GS/GDP)
    /tmi/controlledGETTMI-controlled flights
    /tmi/reroutesGETTMI reroute definitions
    /tmi/gsGET/POSTGround Stop programs
    /tmi/gs/{id}GETGround Stop details
    /tmi/gs/{id}/flightsGETFlights affected by GS
    /tmi/gs/{id}/modelPOSTModel GS impact
    /tmi/gs/{id}/activatePOSTActivate GS program
    /tmi/gdpGET/POSTGround Delay Programs
    /tmi/gdp/{id}/flightsGETFlights in GDP
    /tmi/gdp/{id}/slotsGETGDP slot allocation
    /tmi/mitGETMiles-In-Trail restrictions
    /tmi/minitGETMinutes-In-Trail restrictions
    /tmi/afpGETAirspace Flow Programs
    /tmi/entriesGETTMI restriction entries (MIT, AFP, etc.)
    /tmi/advisoriesGETNTML advisory messages
    /tmi/measuresGETTMI measures and flow restrictions
    /tmi/routesGETTMI public routes
    /tmi/flowGETFlow management overview
    /tmi/flow/providersGETFlow management providers (ECFMP)
    /tmi/flow/eventsGETFlow events
    /tmi/flow/measuresGETFlow measures
    /cdm/statusGETCDM system status
    /cdm/readinessGET/POSTPilot readiness status
    /cdm/complianceGETCDM compliance monitoring
    /cdm/metricsGETCDM performance metrics
    /cdm/airport-statusGETCDM airport status
    /reference/taxi-timesGETAirport taxi reference times
    /routes/cdrsGETCoded Departure Routes
    /playbook/playsGETPlaybook route plays
    /playbook/throughputGETPlaybook route throughput
    /playbook/analysisGETRoute analysis (PostGIS)
    /metering/{airport}GETTBFM metering data for airport
    /metering/{airport}/sequenceGETArrival sequence list
    /jatoc/incidentsGETJATOC incident records
    /splits/presetsGETRunway configuration presets
    /feaGETFlow Evaluation Areas
    /controllersGETActive ATC controllers (with vNAS enrichment)
    /controllers?summary=trueGETFacility staffing summary
    /ingest/adlPOSTIngest flight data (write access)
    /ingest/trackPOSTHigh-freq position updates (write access)
    /ingest/meteringPOSTTBFM metering data (write access)
    /ingest/vnas/controllersPOSTvNAS controller enrichment (write access)
    /wsWSReal-time WebSocket

    WebSocket Events

    EventDescription
    flight.createdNew pilot connected
    flight.departedWheels up
    flight.arrivedWheels down
    flight.deletedPilot disconnected
    flight.positionsPosition batch
    tmi.issuedGS/GDP issued
    tmi.releasedTMI ended
    controller.connectedATC controller logged on
    controller.disconnectedATC controller logged off
    controller.positionsController position batch
    system.heartbeatServer keepalive

    Filters

    {
        "airports": ["KJFK", "KLAX"],
        "artccs": ["ZNY"],
        "callsign_prefix": ["AAL", "UAL"]
    }
    


    API Key Tiers

    TierConnectionsRate LimitWrite Access
    public5100/minNo
    developer50300/minNo
    partner5003,000/minYes
    system10,00030,000/minYes
    Request a key: Contact dev@vatcscc.org


    SDKs

    LanguageStatusLocation
    Python✅ Completesdk/python/
    JavaScript✅ Built-inapi/swim/v1/ws/swim-ws-client.js
    C#✅ Completesdk/csharp/
    Java✅ Completesdk/java/

    Documentation

    DocumentDescription
    Connector GuideUnified guide for integrating external data sources
    API DocumentationFull API reference
    vACDM IntegrationA-CDM departure milestone integration
    ECFMP IntegrationEuropean flow management data integration
    SimTraffic IntegrationSimTraffic metering integration
    vNAS IntegrationvNAS ERAM/STARS push integration
    ACARS IntegrationACARS OOOI and datalink integration
    Simulator IntegrationFlight simulator plugin integration
    Implementation TrackerCurrent status
    AOC Telemetry TransitionLatest changes
    OpenAPI SpecREST API spec (import into Postman)
    Swagger UIInteractive docs

    Cost

    ComponentMonthly
    Azure SQL Basic$5
    WebSocket$0
    Total$5

    Contact

  • Email: dev@vatcscc.org
  • Discord: vATCSCC Server