Blue API documentation
Feature guides

Follow one workflow from prerequisites through its response and output.

Synchronous workflow

Survey candidate landing zones

Evaluate terrain and road constraints inside a boundary and save the resulting candidates as a map layer.

POST/api/landing-zones/
01 · Readiness

Prepare terrain and road source artifacts.

Landing-zone surveys need sources.elevation.ok, sources.land_cover.ok, andsources.roads.ok. The calculation reads elevation, slope, ruggedness, land cover, and road-class data directly. Display tiles, soil, population, buildings, and terrain_road_graph are not required.

02 · Platform

Choose one supported aircraft platform.

ValueAircraft typeSurvey geometry
c17Fixed wingRunway, clear zone, and approach constraints.
c130Fixed wingRunway, clear zone, and approach constraints.
size_3Rotary wingLanding-pad constraints for a size-3 platform.
size_4Rotary wingLanding-pad constraints for a size-4 platform.
03 · Request

Run the survey and wait for its response.

The endpoint is synchronous, but a survey can take longer than an ordinary CRUD request. Use a client timeout appropriate for the area size and keep the HTTP connection open.

Survey landing zones
curl --request POST "$BLUE_API_URL/api/landing-zones/" \
  --header "Authorization: Bearer $BLUE_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
    "map_id": "'"$BLUE_MAP_ID"'",
    "platform": "c130",
    "boundary_shape": {
      "type": "Polygon",
      "coordinates": [[[-104.90, 38.80], [-104.70, 38.80], [-104.70, 38.95], [-104.90, 38.95], [-104.90, 38.80]]]
    }
  }'
Optional mobility policySupply mobility_config to change slope, ruggedness, land-cover, nodata, and blocked-class constraints. Omit it to use the production defaults.
04 · Output

Read the saved landing-zone layer.

The response is a map-layer record. Candidate GeoJSON is underjson_data.landing_zone_candidates. The API creates or updates the platform-named landing-zone layer for the map.

Abbreviated response
{
  "id": "LANDING_ZONE_LAYER_ID",
  "map_id": "MAP_UUID",
  "name": "C130 Landing Zones",
  "layer_type": "landing_zones",
  "json_data": {
    "landing_zone_candidates": {
      "type": "FeatureCollection",
      "features": [
        {
          "type": "Feature",
          "geometry": {
            "type": "Polygon",
            "coordinates": []
          },
          "properties": {
            "description": "Candidate landing zone"
          }
        }
      ]
    }
  }
}
  • An empty features array is a valid completed survey with no qualifying candidates.
  • 422 with missing landing-zone COG data means the required terrain or road source is unavailable.
  • Refresh landing_zones map layers after a successful response if your client renders them.