Your agent knows what a building is. It doesn't know that this building is 1,157 sqft, flat, 24 ft tall, with a 42 ft tree leaning over it — or that a 40 ft pad will not fit anywhere on the lot. The six flagship tools below answer that from 3D measurement — and they are the front of a catalog of 132 measurement endpoints, every one explicit about its limits.
How to get accessThe six flagship tools, each with its measured accuracy. Each returns one kind of physical fact, and each is explicit about its limits — because an agent can't see our validation history and will otherwise use a number for something it won't support.
Which structure actually stands at an address — footprint outline,
area, height. Call this first; the others take the
structure_id it returns, so identity is decided once
instead of re-guessed on every call.
Total roof area, pitch, flat vs pitched, complexity, penetrations.
Pass verify: true and it takes an independent second
measurement of the same surface, then tells you how far the two
passes disagreed.
What stands around the structure — cover percentage and heights in 5–30 ft and 30–100 ft rings, plus slope. Wildfire defensible space, solar shading, access planning.
Height of anything standing above ground near a point — canopy, wires, poles, structures. The primitive under "does this truck, crane or ladder fit?"
Where a rectangle of a given size can physically sit on a property — a pad, a shed, a container, an equipment laydown area. Ranked placements with position, bearing, slope and overhead clearance.
Every other tool that answers "what can I build here" computes a zoning envelope: the parcel minus its setbacks, in two dimensions. This one ignores zoning entirely and asks whether the ground is flat enough, clear enough and well enough observed. The two questions have different answers, and only one of them currently costs a site visit.
The same question once a spot is already chosen: does this rectangle work there, at that bearing? Answers with the reasons — how much of the footprint is obstructed, the slope against your limit, the overhead clearance, the measurement coverage.
Does the ground fall away from a foundation? This is the one tool here measured against somebody else's published threshold rather than one we invented: IRC R401.3 requires grade to fall 6 inches within the first 10 feet of a foundation wall. It walks the perimeter station by station and reports where it doesn't.
too_close_to_call instead of guessed at. Verdicts are
checked against those same benchmarks, and the stations inside the
ambiguous band are reported as ambiguous rather than folded into a
score. Most perimeters meet the rule at only a minority of
stations, so a low score is the norm and means little alone;
the finding worth acting on is
stations_draining_toward_building, where the ground
runs back at the house by more than the measurement error.
The number is about the foundation and not just the hillside:
across 22 buildings, perimeter ground falls away 1.8 in more than
generic ground on the same lot (positive in 20 of 22, sign test
p=0.0001). Note the size of that — builders really do grade
away from foundations, but by inches, not by the 6 in the code
asks for. It cannot see under decks or porches, doesn't know where downspouts
discharge, and reads the ground as of the day it was measured. A failing
station is a place to send someone, never a code violation.How far the ground around a building sits above or below FEMA's mapped Base Flood Elevation — flood zone, SFHA status, published BFE, measured lowest adjacent grade, and the freeboard between them, in feet on NAVD88. For flood triage and deciding which properties justify paying a surveyor.
Does a structure or crane boom of a given height here need FAA notice? Screens 14 CFR 77.9: over 200 ft above ground always requires Form 7460-1, and below that it depends on a 100:1, 50:1 or 25:1 surface sloping up from the nearest runway. Returns whether notice is required and why, the height the surface allows at that spot, the margin, and the nearest airport, runway and FAA-verified obstacles.
Standing fuel around a house by California PRC 4291 defensible-space zone — Zone 1 (5–30 ft) and Zone 2 (30–100 ft), measured outward from the building footprint rather than from a point. Returns fuel cover, max and p95 height, and CAL FIRE's Fire Hazard Severity Zone so you know whether 4291 legally applies. Built for wildfire underwriting and renewal triage.
The six tools above are the flagships with their measured accuracy stated. The full catalog below is generated from the same registry the API serves. The machine-readable version — inputs, guaranteed outputs, per-endpoint limits — is GET /v1/tools, free and unmetered; an agent should read that, not this page.
/v1/hazard/abandoned-mines — Abandoned and legacy mines near a point: federal AML problem areas (subsidence, dangerous highwalls, portals) /v1/hazard/chemical-facilities — Facilities near a point that file a Risk Management Plan, with EPA's own coordinate accuracy beside each dista/v1/hazard/coastal-barrier — Whether a point falls inside a Coastal Barrier Resources System unit, which unit, and the date federal flood i/v1/hazard/dams — Dams near a point, their hazard class and condition, and whether they sit above the site/v1/hazard/earthquake-history — Recorded earthquakes near a point, with dates and magnitudes/v1/hazard/evacuation-routes — Designated hurricane evacuation routes near a point, and what this file does and does not record about them/v1/hazard/faults — Mapped Quaternary faults near a point, with the scale each was drawn at/v1/hazard/fire-perimeters — Wildfire perimeters that enclose a point, nationally, with the year and how the boundary was mapped/v1/hazard/flood-claims — Empirical flood history at a point from NFIP claims: how often flood insurance actually paid out in this censu/v1/hazard/flood-depth — Depth of the 1% and 0/v1/hazard/hail — Hail reported near a point since 1955, with the size of the largest stone in each report/v1/hazard/hurricane-history — Tropical cyclone tracks that passed near a point/v1/hazard/levees — Whether a point sits inside a leveed area, how the levee is rated, and how often it is expected to be overtopp/v1/hazard/radon — The geologic radon potential zone and index for a point, with both directions stated/v1/hazard/risk-index — FEMA National Risk Index for this census tract, by hazard/v1/hazard/sea-level-inundation — Ground elevation on the tidal datum, the local MHHW datum offset, and the still-water depth over this ground a/v1/hazard/seismic — ASCE 7-16 seismic design parameters/v1/hazard/smoke — Is this point under an analyst-drawn HMS smoke plume today (Light/Medium/Heavy), plus the nearest active fire /v1/hazard/storm-surge — Worst-case storm surge depth band over a point for each hurricane category, separating 'no surge' from 'not mo/v1/hazard/tornado-history — Tornadoes on record within a distance of a point, since 1950/v1/hazard/wildfire — Mapped wildfire hazard potential at and around a point/v1/hazard/wind — Severe thunderstorm wind reported near a point since 1955, with whether the gust was measured or estimated/v1/environment/air-designations — Every Clean Air Act designation covering a point, with the design value EPA measured/v1/environment/air-quality — Current air quality index near this point/v1/environment/compliance — EPA compliance, inspection and penalty history near a point/v1/environment/critical-habitat — Whether a point is inside designated (final) or proposed Endangered Species Act critical habitat, for which li/v1/environment/epa-sites — EPA-regulated facilities near a point, grouped by facility/v1/environment/hazardous-waste — Permitted hazardous waste facilities near a point, kept apart from the 1/v1/environment/landfills — Municipal solid waste landfills near a point, with the closure year marked as history or projection/v1/environment/noise — MODELED 2022 transportation noise at a point — 24-hour A-weighted equivalent level LAeq(24h) in dBA from avia/v1/environment/storage-tanks — Underground storage tank facilities and leaking-tank releases near a point, with case status and whether the r/v1/environment/superfund-boundaries — Whether a point is inside a Superfund site boundary, an operable unit, or a mapped institutional control area/v1/environment/toxic-releases — Facilities near a point that report toxic chemical releases to EPA's Toxics Release Inventory under EPCRA — wh/v1/environment/wetlands — Mapped NWI wetlands at and near a point, with codes decoded/v1/water/discharge-points — Permitted NPDES wastewater and stormwater discharge points near a point, with the receiving water each one is /v1/water/groundwater — Measured depth to groundwater in wells near a point, with the date of each reading/v1/water/monitoring — Water quality monitoring stations near a point/v1/water/nearby — NHD water features near a point/v1/water/quality — Whether the public water system serving a point is meeting federal drinking water safety rules — the regulator/v1/water/sea-level-trend — Measured relative sea level trend at the nearest tide gauges, with its confidence interval and record length/v1/water/sole-source-aquifer — Whether a point is inside a designated Sole Source Aquifer, and which zone of it/v1/water/streamflow — Live discharge and gage height at the nearest currently reporting stream gauge, with the age and provisional s/v1/water/tide — Nearest NOAA CO-OPS tide station to a point, its published tidal datums and mean range, and the latest observe/v1/water/water-system — The public drinking water system whose service area covers a point — who supplies the tap water you drink — an/v1/water/watershed — The watershed a point is in — HUC8, HUC10 and HUC12 by name and code — and the nearest mapped stream, with a m/v1/site/airspace — Does a crane or building here need FAA 7460-1 notice/v1/site/context — Vegetation and obstruction context around a point/v1/site/crossing — Ground profile across a railway grade crossing/v1/site/defensible — Fuel in the PRC 4291 defensible space zones/v1/site/disasters — Federal disaster declarations covering this county/v1/site/firedamage — Post-fire damage inspection for structures at this point/v1/site/firehistory — Fires whose mapped perimeter covers this point/v1/site/fit — Where a W x L thing fits on flat clear ground NEAR a point — NOT on a known parcel/v1/site/fit/check — Does a pad work at one exact position and angle/v1/site/flood — Height of this ground above the FEMA base flood elevation/v1/site/grade — Does the ground fall away from this building (IRC R401/v1/energy/electricity-price — Average retail electricity price for this state/v1/energy/hosting-capacity — MW of new generation or load the local distribution circuit can host, from the utility's own published hosting/v1/energy/power-outages — Customers currently without power in the county containing a point, against the county's customer total, with /v1/energy/power-plants — Operable electric generating plants near a point, with fuel, capacity and owner/v1/energy/solar-potential — Modeled annual PV production for a system at this point/v1/energy/substations — Electric substations near a point, with the voltage they step, how far away they are, and whether that voltage/v1/energy/transmission-lines — High-voltage transmission lines near a point, with voltage, owner and how much of the route was inferred/v1/energy/utility-territory — The electric utility or utilities whose service territory contains this point, what type of entity each is, an/v1/energy/wind-turbines — Utility-scale wind turbines near a point, with hub height, rotor diameter, total height, rated capacity and co/v1/weather/alerts — Active NWS warnings, watches and advisories at a point/v1/weather/current — Latest observation nearby/v1/weather/design-rainfall — NOAA Atlas 14 design storm depths and intensities at a point/v1/weather/fire-outlook — Today's SPC fire weather risk category at a point (Elevated/Critical/Extremely Critical, plus dry thunderstorm/v1/weather/forecast — NOAA forecast for this point/v1/weather/severe-outlook — Today's SPC severe weather risk category at a point (TSTM/MRGL/SLGT/ENH/MDT/HIGH), plus Day 2 and Day 3/v1/weather/snowpack — Snow on the ground at this point from NOAA's daily 1-km snow analysis: depth, snow water equivalent, and the G/v1/land/crop-history — The crop mapped on this ground each of the last several years — the rotation history — year by year with the m/v1/land/historic-places — National Register of Historic Places listings near a point, with districts and landmarks called out/v1/land/impervious-surface — Percentage of ground sealed by pavement or building within a box around a point, mapped at 1 m resolution/v1/land/land-cover — Mapped land cover class at a point and the mix of classes in a box around it/v1/land/opportunity-zone — Whether a point is inside a Qualified Opportunity Zone, and whether its tract id still matches/v1/land/protected — Protected, public and conservation land at or near a point/v1/land/survey-description — The Public Land Survey System description of a point — township, range, section and aliquot part/v1/transport/airports — Airfields near a point — public airports, heliports and private strips, told apart/v1/transport/bridges — Bridges near a point with their inspected condition, age and traffic/v1/transport/fatal-crashes — Fatal crashes recorded near a point in 2023, from NHTSA's Fatality Analysis Reporting System/v1/transport/freight-network — The national FREIGHT road network near a point — speed limit, lanes, truck restrictions and freight-system mem/v1/transport/rail-crossings — Railway crossings near a point, with train counts, warning equipment and whether they are at grade/v1/transport/traffic — Road traffic near a point — daily volumes, truck share, speed limits and how much of it is actually counted/v1/use/environmental-screen — Federal environmental records near this point, each measured against its own screening distance (miles)/v1/use/flood-risk-context — Whether this address's FEMA flood zone describes the ground or a levee, and what the levee's own record says (/v1/use/rural-land-screen — The land-purchase screen: how remote the land is — classed connected, reachable, remote or deeply remote from /v1/use/septic-feasibility — Soil, water table, bedrock and wetland constraints on a conventional septic drainfield at this point (inches; /v1/use/solar-install — Roof area and pitch measured in 3D against the local twenty-year solar resource, as an indicative array size a/v1/use/tree-strike — Which mapped trees are tall enough to reach this point if they fell, measured in 3D (feet)/v1/climate/design-storm — Design-storm rainfall depth and intensity at a point for any duration from 5 minutes to 60 days and any recurr/v1/climate/drought — The U/v1/climate/ground-conditions — Frost days, snow depth, soil wetness and the dew point/wet bulb pair at a point, twenty-year averages/v1/climate/normals — NOAA 1991-2020 climate normals for the nearest station/v1/climate/solar-resource — Twenty-year average solar irradiance, temperature, wind and humidity at a point, from NASA POWER/v1/geography/block — Census block FIPS for a point/v1/geography/county — County and FIPS for a point/v1/geography/jurisdictions — Every Census boundary a point falls inside, in one call/v1/geography/tract — Census tract for a point/v1/infrastructure/antenna-structures — Registered antenna structures near a point and how tall they are, as height above ground level in meters and f/v1/infrastructure/cell-towers — Licensed cellular antenna structures near a point, with their filed heights/v1/infrastructure/mobile-coverage — Whether a cell phone gets signal here, as each carrier CLAIMS it — per-carrier 4G LTE and 5G-NR mobile coverag/v1/infrastructure/pipelines — Energy transmission pipelines near a point, with the closest approach of each/v1/health/hospital-quality — CMS overall star ratings for the hospitals near a point — the five measure-group breakdown behind each rating,/v1/health/hospitals — Hospitals near a point, which of them run an emergency department, and their CMS rating/v1/health/neighborhood — Modeled health-outcome rates for the census tract around a point: asthma, COPD, diabetes, obesity, blood pres/v1/health/shortage-areas — HRSA shortage-area designations at a point, for primary care, dental and mental health/v1/housing/mobile-home-parks — Mobile home parks near a point, with the share of the file that is really a census block/v1/housing/units — Housing units in this census tract/v1/housing/value — Median owner-occupied home value for this tract/v1/emergency/ambulance-services — Ambulance services near a point, with the share that share a building with a fire station/v1/emergency/fire-stations — Fire and EMS stations near a point, with the straight-line distance and what it is worth against ISO's road mi/v1/emergency/law-enforcement — Police stations and correctional facilities near a point, kept apart and never typed beyond what the file says/v1/education/colleges — Colleges and universities near a point, with IPEDS codes decoded rather than passed through/v1/education/school-district — The school district whose territory contains a point, with GEOID and grade range/v1/education/schools — Public schools near a point, with the district that runs each one/v1/demographics/income — Median household income for this tract/v1/demographics/population — People living in this census tract/v1/geology/bedrock — The geologic unit mapped at a point: rock type, age and which state survey mapped it/v1/geology/soil — Soil type, drainage, water table and shrink-swell at a point/v1/vegetation/canopy-height — MODELED vegetation height and canopy cover for a 30 m pixel at this point, national and instant — clearly mar/v1/vegetation/trees — Canopy height, cover and tall trees at a point, measured in 3D/v1/terrain/elevation — Ground elevation at a point/v1/structure/height — Height of the building at this point, measured in 3D/v1/measure — Full roof takeoff for a building/v1/roof/summary — Roof planes, area and pitch for a building/v1/building/resolve — Which mapped building is at this address or point/v1/clearance — Overhead clearance above a point/v1/preflight — Is there measurement coverage here before you pay for a measure/v1/buildings/structure-inventory — Mapped structures around a point counted by occupancy class, plus the occupancy class and footprint square foo/v1/airspace/drone-ceiling — Maximum drone altitude in feet AGL that LAANC will automatically authorize over a point, from the FAA UAS FaciEach measurement returns a survey object stating the
vintage of the data behind it. It matters
more than it sounds: Denver reads 2013, Los Angeles
2016, Charleston 2016, Austin 2017, Seattle 2021. Ground and
buildings move slowly, so that is usually fine — vegetation
does not, so site_defensible also says in plain text
when its data is five or more years old.
The year is a publication year rather than the exact
day of measurement, and the two differ, so the field is
called earliest_year_in_name and should be read as a
lower bound on the age.
Every measurement API returns a number. Ours returns a number and how
much it trusts itself. Ask roof_summary to verify, and it
measures the same surface twice, independently:
"confidence": {
"grade": "A",
"self_consistency_pct": 0.7,
"basis": "two independent measurements of the same surface differed by 0.7%"
}
And when they don't agree:
"confidence": {
"grade": "D",
"self_consistency_pct": 22.4,
"basis": "two independent measurements differed by 22.4% — this measurement is not reliable"
},
"recommendation": "do_not_quote_from_this"
What the grades mean, and why density caps them. A is dense measurement across the whole area; B is good measurement over the answer itself; C means treat the position as approximate. From August 2026 the grade is also capped by how densely the site was actually measured: only the densest tier can reach A, the middle tier caps at B, and the sparsest caps at C.
That change lowered grades on real data — sites that could all previously reach A no longer can, and the grade now says which tier it was capped by. Nothing about the measurement got worse. Coverage is not scale-free: sparse data always looks better covered than it is, and grading on coverage alone let thin data claim a confidence it had not earned.
About one building in five is genuinely hard — multi-level roofs, thin data, buildings that touch. Everyone's numbers are shaky on those. We're just the ones who say so, which matters when an agent is about to put the figure in front of a customer.
API keys are issued by arrangement. Tell us what you are building and roughly how many addresses a month it will ask about, and we size it with you.
Once you hold a key, the console is where you watch usage, name a separate key per integration, and revoke one that has leaked.
Whichever door you come in by, accepting the terms records your agreement to the Terms of Service — including the accuracy disclaimer below — against your email, the terms version and the time.
clearance query is 0.5 because it
skips the roof model; roof_summary with
verify: true is 2.0 because it measures the building
twice. GET /v1/usage shows your consumption any time and
is never itself billed.
curl -s https://span-api.onrender.com/v1/building/resolve \
-H "Content-Type: application/json" \
-H "X-API-Key: $MEASURE_API_KEY" \
-d '{"address": "1600 Pennsylvania Ave NW, Washington, DC"}'
Clone the repo, then add this to your Claude Desktop or Claude Code MCP config:
{
"mcpServers": {
"measure": {
"command": "python",
"args": ["/absolute/path/to/mcp/measure_mcp.py"],
"env": { "MEASURE_API_KEY": "sk_your_key_here" }
}
}
}
Restart your client and the 15 tools appear — the flagship
measurements, not the whole catalog: an agent picking from 132
near-identical entries chooses worse than one picking from 15. The
rest stay reachable over HTTP, and GET /v1/tools
describes every one of them. No dependencies beyond
the Python standard library — the server is a thin proxy, so all the
measurement logic stays server-side and you never run a stale copy.
"I'm quoting solar for 1247 Pine St, Boulder CO. Is this roof worth a site visit?"
The agent resolves the building, pulls the roof summary, checks what's growing around it, and answers — including the bit where the measurement is six years old and the trees have kept growing.
"Can a 12 x 24 ft shed go in the back yard at 1247 Pine St, and how level is the ground?"
Different question, different tool. site_fit searches
the lot for somewhere that size will actually sit, and more often than
not the answer is no — at which point it reports the grade that would
have worked and roughly how much dirt that means.
| Thing | Where it stands |
|---|---|
| Coverage | United States. Every response carries the capture year for the data it used, so the age is never a guess. |
| Latency | Roughly 30–90 s per building. It measures the building on demand; it is not a database lookup. |
| Small structures | Below ~400 sqft the engine refuses rather than guesses, so a shed does not come back as a house. The threshold is a working one. |
| Per-facet roof | The roof is measured as a whole - area, height, pitch and orientation. Per-facet breakdown is not part of the API. |
| Vegetation | Measured as anything standing above the bare ground: height, extent and distance to the structure. Species are not identified. |
| Data age | Every response carries the capture year. Buildings change slowly; trees don't. |
| Pads that fit | At a 5% grade many real sites have no conforming pad at all. The search reports the grade that would have worked and roughly how much earthwork that means. |
| Soil bearing | Not measurable from above. The search returns flat, clear, reachable ground; a geotechnical sign-off is a separate exercise. |
| Measurement density | Reported on every fit response, and it caps the confidence grade. |
If a tool can't answer, it returns an error saying why rather than a confident guess. That's the whole design.