export_activations.php
Returns exportable activation, extension and deactivation records whose start or deactivation time is within the last 26 hours and the next 12 hours.
https://tra-dev.airspace.at/export_activations.php?importer=abc123
JSON exports for current TRA activations and Austria Widget airspace status, intended for external systems that need machine-readable airspace information.
TRAs are temporary reserved airspaces in Austria for VFR operations. They are located in airspace class G/W and are activated only for defined time windows; outside those times they are inactive.
Returns exportable activation, extension and deactivation records whose start or deactivation time is within the last 26 hours and the next 12 hours.
https://tra-dev.airspace.at/export_activations.php?importer=abc123
Uses the same JSON structure, but extends the lookback window to the last 48 hours plus the next 12 hours.
https://tra-dev.airspace.at/export_activations_48h.php?importer=abc123
Returns the latest 20 exportable system interactions using the same JSON structure. This is useful for integration tests because it is not limited to the rolling time window. This endpoint is always hash-only.
https://tra-dev.airspace.at/export_dev.php?importer=abc123
Only records from clubs and TRAs enabled for JSON export are included. Rejected requests and "no extension possible" notices are not part of this export.
API consumers currently need an assigned importer hash. Pass it as the importer query parameter. The value shown in the examples is a placeholder and must be replaced with the assigned hash.
Please also provide the source IP address of the consuming system if possible. IP allowlisting for the firewall is currently optional, but may be required later or for selected integrations.
API access is provided free of charge. We are happy to present data users as partners on the homepage, including their logo where appropriate.
For commercial or profit-oriented projects, we appreciate voluntary financial support to help keep the service reliable, maintained and available to the community.
If the export is not public and the hash is missing or invalid, the endpoint responds with HTTP 403 and a JSON error message.
The response is a JSON array. Each array item is a command for XContest. Commands use type=activation, type=cancel or type=stop_activation. Grouped internal TRA Manager actions are exported per TRA so a later stop_activation can stop only the affected airspace.
| Field | Type | Meaning |
|---|---|---|
activation_id |
integer | Unique exported command ID. For per-TRA commands it is derived from the internal interaction ID and TRA ID so individual airspaces can later be stopped or cancelled independently. |
type |
string | Command type: activation, cancel or stop_activation. |
addedTimestamp |
string | UTC timestamp when the event was entered. Also present for cancellations. |
cancelled_activation_id |
integer | Only for type=cancel. References the previously exported activation_id that should be removed by the consumer. |
stop_activation_id |
integer | Only for type=stop_activation. References the previously exported activation command that should be shortened. |
stopTime |
string | Only for type=stop_activation. UTC time at which the referenced activation stops. |
activations |
array | Only for type=activation. List of opened TRA intervals. |
airspace |
string | Name of the TRA, for example TRA Almenland. |
start |
string | UTC start time of the activation interval. |
end |
string | UTC end time of the activation interval. |
upperLimit |
string | Optional upper-limit override, for example FL95 or 8500ft AMSL. |
A command with type=activation opens the listed TRA for the exported time interval.
If the same TRA is activated multiple times with real breaks between the windows, each operational window is exported as its own type=activation command.
Extensions are also exported as type=activation with a new activation_id. The start time remains the same as the previous activation, while end contains the new end time.
An early deactivation is exported as type=stop_activation with stop_activation_id and stopTime. It shortens only the referenced activation command.
A cancellation command has type=cancel, its own activation_id, addedTimestamp and cancelled_activation_id. It is intended for correcting mistakes and should remove the referenced previous command from the consumer side.
Consumers should evaluate events by timestamp or activation_id and update their local state per airspace accordingly.
The first event opens TRA Almenland until 11:00 UTC. The second event extends the same TRA until 13:00 UTC. The third event keeps the same start time and extends the TRA until ECET on that day, 18:49:34 UTC.
[
{
"activation_id": 10421,
"type": "activation",
"addedTimestamp": "2026-05-06 06:15:02",
"activations": [
{
"airspace": "TRA Almenland",
"start": "2026-05-06 07:00:00",
"end": "2026-05-06 11:00:00",
"upperLimit": "8500ft AMSL"
}
]
},
{
"activation_id": 10436,
"type": "activation",
"addedTimestamp": "2026-05-06 10:32:18",
"activations": [
{
"airspace": "TRA Almenland",
"start": "2026-05-06 07:00:00",
"end": "2026-05-06 13:00:00"
}
]
},
{
"activation_id": 10458,
"type": "activation",
"addedTimestamp": "2026-05-06 12:44:07",
"activations": [
{
"airspace": "TRA Almenland",
"start": "2026-05-06 07:00:00",
"end": "2026-05-06 18:49:34"
}
]
}
]
This example shows an internal group activation exported as separate per-TRA commands. The later stop_activation affects only TRA BRUCK because it references only BRUCKs exported activation_id.
[
{
"activation_id": 118800001,
"type": "activation",
"addedTimestamp": "2026-05-06 06:45:06",
"activations": [
{
"airspace": "TRA SCHOECKL",
"start": "2026-05-06 07:00:00",
"end": "2026-05-06 12:00:00"
}
]
},
{
"activation_id": 118800002,
"type": "activation",
"addedTimestamp": "2026-05-06 06:45:06",
"activations": [
{
"airspace": "TRA ALMENLAND",
"start": "2026-05-06 07:00:00",
"end": "2026-05-06 12:00:00"
}
]
},
{
"activation_id": 118800003,
"type": "activation",
"addedTimestamp": "2026-05-06 06:45:06",
"activations": [
{
"airspace": "TRA BRUCK",
"start": "2026-05-06 07:00:00",
"end": "2026-05-06 12:00:00"
}
]
},
{
"activation_id": 119000003,
"type": "stop_activation",
"addedTimestamp": "2026-05-06 10:15:21",
"stop_activation_id": 118800003,
"stopTime": "2026-05-06 10:15:00"
}
]
TRA POELS is active three times with breaks in between. Each operational window is exported separately so consumers can display 15:00-17:00 local time as the current window instead of merging the day to 09:00-17:00 local time.
[
{
"activation_id": 1441,
"type": "activation",
"addedTimestamp": "2026-05-21 08:55:00",
"activations": [
{
"airspace": "TRA POELS (W)",
"start": "2026-05-21 07:00:00",
"end": "2026-05-21 08:00:00",
"upperLimit": "8500ft AMSL"
}
]
},
{
"activation_id": 1442,
"type": "activation",
"addedTimestamp": "2026-05-21 12:20:00",
"activations": [
{
"airspace": "TRA POELS (W)",
"start": "2026-05-21 10:30:00",
"end": "2026-05-21 11:30:00",
"upperLimit": "9000ft AMSL"
}
]
},
{
"activation_id": 1443,
"type": "activation",
"addedTimestamp": "2026-05-21 14:50:00",
"activations": [
{
"airspace": "TRA POELS (W)",
"start": "2026-05-21 13:00:00",
"end": "2026-05-21 15:00:00",
"upperLimit": "9500ft AMSL"
}
]
}
]
The first command opens TRA Feldkirchen until 14:00 UTC. The stop_activation command shortens that activation from 12:30 UTC onward.
[
{
"activation_id": 20510,
"type": "activation",
"addedTimestamp": "2026-05-06 06:45:11",
"activations": [
{
"airspace": "TRA Feldkirchen",
"start": "2026-05-06 08:00:00",
"end": "2026-05-06 14:00:00"
}
]
},
{
"activation_id": 20528,
"type": "stop_activation",
"addedTimestamp": "2026-05-06 11:58:44",
"stop_activation_id": 20510,
"stopTime": "2026-05-06 12:30:00"
}
]
The cancel command has its own activation_id 1441 and removes the previously exported activation_id 1440 via cancelled_activation_id. The following activation_id 1442 exports the corrected interval as a new command.
[
{
"activation_id": 1441,
"type": "cancel",
"addedTimestamp": "2026-05-21 08:10:00",
"cancelled_activation_id": 1440
},
{
"activation_id": 1442,
"type": "activation",
"addedTimestamp": "2026-05-21 08:55:00",
"activations": [
{
"airspace": "TRA POELS (W)",
"start": "2026-05-21 09:00:00",
"end": "2026-05-21 10:00:00"
}
]
}
]