1. Surface, 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
      • Generate Route
      • Surface Hexbin
  • 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. Surface, Risk, and Routing

Overview

Surface, Risk, and Routing#

Surface generation is the foundation of the Risk and Routing features of Airspace Link's AirHub API. It has its own set of types and lexicon that assist in making the queries intuitive and powerful.

Available Layers#

Use the Get Surface Layer Access endpoint to get a list of all the available layers that your API key has access to. This returns an array of layer objects. You can use one or many of the layer objects to define your own definition of risk for classifying the surface risk. By default, the available layers include the basic community data and FAA sourced data. There are premium data layers such as a variety of daytime and nighttime population densities that are available in addition to custom data sources that can be made available for use within the surface engine.

Surface Hexbin#

Use the Surface Hexbin endpoint to query and obtain the H3 representation of the layers provided that intersect the polygon specified in the geometry at the H3 resolution indicated. In simple terms, get the H3 cells that have the given layers in it.

Classify Risk#

Use the Classify Risk endpoint to generate an H3 representation of the risk surface. This will allow you to visualize the risk surface that would be used in the routing algorithm. The risk surface is dependent upon the layers that you define as described below. The layers works with the geometry that is input in the request to generate a risk surface based on the risk of each layer. Risk is an integer that defines the level of avoidance or preference of a given layer. An integer greater than 0 will define a risk that leads to avoiding routing in that area. An integer less than 0 will define a preference that leads to routes that prefer that area.

Route#

Use the Route endpoint to generate a route leveraging the same layers to define the risk classification used in the routing algorithm. The layers works with the geometry that is input in the request to generate a risk surface. The resulting route will only be impacted by the layers parameter within the geometry that is provided. Ideally the geometry is a polygon that is large enough to encompass the input waypoints. Without providing a geometry, or if the geometry doesn't encompass the waypoints, then the layers are only used within a small buffer of the input waypoints which may be pretty limiting.

Layer Object#

The layer object represents the building block for requesting surface information. At a minimum, provide a code and
that data source will be fetched. You can access attributes using the JSON key fields, and you can
provide a filter using the JSON key where.
ParameterTypeDescription
codestringA metadata source.
fieldsstring[]The fields of the metadata source you'd like to return. Setting "fields": ["*"] will return all valid fields for supported data types.
where<where>A pseudo-SQL expression tree. Click here for information on how to generate one.
riskfloat64An optional risk value to assign to the layer. Only relevant when requesting risk surfaces.

SQL Expression Tree#

Backus-Naur Form
Simple comparisons
Logical operators
Several API endpoints require generating surfaces, and all surface generation supports advanced querying.
You can provide a filter via a tree data structure for each resource you request that will be parsed out
and produce a filter that suits your use case.
Logical operators
OperatorArityDescription
ANDBinary or greaterA standard logical AND. All the arguments provided to the AND will be nested.
ORBinary or greaterA standard logical OR. All the arguments provided to the OR will be nested.
Comparison operators
OperatorArityDescription
=Binary= does an equality check on the field and the passed value. Type coercion may be performed if the types are different.
>Binary> checks the field is greater than the passed value. Type coercion may be performed if the types are different.
<Binary< checks the field is less than the passed value. Type coercion may be performed if the types are different.
<=Binary<= checks the field is less than or equal to the passed value. Type coercion may be performed if the types are different.
>=Binary>= checks the field is greater than or equal to the passed value. Type coercion may be performed if the types are different.
!=Binary!= checks the field is not equal to the passed value. Type coercion may be performed if the types are different.
Modified at 2026-03-24 21:49:53
Previous
Claim Ephemeral Operation
Next
Get Surface Layer Access
Built with