Menu

API Documentation

Native JSON API (V1)

/api/v1/native/airspaces

Returns an array of airspaces. This includes AIP, VLK (airfields and heliports), as well as local agreements. "LastUpdate" indicates the latest change in the dataset.

Test it!

/api/v1/native/wildlife

Returns an array of wildlife areas. "LastUpdate" indicates the latest change in the dataset.

Test it!

Example

{
    "ApiVersion": "v1", 
    "LastUpdate": "2021-03-24T18:16:07",
    "Airspaces": [ ... ]
}

Datastructures

Airspace Metadata

{
    "Name": "TMA Emmen 3 HX",
    "ASClass": "D",
    "ASType": "TMA",
    "HX": true,
    "DABS": false,
    "Dropzone": false,
    "InactiveByAgreement": false,
    "Callsign": "Emmen TWR",
    "Frequency": "120.425",
    "AdditionalInfos": "Sample text...",
    "Validity": [ ... ],
    "Segments": [
        {
            "Shape": [ ... ],
            "Upper": { ... },
            "Lower": { ... }
        }
    ]
}
Name
Name of the airspace
ASClass
Airspace class A-G (optional). Usually only provided for relevant airspaces (Class C and D). Class A and B don't exist in Switzerland. Class E-G are usually not designated, since they are not relevant for navigational purpose.
ASType
Airspace type:
CTA: according to ICAO/glider chart
AWY: Airway, according to ICAO/glider chart
CTR: according to ICAO/glider chart
TMA: according to ICAO/glider chart
FIZ: according to ICAO/glider chart
RMZ: Radio Mandatory Zone, according to ICAO/glider chart or local agreements
Q: Danger Area (LS-D) according to ICAO/glider chart
R: Restricted Area (LS-R) according to ICAO/glider chart
W: Glider Sector according to ICAO/glider chart
Airfield: according to VLK or local agreements
Heliport: according to VLK or local agreements
HX
Whether the airspace is HX activated (can be activated any time)
DABS
Whether the airspace is activated by DABS
Dropzone
Whether the airspace/airfield contains a Para/Dropzone.
InactiveByAgreement
Whether the airspace (mostly used for small airfields / heliports) is replaced by some local agreements. In this case, the airspace is just depicted for situational awareness and the boundaries of the local agreement (usually smaller) counts.
Callsign
[optional] Callsign to be used when communicating on the airspace frequency
Frequency
[optional] Associated frequency of the airspace, e.g. to get a clearence
AdditionalInfos
[optional] Description / additional infos for the airspace if available
Validity
[optional] In what date range(s) the airspace is valid/active. E.g. if an airspace is newly added or removed or if it's only valid on certain dates during the year. See Validity object. If the airspace is always valid, the property is omitted.
Segments
An airspace consists of one or more 3-dimensional segments. Most airspaces are represented by only one segment. But if the airspace is cut appart e.g. by local agreements, the airspace needs to be represented by multiple segments. One segment consists of a 2-dimensional Shape, and Upper and Lower Altitude.

Wildlife Metadata

{
    "Name": "Aescher Ebenalp",
    "ASType": "Wildschutzvereinbarung",
    "AdditionalInfos": "Description...",
    "Validity": [ ... ],
    "Segments": [
        {
            "Shape": [ ... ],
            "Upper": { ... },
            "Lower": { ... }
        }
    ]
}
Name
Name of the wildlife zon
ASType
Zone type:
Wildschutzvereinbarung: Agreements by SHV and/or clubs
Vogelschutzzone: Voluntary protection zones of eagle nests
AdditionalInfos
[optional] Description / additional infos for the zone if available
Validity
[optional] In what date range(s) the zone is valid/active. E.g. if a zone is newly added or removed or if it's only valid on certain dates during the year. See Validity object. If the zone is always valid, the property is omitted.
Segments
An zone consists of one or more 3-dimensional segments. Most zones are represented by only one segment. One segment consists of a 2-dimensional Shape, and Upper and Lower Altitude.

Airspace Shapes

An airspace shape is an array of features to represent not only points/polygons, but also arcs and circles. Coordinates are WGS84 latitude / longitude in degrees.

Airspace Shapes: Polygon

[
    {
        "Type": "Point",
        "Coordinate": { "Latitude": 46.990833, "Longitude": 8.134722 }
    },
    {
        "Type":"Point",
        "Coordinate": { "Latitude": 46.953888, "Longitude": 8.205 }
    },
    {
        "Type":"Point",
        "Coordinate": { "Latitude": 46.904167, "Longitude": 8.159167 }
    },
    {
        "Type":"Point",
        "Coordinate": { "Latitude":46.947778, "Longitude": 8.076389 }
    }
]

Points are connected with straight lines in this case. The first and last point are also connected. Latitude and longitude are in degrees.

Airspace Shapes: Arcs

Airspaces may contain arcs, for example Sion CTR. The "CoordArc" feature describes an arc around a center point (CoordArc.Coordinate), starting at the Point before the CoordArc and ending at the Point after the CoordArc. The arc can either run clockwise (ArcDirection: CW) or counterclockwise (ArcDirection: CW).

Corresponds to a DB record in an OpenAir file.

[
    {
        "Type": "Point",
        "Coordinate": { "Latitude": 46.251667, "Longitude": 7.3475 }
    },
    {
        "Type": "Point",
        "Coordinate": { "Latitude": 46.278055, "Longitude": 7.434722 }
    },
    {
        "Type": "Point",
        "Coordinate": { "Latitude": 46.233333, "Longitude": 7.467222 }
    },
    {
        "Type": "Point",
        "Coordinate": { "Latitude": 46.201111, "Longitude": 7.3975 }
    },
    {
        "Type": "Point",
        "Coordinate": { "Latitude": 46.172222, "Longitude": 7.239167 }
    },
    {
        "Type": "CoordArc",
        "Coordinate": { "Latitude": 46.198333, "Longitude": 7.229167 },
        "ArcDirection": "CW"
    },
    {
        "Type": "Point",
        "Coordinate": { "Latitude": 46.224167, "Longitude": 7.217778 }
    }
]

Airspace Shapes: Circles

Circles should have only one feature (type "Circle") in the Shape array.

Corresponds to a DC record in an OpenAir file.

[
    {
        "Type": "Circle",
        "Coordinate": { "Latitude": 46.759166, "Longitude": 9.088055 },
        "Radius": 10.0000
    }
]
Coordinate
Center of the circle
Radius
Radius im km.

Airspace Altitudes

With each airspace (segment), an upper and lower altitude boundary is provided. Since published metric (glider chart) and imperial (ICAO) altitudes are not mathematical meter/feet conversions, we'll provide both numbers in separate fields. If only one of them is availabe, we will provide the original value and will not calculate the other.

"Upper": {
    "Metric": {
        "Alt": { "Type": "m STD", "Altitude": 3950 }
    }
    "Imperial": {
        "Alt": { "Type": "FL", "Altitude": 130 }
    }
},
"Lower": {
    "Metric": {
        "Alt": { "Type": "m QNH", "Altitude": 1850 },
        "Alt2": { "Type": "m AGL", "Altitude": 300 }
    },
    "Imperial": {
        "Alt": { "Type": "ft QNH", "Altitude": 6000 },
        "Alt2": { "Type": "ft AGL", "Altitude": 1000 }
    }
}
Alt
Primary altitude, always given
Alt2
[optional] Secondary altitude, if an airspace boundary is defined by two altitudes like "1850m AMSL or 300m AGL".
Type
Unit of the altitude and wheter it refers to local pressure (QNH) or standard atmosphere. Possible values are:
m QNH: Meters above mean sea level in local pressure (QNH)
m STD: Meters above mean sea level in standard atmosphere
m AGL: Meters above ground ("GND" will be encoded as 0 m AGL)
ft QNH: Feet above mean sea level in local pressure (QNH)
ft STD: Feet above mean sea level in standard atmosphere (usually, these altitudes should be given as FL)
ft AGL: Feet above ground ("GND" will be encoded as 0 ft AGL)
FL: Flight level, always in standard atmosphere
NOTAM: Altitude is only defined by NOTAM. Altitude value will be 0.
Altitude
The altitude value

Airspace Validity

Array of from/to dates, when an airspace is valid/active. The following example shows an airspace that is active until March 24th, from May 1st until May 31st, and then again from October 1st onwards.

[
    { "ValidFrom": null, "ValidTo": "2021-03-24" },
    { "ValidFrom": "2021-05-01", "ValidTo": "2021-05-31" },
    { "ValidFrom": "2021-10-01", "ValidTo": null },
]

See also

Support

If you have any questions about the API, feel free to ask:
Dominik Mauchle.
Also, if you are using the API and want to be informed about updates, let me know.