Skip to main content
Glama

faa-drone-airspace-checker

Check drone flight locations against FAA airspace: batch lat/lon points to get LAANC ceilings, controlled airspace, TFRs, and no-fly verdicts.

Instructions

FAA Drone Airspace Checker - Batch LAANC & No-Fly Verdicts. Batch lat/lon to FAA UAS airspace verdicts at $0.02 per check: LAANC ceilings AND whether LAANC is actually offered, charted Class B/C/D/E surface areas, prohibited areas, national-defense TFR areas, special use airspace, NSUFR, stadium TFRs. Never reads clear when a layer did not answer. Reads live from the official government source. COST AND SIDE EFFECTS: read-only with respect to the government source — it never writes to any external system — but each call starts a metered run on YOUR Apify account, billed $0.02 per result ($20 per 1,000). Lower on paid Apify plans, down to $6.00 per 1,000. Nothing is charged when a run fails. Store page: https://apify.com/malonestar/faa-drone-airspace-checker

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
layersNoWhich FAA airspace layers to check each point against. Defaults to all eight. laanc_grid = UAS Facility Map LAANC ceilings; class_airspace = charted Class A/B/C/D/E airspace (ALWAYS queried - it is the check that distinguishes uncontrolled airspace from controlled airspace that has no LAANC grid, so excluding it would force every verdict to INCONCLUSIVE); prohibited_areas = P-areas like P-56; national_defense_tfr = national defense airspace TFR areas; special_use_airspace = Restricted/MOA/Alert/Warning/Danger areas; part_time_nsufr = part-time national security UAS flight restrictions; stadiums = stadium game-day TFR proximity (3 NM); recreational_flyer_sites = FAA-listed fixed flying sites. Example: ["laanc_grid","class_airspace","prohibited_areas","national_defense_tfr","special_use_airspace","part_time_nsufr","stadiums","recreational_flyer_sites"].
pointsYesLocations to check, in WGS84 decimal degrees. Each item is either an object like {"lat": 39.86, "lon": -104.67, "label": "Site A"} (label optional; latitude/longitude aliases accepted) or a "lat,lon" string like "39.86,-104.67". One result row is produced per point, and one Result event is charged per row. Example: [{"lat":39.86,"lon":-104.67,"label":"Denver Intl (KDEN) - Class B, LAANC ceiling 0 ft"},{"lat":40.8296,"lon":-73.9262,"label":"Yankee Stadium NYC - LAANC 300 ft + stadium TFR"},{"lat":42.1708,"lon":-72.6375,"label":"Westover ARB (KCEF) - Class D, LAANC NOT offered"},{"lat":38.9072,"lon":-101.05,"label":"Rural western Kansas - MOA overhead, floor 500 ft AGL"},{"lat":47.2,"lon":-108.6,"label":"Rura…(truncated).
maxPointsNoSafety cap on the number of points checked (and billed) in one run. Points beyond the cap are skipped with a warning. Applied by default if omitted: 500.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.2

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false and idempotentHint=false, and the description explains exactly why: each call starts a metered Apify run billed $0.02/result, with nothing charged on failure, while remaining read-only toward the government source. It also discloses the 'never reads clear when a layer did not answer' verdict behavior — rich context beyond the structured hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and layer list, with cost/side-effect disclosure in a clearly labeled block. Dense and mostly earned, though the trailing store-page URL and repeated billing figures add minor bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still conveys what each point yields (LAANC ceiling, whether LAANC is offered, prohibited/SUA/TFR status), the one-row-per-point billing model, and the safety cap. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so layers, points, and maxPoints are already fully documented in the schema, including the enum title mapping and the class_airspace caveat. The description adds no syntax or format detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — batch lat/lon converted to FAA UAS airspace verdicts — and enumerates the exact layers (LAANC ceilings, Class B/C/D/E, prohibited areas, TFRs, NSUFR, stadium TFRs). An agent knows precisely what this tool produces without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives strong in-tool guidance (defaults to all eight layers, why class_airspace cannot be excluded, cost per result) but never states when to choose this tool over its siblings like epa-contaminated-site-screener or other run-gov-data-tool entrants. Usage is implied by the domain rather than routed explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.