AUP / UUP
Required roles:
AIS PIB API— Roles
Base endpoint:https://ais-pib-api.ibosoft.net.tr:2087/eurocontrol-aup
Reference documents: EUROCONTROL ERNIP Part 3 Airspace Management Handbook, Ed. 6.1 (02/07/24)
Attribution: showibonav.aerowherever this data is displayed
Data sources: EUROCONTROL Network Manager.
Last updated: 17 OCT 2026About the reference documents: Related Documents and Resources
Depending on your use, the original data sources may also need to be credited.
The European Airspace Use Plans (EAUP) and Updated Airspace Use Plans (EUUP) of the EUROCONTROL Network Manager: the list of releases with their validity, and the tables of each release — ATS route and CDR closures, restricted airspace (RSA) allocations and AUP RAD activations — with filtering, sorting and paging. Data is refreshed every 10 minutes.
The AUP changes during the day: one EAUP (the basic plan of the day) and several EUUPs that update it. Each release has its own validity — WEF (with effect from), TIL (until) — and a Released On time. Releases are not tied to the AIRAC cycle. Past and future releases are kept together; the active release is the latest one released whose WEF ≤ now ≤ TIL. For releases on a map see AUP Geolocator.
Endpoints
| Endpoint | Description |
|---|---|
GET /eurocontrol-aup/status |
Service status: last update, last error, next update, number of releases, active release |
GET /eurocontrol-aup/versions |
All stored releases, newest released first |
GET /eurocontrol-aup/{selector}/categories |
The three tables of a release with their row and column counts |
GET /eurocontrol-aup/{selector}/categories/{category}/columns |
Column headers of a table |
GET /eurocontrol-aup/{selector}/categories/{category} |
Rows of a table — filtered, sorted, paged (most used) |
GET /eurocontrol-aup/{selector}/categories/{category}/columns/{col_index}/values |
Distinct values of a column with counts (for filter menus) |
Parameters
selector
| Value | Meaning |
|---|---|
active |
The release in force now (default choice for a user interface) |
{release_id} |
A specific release, e.g. euup-20260530140000 (<type>-<WEF YYYYMMDDHHMMSS>) |
category
| Value | Table |
|---|---|
ats_cdr_closures |
ATS route and conditional route (CDR) closures |
rsa_allocations |
Restricted airspace (RSA) allocations |
aup_rad_activations |
AUP RAD activations |
Row queries (/categories/{category})
| Parameter | Description |
|---|---|
filter[<header>]=value |
Exact match. Repeated for the same header → OR; different headers → AND |
filter_text[<header>]=text |
Contains text. Repeated → OR |
search=text |
Contains text in any column |
sort=<header>:asc|desc |
Sort; can be repeated |
limit, offset |
Paging (default 100, maximum 1000) |
Headers match case-insensitively (line breaks in headers count as spaces). An unknown header is ignored, not an error.
| Example | Query |
|---|---|
| One value | filter[Area]=EDR201 |
| Several values (OR) | filter[Area]=EDR201&filter[Area]=EDR202 |
| Different columns (AND) | filter[Area]=EDR201&filter[Status]=ACTIVE |
| Text | filter_text[FL]=FL245 |
| Any column | search=EDR |
Response
/versions
{
"count": 17,
"versions": [
{"release_id": "euup-20260530140000", "type": "EUUP", "sequence": 4,
"valid_wef": "2026-05-30T14:00:00", "valid_til": "2026-05-31T06:00:00",
"released_on": "2026-05-29T13:58:44", "is_active": true, "status": "active"},
{"release_id": "eaup-20260530060000", "type": "EAUP", "sequence": 1,
"valid_wef": "2026-05-30T06:00:00", "valid_til": "2026-05-31T06:00:00",
"released_on": "2026-05-29T14:05:34", "is_active": false, "status": null}
]
}
sequence is the number of the release within its day. The 50 most recent releases are kept.
/{selector}/categories
{
"release_id": "euup-20260530140000",
"release": {"release_id": "euup-20260530140000", "type": "EUUP", "valid_wef": "…"},
"categories": [
{"name": "ats_cdr_closures", "row_count": 0, "column_count": 0},
{"name": "rsa_allocations", "row_count": 42, "column_count": 12},
{"name": "aup_rad_activations", "row_count": 7, "column_count": 9}
]
}
Tables are available for the most recent releases; for older ones the tables are empty.
/{selector}/categories/{category}
{
"release_id": "euup-20260530140000", "category": "rsa_allocations",
"total": 42, "count": 42, "limit": 100, "offset": 0,
"columns": [{"index": 1, "header": "Area"}, {"index": 2, "header": "FL"}],
"rows": [
{"_row": 1, "values": ["EDNPZ24", "", "", "245", "660", "", "", "15:30", "23:59", "EDNPZ24RA, EDNPZ24RB, EDNPZ24RC", "", ""],
"extra": {"columns": ["FUA/EU RS Id", "Description", "Remark"],
"rows": [["EDNPZ24RA", "RAD ANNEX 2C / AREA ACTIVE BY AUP/UUP EDNPZ24 …", ""]]}}
]
}
extra is the expandable detail table of a row (additional data, not a copy of the row):
| Table | extra columns |
|---|---|
rsa_allocations |
FUA/EU RS Id, Description, Remark |
aup_rad_activations |
FUA/EU RS Id, Note, Remark |
ats_cdr_closures |
— (extra is always null) |
/columns/{col_index}/values
Distinct values of the column with their counts. The other active filters are applied; the column's own filter is not.
Errors
| Code | Meaning |
|---|---|
404 |
Release, table or column not found, or no data yet |
503 |
The service is starting up; retry shortly |
Examples
# RSA allocations of the active release, area EDR201, sorted by FL
curl 'https://ais-pib-api.ibosoft.net.tr:2087/eurocontrol-aup/active/categories/rsa_allocations?filter[Area]=EDR201&sort=FL:asc&limit=50'
# Search "LFRR" in the CDR closures of a release
curl 'https://ais-pib-api.ibosoft.net.tr:2087/eurocontrol-aup/euup-20260530140000/categories/ats_cdr_closures?search=LFRR'
# Release list
curl 'https://ais-pib-api.ibosoft.net.tr:2087/eurocontrol-aup/versions'