Complete API Workflow
See how our REST endpoints work together by following this example that covers a typical integration scenario.
Variables Used in Examples
These placeholder values are used consistently throughout the example requests:
sntest1: The serial number of the uas used. sample_uuid: The UUID of the operation created and updated
Slot availability
Getting slot availability
POST https://portal.rnd-eureka.unifly.tech/api/gcs/slots/availability
# LEPA
{
"timeFrame": {
"start": "2025-07-04T11:08:26Z",
"end": "2025-07-04T16:08:26Z"
},
"location": {
"longitude": 2.7107256620075777,
"latitude": 39.546638390251985
},
"operationType": "tko"
}
# LEMH
{
"timeFrame": {
"start": "2025-07-04T11:08:26Z",
"end": "2025-07-04T16:08:26Z"
},
"location": {
"longitude": 2.7107256620075777,
"latitude": 39.546638390251985
},
"operationType": "lnd"
}
Operation creation
|
To select available slots to use for this operation make sure to set the |
POST https://portal.rnd-eureka.unifly.tech/api/gcs/uas/sntest1/operations
{
"type": "Feature",
"properties": {
"description": "Sample operation",
"isInFlight": false,
"isAllowedToTakeOff": false,
"volume": {
"start": "2025-07-04T14:45:00Z",
"end": "2025-07-04T16:30:00Z",
"maxAltitude": 100
},
"markers": [
{
"longitude": 2.7107256620075777,
"latitude": 39.546638390251985,
"type": "TAKEOFF"
},
{
"longitude": 4.216315807762642,
"latitude": 39.85130382265734,
"type": "LANDING"
}
]
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[2.711306903417477, 39.546620638030625],
[2.707750914497427, 39.476770160038164],
[2.704210036350697, 39.407076432755304],
[2.762299138962739, 39.34581890261292],
[2.8202658204155173, 39.284554071385905],
[2.9405109667201854, 39.26979465817517],
[3.060724523060415, 39.254908730189776],
[3.6355681190213662, 39.53571553837298],
[4.2149543300734456, 39.81360321884905],
[4.215340327838291, 39.832333751182986],
[4.215731624686052, 39.85131098194265],
[4.215744661363931, 39.85139868668042],
[4.215779646967113, 39.851482745893684],
[4.215835237087393, 39.85155992921533],
[4.215909295472436, 39.85162727050615],
[4.2159989761139425, 39.85168218184634],
[4.216100832615998, 39.851722552992385],
[4.21621095064104, 39.85174683247756],
[4.216325098343171, 39.85175408723775],
[4.2164388890065965, 39.85174403847137],
[4.216547949637363, 39.85171707235414],
[4.2166480890276405, 39.85167422519759],
[4.216735458831993, 39.85161714362131],
[4.216806701463972, 39.85154802127015],
[4.2168590791283735, 39.85146951450872],
[4.216890579030215, 39.85138464033407],
[4.216899990717833, 39.85129666043016],
[4.216508372374733, 39.83231943356532],
[4.216116969568399, 39.81334214311442],
[4.21609641953198, 39.81323067840998],
[4.216040659841029, 39.813126628315736],
[4.215953175882197, 39.81303649644386],
[4.215839435895781, 39.81296591643033],
[3.636184710646094, 39.53495180016436],
[3.0611597110883135, 39.25405672920038],
[3.0610666182104844, 39.25401954373929],
[3.0609664387223776, 39.25399598865131],
[3.0608624428542957, 39.2539868328608],
[3.0607580254101996, 39.25399237524612],
[2.9403294431325433, 39.268905044861654],
[2.819850015750796, 39.283693082808064],
[2.8197406134802843, 39.28371512149757],
[2.8196387957886087, 39.2837532430689],
[2.819548435134739, 39.28380599763975],
[2.8194729682513873, 39.28387137878534],
[2.7613646282367172, 39.34528523754395],
[2.703154509298698, 39.406669384683376],
[2.703103387141391, 39.40673399394605],
[2.7030669590299135, 39.40680434005678],
[2.7030462572406937, 39.40687842968022],
[2.7030418684341195, 39.40695416339807],
[2.706589593064388, 39.47680562646935],
[2.7101444203014893, 39.54665613956674],
[2.7101600610168024, 39.54674358828861],
[2.710197437558219, 39.546826994353495],
[2.7102551136317197, 39.54690315249334],
[2.710330872818907, 39.54696913596571],
[2.7104218037465113, 39.54702240903104],
[2.7105244119673086, 39.54706092440458],
[2.7106347542532077, 39.54708320193702],
[2.7107485901391803, 39.547088385499755],
[2.710861544893061, 39.547076275887584],
[2.7109692776466554, 39.547047338474805],
[2.711067648225107, 39.54700268532972],
[2.7111528762614845, 39.54694403247553],
[2.7112216864803824, 39.54687363394026],
[2.7112714345663766, 39.54679419513082],
[2.7113002087801035, 39.54670876886123],
[2.711306903417477, 39.546620638030625]
]
]
}
}
Request acceptance
POST https://portal.rnd-eureka.unifly.tech/api/gcs/uasoperations/sample_uuid/requestAcceptance
Get permission status
|
Optional Step
This can be performed in any status as soon as it’s past draft |
Gives an overview of all permission requests / clearances / slot requests. Also shows the given alternative slot for slot requests if provided.
GET https://portal.rnd-eureka.unifly.tech/api/gcs/uasoperations/sample_uuid/permissions/status
Accept alternative slots
|
Optional Step
This can only be performed if one of the accepted slots is revalidated and an alternative is provided, this can be seen in the permission status. |
POST https://portal.rnd-eureka.unifly.tech/api/gcs/slots/sample_uuid/alternative
Submit permission requests
POST https://portal.rnd-eureka.unifly.tech/api/gcs/uasoperations/sample_uuid/permissionrequests/submitall
|
Manual Approval Required
These permission requests need to get approved manually first before proceeding past this step. |
Submit taxi clearance
POST https://portal.rnd-eureka.unifly.tech/api/gcs/uasOperations/sample_uuid/clearances/TAXI
|
Manual Approval Required
This needs to be approved before proceeding |
Submit take-off clearance
POST https://portal.rnd-eureka.unifly.tech/api/gcs/uasOperations/sample_uuid/clearances/TAKEOFF
|
Manual Approval Required
This needs to be approved before proceeding |
Request activation
| Make sure all permissions / clearances / slot requests are approved by this point. |
POST https://portal.rnd-eureka.unifly.tech/api/gcs/uasoperations/sample_uuid/requestActivation
Perform the take-off
| GCS does not currently support auto takeoff, so this is required when sending telemetry |
POST https://portal.rnd-eureka.unifly.tech/api/gcs/uas/sntest1/takeoff
| From this point on the operation is allowed to fly, until it is ended. |
Send an updated ETA
|
Optional Step
This can be used to indicate to the authority that the flight ETA changed |
POST https://portal.rnd-eureka.unifly.tech/api/gcs/uasoperations/sample_uuid/updateETA
{
"estimatedArrivalTime": "2025-07-04T16:25:26Z"
}
Submit the landing clearance
| Before being allowed to land a landing clearance needs to be submitted and approved. |
POST https://portal.rnd-eureka.unifly.tech/api/gcs/uasOperations/sample_uuid/clearances/LANDING