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: show ibonav.aero wherever this data is displayed
Data sources: EUROCONTROL Network Manager.
Last updated: 17 OCT 2026

About 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'