NPS Park Conditions, Alerts & Data Scraper
NPS Park Conditions, Alerts & Data Scraper
Scrapes the U.S. National Park Service (NPS) API across seven resource types: parks, alerts, campgrounds, events, news releases, things to do, and visitor centers. Returns unified, flat records you can use without reading NPS API documentation.
A free NPS API key is required. You can get one instantly at nps.gov/subjects/developer/get-started.htm — no waiting, no approval, just an email address.
What It Scrapes
The NPS API sits behind developer.nps.gov/api/v1. Seven endpoints, one actor. You pick which resource types to fetch.
Why alerts matter: park closures, wildfire road conditions, and danger advisories change constantly. Trip planners, travel apps, and AI agents that need to know whether a park is actually accessible have to poll this data somehow. The alerts endpoint is the recurring-monitoring use case — daily or hourly runs filtered by park code or state.
Input
| Field | Type | Default | Description |
|---|---|---|---|
apiKey |
string | — | Your free NPS API key |
resourceTypes |
array | ["parks", "alerts"] |
Endpoints to scrape. Options: parks, alerts, campgrounds, events, newsreleases, thingstodo, visitorcenters |
parkCodes |
array | (all parks) | Filter by NPS park codes (e.g. ["yose", "grca", "zion"]) |
stateCode |
string | (all states) | Filter by two-letter US state code (e.g. CA, UT) |
maxItems |
integer | 10 | Maximum records to return across all resource types |
Leave resourceTypes empty to fetch all seven types in one run.
Example Input
{
"apiKey": "YOUR_NPS_API_KEY",
"resourceTypes": ["alerts", "parks"],
"stateCode": "CA",
"maxItems": 100
}
Output
Each record has a resource_type field identifying its endpoint. Fields that don't apply to a given type are returned as empty strings.
| Field | Type | Description |
|---|---|---|
resource_type |
string | parks, alerts, campgrounds, events, newsreleases, thingstodo, or visitorcenters |
park_code |
string | NPS unit code (e.g. yose, grca) |
park_full_name |
string | Full official park name |
state_codes |
string | Comma-separated state codes |
title |
string | Name or title of the resource |
description |
string | Description, abstract, or body text |
category |
string | Alert severity (Danger/Closure/Caution/Information), event type, etc. |
url |
string | NPS page URL for this resource |
latitude |
string | Latitude coordinate |
longitude |
string | Longitude coordinate |
activities |
string | Comma-separated activities available |
topics |
string | Comma-separated topics and themes |
entrance_fees |
string | JSON-encoded entrance fee list (parks) |
operating_hours |
string | JSON-encoded operating hours (parks, campgrounds, visitor centers) |
image_url |
string | Primary image URL |
last_indexed |
string | ISO timestamp of last NPS index update |
phone |
string | Contact phone (visitor centers, campgrounds) |
directions_url |
string | Link to directions |
reservation_url |
string | Reservation link (campgrounds, events) |
is_reservation_required |
string | Whether reservation required |
cost |
string | Fee or cost description |
Sample Record (Alert)
{
"resource_type": "alerts",
"park_code": "grba",
"title": "Winter Road Closures",
"description": "Wheeler Peak Scenic Drive is closed at the Wheeler Peak Summit Trailhead due to snow.",
"category": "Park Closure",
"url": "https://www.nps.gov/grba/planyourvisit/conditions.htm",
"last_indexed": "2026-05-19 00:00:00.0"
}
Sample Record (Park)
{
"resource_type": "parks",
"park_code": "alca",
"park_full_name": "Alcatraz Island",
"state_codes": "CA",
"title": "Alcatraz Island",
"description": "Alcatraz reveals stories of American incarceration, justice, and our common humanity...",
"url": "https://www.nps.gov/alca/index.htm",
"latitude": "37.82676234",
"longitude": "-122.4230206",
"activities": "Food, Wildlife Watching, Birdwatching, Museum Exhibits, Shopping",
"topics": "Colonization and Settlement, Forts, Incarceration, Maritime",
"operating_hours": "[{\"name\":\"Alcatraz Island\",\"standardHours\":{\"monday\":\"9:00AM - 6:30PM\",...}}]",
"phone": "415-561-4900",
"directions_url": "http://home.nps.gov/alca/planyourvisit/directions.htm"
}
Use Cases
Trip planning tools — pull parks and campgrounds filtered by state. Include entrance fees and operating hours directly in destination cards.
Closure monitoring — run daily against the alerts endpoint filtered by state. Filter output for category: "Park Closure" or "Danger" and route to push notifications or a status dashboard.
AI agents and RAG pipelines — NPS data is public domain. Feed current park conditions into retrieval-augmented generation for travel queries.
Geospatial and research projects — 470+ NPS units with coordinates, activities, topics, and fees in a clean flat format.
Rate Limits
The NPS API enforces rate limits per key. The actor paginates at 50 records per request with a ~1 second delay between calls to stay within NPS's documented guidance.
The default maxItems: 10 is intentionally conservative. Raise it for production runs. Set to 0 for an unlimited full-catalog pull.
Getting Your API Key
- Go to nps.gov/subjects/developer/get-started.htm
- Enter your name, email, and a brief use description
- Key arrives by email within seconds
No approval process. No billing. Free tier is sufficient for most use cases.
Data source: U.S. National Park Service API (developer.nps.gov). NPS data is in the public domain.