PAD-US Protected Lands Screener — Owner & GAP Status avatar

PAD-US Protected Lands Screener — Owner & GAP Status

Pricing

from $4.40 / 1,000 results

Go to Apify Store
PAD-US Protected Lands Screener — Owner & GAP Status

PAD-US Protected Lands Screener — Owner & GAP Status

Protected lands + public land ownership screener. Point-in-polygon check of coordinates against USGS PAD-US: returns owner/manager agency, Federal/State/Local/Private type, designation, GAP status and public access per asset.

Pricing

from $4.40 / 1,000 results

Rating

0.0

(0)

Developer

Kyle Maloney

Kyle Maloney

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Protected lands + public land ownership screener. Give it a list of coordinates and it does a server-side point-in-polygon check against the USGS PAD-US (Protected Areas Database of the United States — 655,335 protected-area polygons, release 4.1) and returns, for each point: whether it sits on protected land, the owner/manager agency, the owner and manager type (Federal / State / Local / Private / NGO / Tribal), the protection mechanism (Fee, Easement, Designation, Proclamation boundary), the designation (National Park, National Forest, Wilderness Area, State Park, Conservation Easement, and 60+ more), the GAP status code (1–4 biodiversity-protection level), the IUCN category, public access (Open / Restricted / Closed), and — when the parcel carries a conservation easement — the named easement holder. All PAD-US coded values are translated from raw codes to human-readable labels.

One clean, billable row per asset — even when the point is on plain private land (a useful "clear" result).

What changed in v1.1 (2026-08-01 validation pass)

v1.0 was screening a superseded PAD-US release. It queried the USGS Manager_Name service, whose layer 0 is literally named "Protected Areas Database of the United States (PAD-US) v3.0" and whose copyright reads "Gap Analysis Project (GAP), 2022": 439,860 polygons, last edited 2024-03-20. USGS publishes Manager_Name_PADUS (PADUS4_1ManagerName): 655,335 polygons, last edited 2026-04-22 — 215,475 more records, 49% more than v1.0 screened.

Measured live on 2026-08-01, point-in-polygon at 200 PAD-US 4.1 polygon centroids:

OutcomeCount
Protected in both releases152
Protected in 4.1 only — reported CLEAR by v1.032 (17.4% of the 184 comparable points)
Protected in 3.0 only0
Centroid outside its own concave polygon in both16

The misses skew hard toward exactly the encumbrances a developer, lender or title buyer needs to see: county Forest Conservation Act easements in Maryland, NC Division of Mitigation Services conservation easements (GAP 2), CREP easements, municipal open space and local parks. One concrete example — 39.10372, -76.65769: PAD-US 4.1 records two easements held by Anne Arundel County, MD; the v1.0 layer returns zero and the actor billed a row reading on_protected_land: false.

Also in v1.1:

  • A live drift gate runs before a single billable row exists. It parses the PAD-US release out of the layer name on every run and fails rather than answer from anything below 4.1; asserts the polygon count sits in a measured band whose floor (500,000) is deliberately above the superseded release's 439,860; asserts all ten coded-value domains — an unknown code fails the run rather than being passed through by decode() as if it were a human label; and runs four spatial canaries, including the Anne Arundel easement point (which the old source reports as clear) and a mid-Pacific negative control that must return nothing. Every measured value is logged on every run. A newer PAD-US release passes and is reported.
  • null now means not checked. v1.0 emitted overlapping_unit_count: 0 on rows where the query had failed — a factual claim it never verified. on_protected_land, is_federal_land, is_conservation_protected, is_easement and overlapping_unit_count are all null when padus_status is not ok.
  • Pagination and a truncation guard. v1.0 sent no resultRecordCount or resultOffset and never read exceededTransferLimit. Page size is now read live from the service's own maxRecordCount, and the run fails rather than report an overlapping-unit count from a truncated set.
  • Billing honesty. Rows are buffered and the gate runs before pushData; a run in which nothing was verified bills nothing.
  • Nineteen columns recovered. owner_type and category were computed by v1.0 and discarded before they reached the row. IUCN_Cat, EsmtHldr, EHoldTyp, Date_Est, Src_Date, Agg_Src, WDPA_Cd, Loc_Ds, Loc_Own, Loc_Mang were fetched by outFields=* on every single request and never read.
  • Primary-unit ranking fixed. DESIG_RANK existed in v1.0 and was never referenced; the live ranker substring-matched the decoded label, so "State Conservation Area" and "Local Conservation Area" both ranked level with a federal National Conservation Area. Ranking is now on the raw PAD-US code. This only affects which overlapping unit is promoted to the flat row at equal GAP status — every unit was and still is returned in overlapping_units.

No output field was removed or renamed, and the price is unchanged.

v1.2 (2026-08-04) — a rate limit is not a source change

The v1.1 drift gate could not tell "the service did not answer" from "the service answered, and the answer proves the source changed". ArcGIS Online replies to a rate-limited request with HTTP 200 and an embedded error, so the HTTP-level retry never saw it, and one such reply on one canary failed the run with USGS PAD-US upstream drift detected — three minutes before an identical run passed. Nothing had drifted.

v1.2 keeps every v1.1 assertion and adds:

  • Two separate outcomes. Measured and wrong (wrong release, count off the band, unknown coded value, a canary that stopped hitting, a negative control that started) is still reported as drift. Could not measure (rate limit, timeout, gateway error, empty body) is reported as an upstream availability problem, with its own message and its own code path. Both still refuse to emit a land-status answer and both bill nothing — but they are different findings with different remedies.
  • Transient upstream errors are retried, with backoff, including the HTTP 200 + embedded-error shape. A structural error (e.g. {"code":400,"message":"Invalid URL"}, the signature of a retired or renamed ArcGIS service) is not retried and is still reported as drift immediately.
  • The gate paces itself. Its 15 checks are spaced so the burst does not trip the rate limiter it was tripping.
  • A blocked check records null, never 0. v1.1's negative control read features without checking error, so an upstream failure returned zero features and the control silently passed — "could not measure" recorded as "measured and correct". A failed domain query was likewise reported as "upstream returned no distinct values at all", a measurement that never happened.

The gate is not weaker: the PAD-US 3.0 layer still fails the run on release identity and on the count floor, including while a canary is simultaneously rate-limited, and that is proven by fault injection in the offline suite.

Who it's for

  • Renewable & mineral siting teams — screen solar/wind/transmission/mining coordinates for federal land, wilderness, refuges and conservation status before scoping a project.
  • Land acquisition, brokers & title — flag whether a parcel centroid is public land, who owns/manages it, whether public access is restricted or closed, and whether a conservation easement encumbers it and who holds it.
  • ESG / environmental consultants — Phase-I and biodiversity due-diligence: identify GAP 1–2 conservation lands and the responsible agency near a site.
  • GIS & data teams — batch-enrich any address/parcel list with authoritative land-ownership and protected-status attributes without hosting the 655k-polygon dataset yourself.

Example input

{
"assets": [
{ "lat": 44.4605, "lon": -110.8281, "label": "Old Faithful, Yellowstone NP" },
{ "lat": 32.7791, "lon": -96.8000, "label": "Downtown Dallas TX" }
],
"maxAssets": 500
}

The first point returns on_protected_land: true, manager_agency: "National Park Service", manager_type: "Federal", owner_type: "Federal", category: "Fee", designation_type: "National Park", gap_status_code: "1", iucn_category: "II", public_access: "Open Access", unit_name: "Yellowstone National Park". The second returns on_protected_land: false (private/urban land).

An input that exercises the easement path, live-verified:

{ "assets": [{ "lat": 39.10372, "lon": -76.65769, "label": "Anne Arundel County, MD parcel" }] }

returns is_easement: true and easement_holder: "Anne Arundel County, MD" — and returned on_protected_land: false under v1.0.

Output fields — all 41

FieldDescription
asset_labelYour label for the point, echoed back
asset_lat / asset_lonScreened coordinate (WGS84)
on_protected_landtrue inside any PAD-US polygon, false checked and negative, null not checked
unit_nameName of the primary protected-area unit
manager_agencyManaging agency of the primary unit, decoded
manager_typeFederal / State / Local Government / Private / NGO / American Indian Lands / …
owner_nameOwning agency of the primary unit, decoded
owner_typeOwner type — frequently differs from manager_type (land owned by one level of government and managed by another)
categoryProtection mechanism: Fee (ownership), Easement (an encumbrance on someone else's land), Designation, Marine Area, Proclamation boundary, Other, Unknown
designation_typeDecoded designation (National Park, Wilderness Area, Conservation Easement, …)
designation_codeRaw PAD-US Des_Tp code — the stable machine key, and what units are ranked on
gap_status_code / gap_status_labelGAP 1–4 and its full label. 1–2 = managed for biodiversity
iucn_categoryIUCN management category (Ia, Ib, II, III, IV, V, VI, Other Conservation Area, Unassigned, N/R)
public_accessOpen Access / Restricted Access / Closed / Unknown
acresGIS acres of the primary unit
state_nameState of the primary unit, decoded
is_federal_landTrue if any overlapping unit is federally owned or managed
is_conservation_protectedTrue if any overlapping unit is GAP 1 or 2
is_easementTrue if any overlapping unit is an Easement — a recorded encumbrance, not public ownership
easement_holderNamed holder of the easement, taken from whichever overlapping unit carries one (the encumbrance is rarely on the highest-GAP unit)
easement_holder_typeHolder type, decoded
date_establishedYear the primary unit was established, as PAD-US publishes it (sparse upstream)
source_dateDate of the source dataset PAD-US aggregated the polygon from
aggregator_sourceThe upstream dataset PAD-US compiled it from — your audit trail back to the managing agency
wdpa_codeWorld Database on Protected Areas id, when present (upstream 0 is an absence sentinel and is emitted as null)
local_designation / local_owner / local_managerThe manager's own unstandardised free-text strings
overlapping_unit_countHow many PAD-US units contain the point. null when the query did not answer
overlapping_unitsEvery containing unit, each with all of the above
padus_statusok or unavailable — the per-source outcome for this point
padus_errorUpstream error when padus_status is unavailable; null on a healthy run
padus_versionThe PAD-US release this answer came from, parsed live (e.g. 4.1)
padus_layer_nameThe exact USGS layer queried, read live
data_last_updatedISO timestamp of USGS's last edit to the layer, read live
errorInvalid coordinate or failed query; null on a healthy row
disclaimer / source_url / checked_atAdvisory notice, exact layer queried, run timestamp

A single point can fall inside several overlapping PAD-US units (e.g. a fee tract and a wilderness designation and a proclamation boundary). The flat row reports the primary unit (strongest biodiversity mandate, then designation prominence by raw code, then largest acreage); every overlapping unit is also listed in overlapping_units, and is_federal_land / is_conservation_protected / is_easement reflect any overlapping unit.

Inputs that populate the conditional columns

padus_error and error are null on a healthy run by design — that is good news, not a dead column; both paths are pinned by offline fixtures. easement_holder / easement_holder_type populate on an easement parcel (see the Anne Arundel example above) and are correctly null on a National Park. date_established is sparse upstream and is blank on many easement and local-government records.

Use as an MCP tool

This actor is callable by AI agents (Claude, Cursor, etc.) via mcp.apify.com. Its typed input (assets[]{lat,lon,label}) and field-level output descriptions make it a clean, chainable "is this coordinate on protected/public land, who manages it, and is it encumbered?" tool for siting, land-diligence and geospatial agents. Agents should check padus_status before acting on a false: this actor deliberately returns null rather than a confident negative when the query did not answer.

FAQ

Is a point on public land / a national park? Yes — pass its coordinate and read on_protected_land, unit_name, manager_agency and manager_type.

Who owns or manages this land? owner_name + owner_type and manager_agency + manager_type. These genuinely differ: an easement parcel is typically privately owned (owner_type: "Private") and locally managed.

Is the parcel encumbered by a conservation easement? is_easement and easement_holder. A PAD-US category of Easement means someone else holds a recorded interest in land you may otherwise be buying outright.

What is the GAP status of a coordinate? gap_status_code (1–4) and gap_status_label. GAP 1–2 = managed for biodiversity; is_conservation_protected is a one-glance boolean for that.

Is this federal land? is_federal_land is true if any overlapping unit is federally owned or managed.

What does null mean? Not checked. false means checked and negative. A failed lookup is never reported as unprotected land.

How current / authoritative is it? Every row carries padus_version and data_last_updated read live from USGS. This is an informational PAD-US intersection screen, not an official land-status determination. PAD-US is a compiled national inventory maintained by the USGS Gap Analysis Project and can lag ground truth. The authoritative source is the managing agency (NPS, USFS, BLM, USFWS, or the state/local/private manager). Confirm ownership, access and designation with the managing agency and a title/survey professional before any siting, acquisition, permitting, or transaction decision.

How is pricing calculated? $8 per 1,000 result rows — one row per screened asset, hit or clear. Graduated discounts apply on paid Apify plans. A run in which nothing could be verified bills nothing.

Source

USGS PAD-US Manager_Name_PADUS ArcGIS FeatureServer, layer 0 (PADUS4_1ManagerName): https://services.arcgis.com/v01gqwM5QqNysAAi/arcgis/rest/services/Manager_Name_PADUS/FeatureServer/0

Pairs with the rest of the site-diligence shelf: FWS Critical Habitat Screener (ESA Section 7), Tribal Land Jurisdiction Screener, USACE Levee Flood Risk Screener, BLM Mining Claims, and the all-in-one Site Due Diligence Bundle.