API dokumentācija
Īsa GeoPilot publiskā API dokumentācija — katrs tālāk minētais galapunkts ir pieejams ceļā /api/v1/public jūsu GeoPilot izvietojuma domēnā, un autentifikācijai tiek izmantota API atslēga, nevis sesijas sīkdatne.
Kā ED-269 un ED-318 atšķiras lauku pa laukam: izlasiet ceļvedi. →
Dronu lidojumu aizlieguma zonu API: darba sākšana →
Kā konvertēt ED-269 un ED-318 ģeozonas uz GeoJSON vai KML →
Mašīnlasāms: OpenAPI 3.1 apraksts →
Izmaiņu žurnāls
Kas mainījies publiskajā API, sākot ar jaunāko. Izmaiņa tiek atzīmēta kā “Nesaderīga” tikai tad, ja esošs, pareizi veidots pieprasījums tagad darbojas citādi; viss pārējais ir papildinājums vai labojums.
Konfliktu pārbaudes tagad norāda izlaistos avotus
POST /restrictions/intersect atbildēs ir jauns masīvs excludedSources: katrs API nelicencēts avots, kura ierobežojumus forma arī skar, ar skaitu, bet nekad ne paši ierobežojumi. Iepriekš pārbaude šādā valstī atgrieza total: 0, kas izskatījās pēc brīva apgabala. Katrā konfliktā ir arī sourceAttribution — avota norāde, kas CC BY datiem jārāda.
Publicēts OpenAPI apraksts un API katalogs
Publiskais API tagad ir aprakstīts OpenAPI 3.1 formātā adresē /api/v1/public/openapi.json, kas ģenerēts no tām pašām shēmām, ar kurām API validē pieprasījumus, un iekļauts RFC 9727 katalogā adresē /.well-known/api-catalog. Darbspējas galapunkts GET /api/v1/public/health atbild bez atslēgas. Neviens esošs pieprasījums nedarbojas citādi.
ED-318 konvertēšana labota, pārbaudot pret divām reālām datu plūsmām
ED-318 kodeks bija izveidots pēc publicētās shēmas, bez reālas datu plūsmas, pret kuru to pārbaudīt. Tagad tas ir pārbaudīts tieši pret faktiskiem eksportiem, un vairāki lauku kartējumi bija nepareizi: atļaujas vērtības rakstība, kur tiek norādīts augstums (ģeometrijā, nevis īpašībās) un kā tiek attēlota vairāku apjomu zonas ģeometrija. Jebkura konvertēšana uz ED-318 vai no tā — ed269-ed318, kml-ed318, geojson-ed318 un pretējos virzienos — reālam ED-318 dokumentam var atgriezt citādu, labotu rezultātu nekā pirms šī labojuma.
Atslēgas saņemšana
API piekļuve ir atsevišķs produkts, nevis daļa no kartes abonementa; par to norēķinās atsevišķi, un, tiklīdz tā jūsu kontam ir, to var pārvaldīt pašapkalpošanās režīmā.
Esat šeit pirmoreiz? Abonēt API piekļuvi
Vēlaties izmēģināt pirms pirkšanas vai jums vajadzīgs individuāls pieprasījumu limits? Pieteikties piekļuvei
Jau abonējat? Izveidojiet atslēgu savā profilā — nosauciet to, izvēlieties tikai vajadzīgos tvērumus un nokopējiet neapstrādāto atslēgu, kad tā tiek parādīta, jo tā tiek parādīta tikai vienu reizi. Pārvaldīt API atslēgas
Autentifikācija
Katrs pieprasījums nes jūsu atslēgu kā bearer pilnvaru.
Authorization: Bearer <your-api-key>Tiek nošķirti divi kļūmes stāvokļi:
- Trūkstoša, nepareizi veidota, nezināma, atsaukta vai beigusies atslēga — 401 Unauthorized.
- Derīga atslēga, kuras īpašnieka API piekļuve ir beigusies (abonements atcelts vai beidzies) — 403 Forbidden.
- Derīga atslēga, kurai nav galapunkta prasītā tvēruma — 403 Forbidden, norādot trūkstošo tvērumu.
Tvērumi
Katra atslēga tiek izveidota ar vienu vai vairākiem tvērumiem. Pieprasījumam vajadzīgs tā galapunkta prasītais tvērums neatkarīgi no tā, vai kontam vispār ir API piekļuve.
- RESTRICTIONS_READ
- Gaisa telpas ierobežojumu datu lasīšana — saraksts, punkta, rādiusa un atsevišķa ierobežojuma vaicājumi.
- CONFLICT_CHECK
- Uzzīmētas zonas vai maršruta pārbaude pret aktīvajiem ierobežojumiem.
- CONVERT_ED269
- Konvertēšana starp ED-269 un GeoJSON.
- CONVERT_KML
- Konvertēšana starp KML un jebkuru citu atbalstītu formātu.
- CONVERT_ED318
- Konvertēšana starp ED-318 un jebkuru citu atbalstītu formātu.
Pieprasījumu limiti
Katrs tālāk minētais limits tiek skaitīts katrai atslēgai atsevišķi slīdošā vienas minūtes logā. Katrā atbildē ir X-RateLimit-Limit un X-RateLimit-Remaining; atbildē 429 ir arī Retry-After.
- Konvertēšana
- /convert/ed269-to-geojson, /convert/geojson-to-ed269, /convert/:from-:to
- 60 pieprasījumu minūtē (noklusējums).
- Ierobežojumu lasīšana
- /restrictions, /at, /near, /:id
- 60 pieprasījumu un 200 MB minūtē (noklusējums).
- Konfliktu pārbaude
- /restrictions/intersect
- 60 pieprasījumu minūtē (noklusējums).
Konkrētai integrācijai vajadzīgs augstāks limits? Pieteikties piekļuvei
Kļūdas
Katra kļūme — no jebkura galapunkta — ir vienādas formas JSON (RFC 9457 “problem details”), tāpēc jūsu klients var apstrādāt kļūdas vienā veidā, neminot katram galapunktam atsevišķi.
{
"type": "https://geopilot.space/problems/forbidden",
"title": "Insufficient permissions",
"status": 403,
"detail": "This API key does not have the CONFLICT_CHECK scope.",
"instance": "/api/v1/public/restrictions/intersect",
"requestId": "b3f2b8b0-8b7a-4c9b-9c9a-2f6a7a2b6b34"
}errors uzskaita lauku līmeņa validācijas kļūdas un parādās tikai atbildē 400 vai 422.
- 400
- Pieprasījuma pamatteksts, vaicājums vai parametri neizturēja validāciju.
- 401
- Trūkstoša, nepareizi veidota, nezināma, atsaukta vai beigusies atslēga.
- 403
- Atslēgas īpašniekam vairs nav aktīvas API piekļuves, vai atslēgai nav galapunkta prasītā tvēruma.
- 404
- Pieprasītais resurss nepastāv vai nav redzams jūsu atslēgai — skatiet iepriekš minēto piezīmi par licencēšanu.
- 422
- Iesniegtā ģeometrija ir nederīga vai pārāk sarežģīta novērtēšanai.
- 429
- Pārsniegts pieprasījumu limits. Mēģiniet vēlreiz pēc Retry-After norādītā sekunžu skaita.
Valstis, ko aptver API
API nodrošina tikai tādu avotu datus, kuru publicētāji atļauj komerciālu atkalizmantošanu un tālākizplatīšanu, tāpēc tas aptver mazāk valstu nekā karte. Citur ierobežojumu lasīšana neatgriež neko, un konfliktu pārbaude izlaistos avotus uzskaita laukā excludedSources, nevis ziņo, ka apgabals ir brīvs.
- Aptvertas:
- Austrālija, Somija, Luksemburga, Norvēģija, Šveice, Amerikas Savienotās Valstis
- Tikai kartē (atkalizmantošanas noteikumi nav noskaidroti):
- Latvija, Portugāle, Rumānija
Galapunkti
Ierobežojumu lasīšana atgriež datus tikai no avotiem, kuru licence atļauj komerciālu izmantošanu un tālākizplatīšanu. Šāda iemesla dēļ izslēgts avots darbojas tā, it kā tas nepastāvētu: GET /restrictions/:id tam atgriež 404 tieši tāpat kā nezināmam id. Konfliktu pārbaude ir vienīgais izņēmums: tā izlaisto nosauc laukā excludedSources, lai izslēgta valsts nekad netiktu pasniegta kā brīva.
GET /api/v1/public/restrictions
Scope: RESTRICTIONS_READ
Ierobežojumu saraksts, filtrējams pēc valsts, ierobežojošā taisnstūra, veida, iedarbības un citiem kritērijiem.
curl "https://geopilot.space/api/v1/public/restrictions?country=FI" \
-H "Authorization: Bearer $GEOPILOT_API_KEY"Atbilde
{
"meta": {
"freshness": {
"state": "FRESH",
"sources": [{ "sourceId": "fi-traficom-zones", "state": "FRESH", "lastSyncedAt": "2026-09-01T09:00:00.000Z" }],
"generatedAt": "2026-09-01T12:00:00.000Z"
},
"pagination": { "limit": 1000, "nextCursor": null, "returned": 214, "truncated": false },
"detail": "FULL",
"attributions": ["Source: Finnish Transport and Communications Agency Traficom, licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Modified by GeoPilot: geometry simplified, zones classified."],
"sources": [
{
"id": "fi-traficom-zones",
"providerKey": "fi-traficom-zones",
"name": "Traficom UAS geographical zones",
"attribution": "Source: Finnish Transport and Communications Agency Traficom, licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Modified by GeoPilot: geometry simplified, zones classified.",
"sourceTimestamp": "2026-09-01T06:00:00.000Z",
"lastSyncedAt": "2026-09-01T09:00:00.000Z"
}
],
"authorities": [{ "id": "traficom", "name": "Traficom", "phone": null, "email": null, "website": null }],
"evaluatedAt": "2026-09-01T12:00:00.000Z",
"disclaimer": "GeoPilot is an independent planning tool and is not affiliated with or endorsed by any aviation authority. It shows data published by national authorities, which may be incomplete, out of date or simplified in processing, and it does not authorize any flight. Always check the authority's own publication and current NOTAMs before flying."
},
"geojson": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"geometry": { "type": "Polygon", "coordinates": [[[24.90,60.29],[25.00,60.29],[25.00,60.35],[24.90,60.35],[24.90,60.29]]] },
"properties": {
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"externalId": "EF-UAS-EXAMPLE",
"countryIso2": "FI",
"name": "Example aerodrome UAS zone",
"description": null,
"type": "RESTRICTED_AREA",
"effect": "AUTHORIZATION_REQUIRED",
"effectBasis": "PROVIDER_RULE",
"status": "ACTIVE",
"lowerLimit": { "meters": 0, "datum": "GND", "raw": "GND", "parsed": true },
"upperLimit": { "meters": 1500, "datum": "AMSL", "raw": "1500 AMSL", "parsed": true },
"activationStart": null,
"activationEnd": null,
"schedule": null,
"activeNow": true,
"sourceId": "fi-traficom-zones",
"authorityId": "traficom",
"firstSeenAt": "2025-01-15T00:00:00.000Z",
"lastSeenAt": "2026-09-01T09:00:00.000Z"
}
}
]
}
}GET /api/v1/public/restrictions/at
Scope: RESTRICTIONS_READ
Visi API datos esošie ierobežojumi, kas pārklājas vienā punktā.
curl "https://geopilot.space/api/v1/public/restrictions/at?lat=60.32&lon=24.95" \
-H "Authorization: Bearer $GEOPILOT_API_KEY"Atbilde
{
"meta": { "…": "same shape as GET /restrictions, above" },
"geojson": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"geometry": { "type": "Polygon", "coordinates": [[[24.90,60.29],[25.00,60.29],[25.00,60.35],[24.90,60.35],[24.90,60.29]]] },
"properties": {
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"externalId": "EF-UAS-EXAMPLE",
"name": "Example aerodrome UAS zone",
"type": "RESTRICTED_AREA",
"effect": "AUTHORIZATION_REQUIRED",
"effectBasis": "PROVIDER_RULE",
"status": "ACTIVE",
"activeNow": true,
"sourceId": "fi-traficom-zones",
"authorityId": "traficom"
}
}
]
}
}GET /api/v1/public/restrictions/near
Scope: RESTRICTIONS_READ
Ierobežojumi noteiktā rādiusā ap punktu, sākot ar tuvāko.
curl "https://geopilot.space/api/v1/public/restrictions/near?lat=60.32&lon=24.95&radiusMeters=5000" \
-H "Authorization: Bearer $GEOPILOT_API_KEY"Atbilde
{
"meta": { "…": "same shape as GET /restrictions, above" },
"geojson": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"geometry": { "type": "Polygon", "coordinates": [[[24.90,60.29],[25.00,60.29],[25.00,60.35],[24.90,60.35],[24.90,60.29]]] },
"properties": {
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"externalId": "EF-UAS-EXAMPLE",
"name": "Example aerodrome UAS zone",
"type": "RESTRICTED_AREA",
"effect": "AUTHORIZATION_REQUIRED",
"effectBasis": "PROVIDER_RULE",
"status": "ACTIVE",
"activeNow": true,
"sourceId": "fi-traficom-zones",
"authorityId": "traficom",
"distanceMeters": 842.6
}
}
]
}
}GET /api/v1/public/restrictions/:id
Scope: RESTRICTIONS_READ
Viens ierobežojums pēc id.
curl "https://geopilot.space/api/v1/public/restrictions/3f1b2c4d-0000-4000-8000-000000000000" \
-H "Authorization: Bearer $GEOPILOT_API_KEY"Atbilde
{
"type": "Feature",
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"geometry": { "type": "Polygon", "coordinates": [[[24.90,60.29],[25.00,60.29],[25.00,60.35],[24.90,60.35],[24.90,60.29]]] },
"properties": {
"id": "3f1b2c4d-0000-4000-8000-000000000000",
"externalId": "EF-UAS-EXAMPLE",
"countryIso2": "FI",
"name": "Example aerodrome UAS zone",
"description": null,
"type": "RESTRICTED_AREA",
"effect": "AUTHORIZATION_REQUIRED",
"effectBasis": "PROVIDER_RULE",
"status": "ACTIVE",
"lowerLimit": { "meters": 0, "datum": "GND", "raw": "GND", "parsed": true },
"upperLimit": { "meters": 1500, "datum": "AMSL", "raw": "1500 AMSL", "parsed": true },
"activationStart": null,
"activationEnd": null,
"schedule": null,
"activeNow": true,
"authority": { "id": "traficom", "name": "Traficom", "phone": null, "email": null, "website": null },
"source": {
"id": "fi-traficom-zones",
"providerKey": "fi-traficom-zones",
"name": "Traficom UAS geographical zones",
"attribution": "Source: Finnish Transport and Communications Agency Traficom, licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Modified by GeoPilot: geometry simplified, zones classified.",
"sourceTimestamp": "2026-09-01T06:00:00.000Z",
"lastSyncedAt": "2026-09-01T09:00:00.000Z"
},
"raw": { "…": "the provider's original record, preserved verbatim" },
"firstSeenAt": "2025-01-15T00:00:00.000Z",
"lastSeenAt": "2026-09-01T09:00:00.000Z"
}
}POST /api/v1/public/restrictions/intersect
Scope: CONFLICT_CHECK
Daudzstūra vai maršruta pārbaude pret aktīvajiem ierobežojumiem ar pārskatu par to, ar ko tas saskaras.
curl -X POST "https://geopilot.space/api/v1/public/restrictions/intersect" \
-H "Authorization: Bearer $GEOPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"geometry": {
"type": "Polygon",
"coordinates": [[[24.90,60.29],[25.00,60.29],[25.00,60.35],[24.90,60.35],[24.90,60.29]]]
}
}'Atbilde
{
"conflicts": [
{
"restrictionId": "3f1b2c4d-0000-4000-8000-000000000000",
"externalId": "EF-UAS-EXAMPLE",
"name": "Example aerodrome UAS zone",
"type": "RESTRICTED_AREA",
"effect": "AUTHORIZATION_REQUIRED",
"effectBasis": "PROVIDER_RULE",
"authorityName": "Traficom",
"intersectionAreaM2": 482310.5,
"intersectionRatio": 0.61,
"activeAtQueryTime": true,
"sourceName": "Traficom UAS geographical zones",
"sourceAttribution": "Source: Finnish Transport and Communications Agency Traficom, licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Modified by GeoPilot: geometry simplified, zones classified."
}
],
"summary": { "total": 1, "prohibited": 0, "authorizationRequired": 1, "coordinationRequired": 0, "informationOnly": 0, "unknown": 0 },
"evaluatedAt": "2026-09-01T12:00:00.000Z",
"disclaimer": "GeoPilot is an independent planning tool and is not affiliated with or endorsed by any aviation authority. It shows data published by national authorities, which may be incomplete, out of date or simplified in processing, and it does not authorize any flight. Always check the authority's own publication and current NOTAMs before flying.",
"excludedSources": []
}POST /api/v1/public/convert/ed269-to-geojson
Scope: CONVERT_ED269
Publicēta ED-269 dokumenta konvertēšana uz GeoJSON FeatureCollection.
curl -X POST "https://geopilot.space/api/v1/public/convert/ed269-to-geojson" \
-H "Authorization: Bearer $GEOPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "document": { "UASZoneVersion": { "...": "the published ED-269 document" } } }'Atbilde
{
"geojson": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": { "type": "Polygon", "coordinates": [[[26.05,44.40],[26.15,44.40],[26.15,44.47],[26.05,44.47],[26.05,44.40]]] },
"properties": {
"externalId": "ROU-001",
"name": "Example zone",
"description": null,
"type": "OTHER",
"effect": "PROHIBITED",
"effectBasis": "PROVIDER_RULE",
"lowerLimit": { "meters": 0, "datum": "AGL", "display": "0 m AGL" },
"upperLimit": { "meters": 120, "datum": "AGL", "display": "120 m AGL" },
"activationStart": null,
"activationEnd": null,
"schedule": null,
"authorityHint": null
}
}
]
},
"errors": [],
"totalFeatures": 1
}POST /api/v1/public/convert/geojson-to-ed269
Scope: CONVERT_ED269
GeoJSON Feature vai FeatureCollection konvertēšana uz ED-269 dokumentu.
curl -X POST "https://geopilot.space/api/v1/public/convert/geojson-to-ed269" \
-H "Authorization: Bearer $GEOPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "Feature",
"geometry": { "type": "Polygon", "coordinates": [[[26.05,44.40],[26.15,44.40],[26.15,44.47],[26.05,44.47],[26.05,44.40]]] },
"properties": { "name": "Example zone", "effect": "PROHIBITED" }
}'Atbilde
{
"document": {
"title": "GeoPilot ED-269 export",
"description": "Generated by GeoPilot's GeoJSON → ED-269 conversion endpoint.",
"features": [
{
"name": "Example zone",
"type": "CUSTOMIZED",
"restriction": "PROHIBITED",
"applicability": [],
"zoneAuthority": [],
"geometry": [
{
"uomDimensions": "M",
"horizontalProjection": {
"type": "Polygon",
"coordinates": [[[26.05,44.40],[26.15,44.40],[26.15,44.47],[26.05,44.47],[26.05,44.40]]]
}
}
]
}
]
},
"warnings": []
}Galapunkti — /convert/:from-:to
Papildus diviem iepriekš minētajiem ED-269⇄GeoJSON galapunktiem POST /convert/:from-:to konvertē starp jebkuriem diviem no ED-269, ED-318, KML un GeoJSON — kopā divpadsmit virzītu pāru, kas uzskaitīti tālāk kopā ar katram nepieciešamo tvērumu vai tvērumiem. ed269-geojson un geojson-ed269 šajā īsajā URL darbojas tieši tāpat kā abi iepriekš minētie atsevišķie galapunkti un pastāv līdztekus tiem; abas formas turpina darboties.
| from | to | scope(s) required |
|---|---|---|
| ed269 | ed318 | CONVERT_ED269 + CONVERT_ED318 |
| ed269 | kml | CONVERT_ED269 + CONVERT_KML |
| ed269 | geojson | CONVERT_ED269 |
| ed318 | ed269 | CONVERT_ED318 + CONVERT_ED269 |
| ed318 | kml | CONVERT_ED318 + CONVERT_KML |
| ed318 | geojson | CONVERT_ED318 |
| kml | ed269 | CONVERT_KML + CONVERT_ED269 |
| kml | ed318 | CONVERT_KML + CONVERT_ED318 |
| kml | geojson | CONVERT_KML |
| geojson | ed269 | CONVERT_ED269 |
| geojson | ed318 | CONVERT_ED318 |
| geojson | kml | CONVERT_KML |
POST /api/v1/public/convert/ed269-kml
Scope: CONVERT_ED269 + CONVERT_KML
Publicēta ED-269 dokumenta konvertēšana uz KML dokumentu.
curl -X POST "https://geopilot.space/api/v1/public/convert/ed269-kml" \
-H "Authorization: Bearer $GEOPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "document": { "title": "t", "features": [ { "identifier": "ROU-001", "name": "Example zone", "restriction": "PROHIBITED", "geometry": [ { "uomDimensions": "M", "horizontalProjection": { "type": "Polygon", "coordinates": [[[26.05,44.40],[26.15,44.40],[26.15,44.47],[26.05,44.47],[26.05,44.40]]] } } ] } ] } }'Atbilde
{
"document": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<kml xmlns=\"http://www.opengis.net/kml/2.2\">\n <Document>\n <Placemark>\n <name>Example zone</name>\n <ExtendedData>\n <Data name=\"effect\"><value>PROHIBITED</value></Data>\n </ExtendedData>\n <Polygon>\n <altitudeMode>clampToGround</altitudeMode>\n <outerBoundaryIs><LinearRing><coordinates>26.05,44.40,0 26.15,44.40,0 26.15,44.47,0 26.05,44.47,0 26.05,44.40,0</coordinates></LinearRing></outerBoundaryIs>\n </Polygon>\n </Placemark>\n </Document>\n</kml>",
"errors": [],
"totalFeatures": 1,
"warnings": []
}POST /api/v1/public/convert/kml-ed318
Scope: CONVERT_KML + CONVERT_ED318
KML dokumenta konvertēšana uz ED-318 dokumentu.
curl -X POST "https://geopilot.space/api/v1/public/convert/kml-ed318" \
-H "Authorization: Bearer $GEOPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "document": "<kml><Document><Placemark><name>Example zone</name><ExtendedData><Data name=\"effect\"><value>PROHIBITED</value></Data></ExtendedData><Polygon><outerBoundaryIs><LinearRing><coordinates>26.05,44.40,0 26.15,44.40,0 26.15,44.47,0 26.05,44.47,0 26.05,44.40,0</coordinates></LinearRing></outerBoundaryIs></Polygon></Placemark></Document></kml>" }'Atbilde
{
"document": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": { "type": "Polygon", "coordinates": [[[26.05,44.40],[26.15,44.40],[26.15,44.47],[26.05,44.47],[26.05,44.40]]] },
"properties": {
"name": "Example zone",
"type": "CUSTOMIZED",
"restriction": "PROHIBITED",
"applicability": [],
"zoneAuthority": [],
"uomDimensions": "M"
}
}
]
},
"errors": [],
"totalFeatures": 1,
"warnings": []
}