1. Risk and Routing
AirHub API
  • Introduction
  • Authentication
    • Overview
    • Get Oauth Token
      POST
  • Briefing
    • Overview
    • B4UFLY
      • What Is B4UFLY
      • The API Basics
      • Location vs Area
      • What's New in v2
      • v2
        • B4UFLY Briefing by Area
        • B4UFLY Briefing by Location
      • v1
        • B4UFLY Briefing by Area
        • B4UFLY Briefing by Location
  • Data
    • Positions
      • Send Positions
    • Elevation v1
      • Elevation
    • Elevation v2
      • Elevation
  • Operations
    • ASL Operations
      • List Operations
      • Create Operation
      • Get Operation
      • Delete Operation
      • Update Operation
    • LAANC SDSP
      • Overview
      • LAANC Operations
        • Get Operation
        • Delete Operation
        • Create Operation
        • Update Operation
      • LAANC Authorizations
        • Rescinded and Invalid Operations
        • Submit Authorization
        • Get Authorization
        • Cancel Authorization
        • Cancel Invalid Authorization
        • Close Authorization
        • Acknowledge Rescinded Authorization
    • Ephemeral Operations
      • Create Ephemeral Operations
      • Get Ephemeral Operation
      • Delete Ephemeral Operation
      • Claim Ephemeral Operation
  • Surface, Risk, and Routing
    • Overview
    • Surface Layers
      • Get Surface Layer Access
    • Risk and Routing
      • Classify Risk
        POST
      • Generate Route
        POST
      • Surface Hexbin
        POST
  • Vector Tiles
    • Overview
  • Schemas
    • asloperationsvc.v1.FlightType
    • authorizationsvc.v1.Authorization
    • AssetTypeEnum
    • protobufAny
    • protobufNullValue
    • ephemeralsvc.v1.ClaimEphemeralOperationResponse
    • DeviceStatus
    • authorizationsvc.v1.Class
    • v2GetSurfaceAccessResponse
    • ephemeralsvc.v1.CreateEphemeralOperationRequest
    • ElevationFeature
    • authorizationsvc.v1.FacilityMap
    • risksvcv1Layer
    • authorizationsvc.v1.Deny
    • v2MetadataSource
    • ElevationGeometry
    • authorizationsvc.v1.Status
    • rpcStatus
    • ephemeralsvc.v1.CreateEphemeralOperationResponse
    • authorizationsvc.v1.SubmissionType
    • ephemeralsvc.v1.EphemeralOperation
    • ElevationOutput
    • v1Bitmask
    • v2UpdateSurfaceAccessRequest
    • v1ClassificationSurface
    • v2UpdateSurfaceAccessResponse
    • ElevationServerErrorResponse
    • ephemeralsvc.v1.PointOfContact
    • v1ClassifyResponse
    • InvalidElevationInputResponse
    • geompb.v1.AltitudeReference
    • v1HexCell
    • OwnerTypeEnum
    • geompb.v1.AltitudeUnit
    • google.protobuf.Any
    • PointXyElevationData
    • v1HexResp
    • laancsvc.v1.Action
    • google.protobuf.NullValue
    • v1RouteResponse
    • laancsvc.v1.Candidate
    • RawPositionMessageBody
    • google.rpc.Status
    • v1SurfaceGeoJSONResponse
    • laancsvc.v1.DeleteOperationResponse
    • SourceAltitudeTypeEnum
    • Transformation
    • laancsvc.v1.GetOperationResponse
    • v1SurfaceRequest
    • Unit
    • v1SurfaceResponse
    • laancsvc.v1.License
    • V1ElevationInput
    • laancsvc.v1.Notice
    • V1Geometry
    • laancsvc.v1.Operation
    • V1GeometryType
    • laancsvc.v1.OperationResponse
    • V1InVDatum
    • laancsvc.v1.OperationService.CreateOperationBody
    • laancsvc.v1.OperationService.UpdateOperationBody
    • V2ElevationInput
    • laancsvc.v1.PointOfContact
    • laancsvc.v1.Reason
    • laancsvc.v1.UpdateOperationResponse
    • laancsvc.v1.ReverseLookupOperationResponse
AirHub® Portal (Sandbox)
  1. Risk and Routing

Generate Route

Sandbox
https://airhub-api-sandbox.airspacelink.com
Sandbox
https://airhub-api-sandbox.airspacelink.com
POST
/v2/route
Last modified:2026-03-24 21:48:21
Scope: route:create
Returns a GeoJSON LineString representing a route between two or more waypoints, optimized for the modeled risk of your operation. There are 3 methods to generating a route. Each route request must include one of the three methods described:
1.
Pre-Generated Surface: Pre-create a classification surface and pass with the surface parameter. The surface must enclose all the waypoints or the route will be unsolvable.
2.
Risk Model Definition with Area of Interest: Create a risk model definition and pass with the layers parameter. Include the operational area to be evaulated using the geometry parmeter. The geometry must enclose all waypoints or the route will be unsolvable.
3.
Risk Model Definition: Create a risk model defintion and pass with the layers param. The API will infer the operational boundary using a buffer of the input waypoints.

Request

Header Params

Body Params application/json

Example
{
    "resolution": 9,
    "layers": [
        {
            "code": "nsufr_ft"
        },
        {
            "code": "nsufr_pt"
        },
        {
            "code": "tfr"
        },
        {
            "code": "sua"
        }
    ],
    "waypoints": {
        "type": "MultiPoint",
        "coordinates": [
            [
                -83.237915,
                42.316416
            ],
            [
                -83.205643,
                42.304991
            ]
        ]
    }
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://airhub-api-sandbox.airspacelink.com/v2/route' \
--header 'Authorization: ' \
--header 'Content-Type: application/json;charset=UTF-8' \
--data-raw '{
    "resolution": 9,
    "layers": [
        {
            "code": "nsufr_ft"
        },
        {
            "code": "nsufr_pt"
        },
        {
            "code": "tfr"
        },
        {
            "code": "sua"
        }
    ],
    "waypoints": {
        "type": "MultiPoint",
        "coordinates": [
            [
                -83.237915,
                42.316416
            ],
            [
                -83.205643,
                42.304991
            ]
        ]
    }
}'

Responses

🟢200
application/json
Body

Example
{
    "data": {
        "corridor": [
            "8a288c758037fff",
            "8a288c75811ffff",
            "8a288c2b24effff"
        ],
        "network": {
            "coordinates": [
                [
                    [
                        -118.802633639131,
                        45.6458480563089
                    ],
                    [
                        -118.807281209253,
                        45.6466533063531
                    ]
                ],
                [
                    [
                        -118.802633639131,
                        45.6458480563089
                    ],
                    [
                        -118.806148391677,
                        45.6458671344001
                    ]
                ],
                [
                    [
                        -118.802633639131,
                        45.6458480563089
                    ],
                    [
                        -118.805422182588,
                        45.6463312319668
                    ]
                ]
            ],
            "type": "MultiLineString"
        },
        "path": {
            "coordinates": [
                [
                    -118.685607263462,
                    45.6649712310512
                ],
                [
                    -118.687640419679,
                    45.6618603236282
                ],
                [
                    -118.688367745235,
                    45.6613969233936
                ],
                [
                    -118.704736454367,
                    45.657756124899
                ]
            ],
            "type": "LineString"
        }
    },
    "message": "success",
    "statusCode": 200
}
🔴500
Modified at 2026-03-24 21:48:21
Previous
Classify Risk
Next
Surface Hexbin
Built with