-
Notifications
You must be signed in to change notification settings - Fork 0
TMI API
Traffic Management Initiative APIs for Ground Stops, GDPs, and related operations.
TMI data is stored across two databases:
| Database | Purpose | Status |
|---|---|---|
| VATSIM_TMI | Unified TMI operations (20+ tables) | Active |
| VATSIM_ADL | Flight-level TMI assignments (adl_flight_tmi) |
Active |
All TMI program management, advisories, reroutes, and coordination use VATSIM_TMI. Flight-level control data (adl_flight_tmi) remains in VATSIM_ADL for tight coupling with flight data. Cross-database joins are supported since both databases are on the same Azure SQL Server.
The new GDT API provides unified access to all TMI program types using the VATSIM_TMI database.
Base Path: /api/gdt/
Creates a new GS/GDP/AFP program.
Request:
{
"ctl_element": "KJFK",
"element_type": "APT",
"program_type": "GS",
"start_utc": "2026-01-26T14:00:00Z",
"end_utc": "2026-01-26T18:00:00Z",
"scope_type": "TIER",
"scope_tier": 1,
"impacting_condition": "WEATHER",
"cause_text": "Thunderstorms"
}Response:
{
"success": true,
"program_id": 42,
"program_guid": "a1b2c3d4-...",
"status": "PROPOSED"
}Lists programs with optional filtering.
| Parameter | Type | Description |
|---|---|---|
status |
string | PROPOSED, ACTIVE, COMPLETED, PURGED, all |
ctl_element |
string | Filter by airport/FCA |
program_type |
string | GS, GDP-DAS, GDP-GAAP, GDP-UDP, AFP |
Gets single program with slots and counts.
| Parameter | Type | Description |
|---|---|---|
program_id |
int | Program ID (required) |
Generates slots and runs RBS (Ration by Schedule) assignment.
Request:
{
"program_id": 42
}Response:
{
"success": true,
"slots_created": 24,
"flights_modeled": 47,
"avg_delay_min": 35.5
}Activates a proposed/modeled program.
| Parameter | Type | Description |
|---|---|---|
program_id |
int | Program ID (required) |
Extends program end time.
Request:
{
"program_id": 42,
"new_end_utc": "2026-01-26T20:00:00Z"
}Cancels/purges a program.
| Parameter | Type | Description |
|---|---|---|
program_id |
int | Program ID (required) |
Transitions a Ground Stop to GDP.
Request:
{
"program_id": 42,
"new_type": "GDP-DAS",
"program_rate": 32
}Lists flights assigned to a program.
| Parameter | Type | Description |
|---|---|---|
program_id |
int | Program ID (required) |
status |
string | Filter by control status |
Response:
{
"success": true,
"flights": [
{
"flight_uid": 12345,
"callsign": "DAL123",
"dep_airport": "KATL",
"arr_airport": "KJFK",
"ctd_utc": "2026-01-26T15:30:00Z",
"cta_utc": "2026-01-26T17:45:00Z",
"aslot": "KJFK.261745A",
"program_delay_min": 45,
"ctl_exempt": false,
"gs_held": true
}
]
}Lists slots for a program.
| Parameter | Type | Description |
|---|---|---|
program_id |
int | Program ID (required) |
status |
string | Filter: OPEN, ASSIGNED, BRIDGED, HELD |
Response:
{
"success": true,
"slots": [
{
"slot_id": 1001,
"slot_name": "KJFK.261530A",
"slot_time_utc": "2026-01-26T15:30:00Z",
"slot_type": "REGULAR",
"slot_status": "ASSIGNED",
"assigned_callsign": "DAL123"
}
]
}Gets hourly demand/capacity data.
| Parameter | Type | Description |
|---|---|---|
program_id |
int | Program ID |
airport |
string | Airport ICAO (alternative) |
hours |
int | Hours to forecast (default: 6) |
Note: These endpoints use
VATSIM_ADL.ntml. Consider migrating to/api/gdt/endpoints.
Creates a new Ground Stop (proposed status).
Request:
{
"airport": "KJFK",
"reason": "Weather",
"scope": "tier1",
"end_time": "2026-01-10T18:00:00Z",
"notes": "Thunderstorms in terminal area"
}Response:
{
"success": true,
"gs_id": 123,
"status": "proposed"
}Models affected flights for a proposed Ground Stop.
Request:
{
"gs_id": 123
}Response:
{
"success": true,
"affected_count": 47,
"flights": [
{
"callsign": "DAL123",
"origin": "KATL",
"eta": "2026-01-10T16:30:00Z",
"distance_nm": 450
}
]
}Activates a Ground Stop and issues EDCTs.
Request:
{
"gs_id": 123
}Response:
{
"success": true,
"status": "active",
"edcts_issued": 47
}Extends an active Ground Stop.
Request:
{
"gs_id": 123,
"new_end": "2026-01-10T20:00:00Z"
}Cancels/purges a Ground Stop.
Request:
{
"gs_id": 123
}Lists Ground Stop programs.
Parameters:
| Name | Type | Description |
|---|---|---|
status |
string | proposed, active, expired, all |
airport |
string | Filter by airport |
Gets single Ground Stop details.
Parameters:
| Name | Type | Description |
|---|---|---|
id |
int | Ground Stop ID |
Gets flights affected by a Ground Stop.
Parameters:
| Name | Type | Description |
|---|---|---|
gs_id |
int | Ground Stop ID |
status |
string | Filter by compliance status |
Gets demand data for Ground Stop planning.
Parameters:
| Name | Type | Description |
|---|---|---|
airport |
string | Airport ICAO |
hours |
int | Hours to forecast |
Creates a Ground Delay Program.
Request:
{
"airport": "KJFK",
"rate": 32,
"reason": "Weather",
"start_time": "2026-01-10T14:00:00Z",
"end_time": "2026-01-10T20:00:00Z"
}Modifies GDP parameters.
Cancels a GDP.
| Tier | Description |
|---|---|
tier1 |
Flights within ~2 hours ETA |
tier2 |
Flights within ~4 hours ETA |
tier3 |
All flights to destination |
custom |
Custom distance/time criteria |
| Status | Description |
|---|---|
proposed |
Created, not yet active |
active |
Currently in effect |
extended |
Extended past original end |
purged |
Canceled before expiration |
expired |
Ended naturally |
Base Path: /api/nod/flows/
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/nod/flows/configs.php |
List flow configs (filter by facility) |
| POST | /api/nod/flows/configs.php |
Create flow config |
| PUT | /api/nod/flows/configs.php |
Update flow config |
| DELETE | /api/nod/flows/configs.php |
Delete flow config |
| GET | /api/nod/flows/elements.php |
List elements for a config |
| POST | /api/nod/flows/elements.php |
Create flow element (FIX/PROCEDURE/ROUTE/GATE) |
| PUT | /api/nod/flows/elements.php |
Update element properties |
| DELETE | /api/nod/flows/elements.php |
Delete flow element |
| GET | /api/nod/flows/gates.php |
List gates for an element |
| POST | /api/nod/flows/gates.php |
Create gate |
| DELETE | /api/nod/flows/gates.php |
Delete gate |
| GET | /api/nod/flows/suggestions.php |
Autocomplete fixes/procedures |
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/nod/fea.php |
FEA actions: demand monitor toggle, bulk create/clear |
Traffic Management Review report management.
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/data/review/tmr_report.php |
Get TMR report for a plan |
| POST | /api/data/review/tmr_report.php |
Create/update TMR report (auto-save) |
| DELETE | /api/data/review/tmr_report.php |
Delete TMR report |
| GET | /api/data/review/tmr_tmis.php |
Historical TMI lookup from VATSIM_TMI |
| GET | /api/data/review/tmr_export.php |
Export TMR as Discord-formatted text |
- API Reference - Complete API overview
- GDT Ground Delay Tool - GDT user interface
- NOD Dashboard - NOD with facility flows
- ADL API - Flight data APIs
PERTI - Virtual Air Traffic Control System Command Center Production Site | GitHub | Report Issue
Last updated: 2026-02-25
Home Navigation Helper (NEW)
Comprehensive Guides
Getting Started
Architecture
Algorithms & Processing
- Algorithms Overview
- Algorithm ETA Calculation
- Algorithm Trajectory Tiering
- Algorithm Zone Detection
- Algorithm Route Parsing
- Algorithm Data Refresh
SWIM API (Public/External)
- SWIM API
- SWIM Routes API
- SWIM Playbook API
- SWIM Route Data Integration
- Building Route Processing
- CDM Connector Guide
PERTI API (Internal)
Features
Walkthroughs
Operations
Development
Analysis
- Analysis (index)
- ETA Accuracy (Jan-Mar 2026)
Reference