# National Park Service API

> National Park Service returns park information, entrance fees and alerts, available as a workflow and API.

National Park Service (NPS) Get park returns visiting details, fees, hours, visitor centers and entry guidance for a named park or site. List park alerts returns alerts for a named park, optionally filtered by alert category.

- Page: https://fous.com/workflows/national-park-service
- Handle: `@national-park-service`
- Category: [Travel](https://fous.com/workflows/category/travel)
- Source website: https://nps.gov
- Last verified: Sep 29, 2026
- Fous is not affiliated with National Park Service.

## Methods

### Get park

Operation `get_park`, version 1. 1 credit per call.

Get visiting details for a named National Park Service site, including fees, hours, visitor centers, directions and entry booking guidance. A center address or email is blank when the park does not publish it on its public pages; check the park link for changing schedules and booking rules.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `park_name` | string | yes | `"Statue of Liberty"` | Name of the park or NPS site, for example Yellowstone or Statue of Liberty. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "park_name"
  ],
  "properties": {
    "park_name": {
      "type": "string",
      "description": "Name of the park or NPS site, for example Yellowstone or Statue of Liberty.",
      "examples": [
        "Statue of Liberty",
        "Yellowstone",
        "Grand Canyon"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "park_name": "Statue of Liberty"
    },
    {
      "park_name": "Yellowstone"
    },
    {
      "park_name": "Grand Canyon"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `url` | string | `"https://www.nps.gov/stli/index.htm"` |  |
| `email` | string or null |  |  |
| `states` | array |  |  |
| `park_code` | string | `"STLI"` |  |
| `park_name` | string | `"Statue of Liberty National Monument"` | Official park or site name. |
| `description` | string or null | `"A gift of friendship from the people of France to the United States \"Liberty Enlightening the World\" is recognized as` |  |
| `designation` | string | `"National Monument"` |  |
| `phone_number` | string or null | `"212 363-3200"` |  |
| `entrance_fees` | array |  |  |
| `entrance_fees[].price` | number | `0` |  |
| `entrance_fees[].currency` | string | `"USD"` |  |
| `entrance_fees[].pass_name` | string | `"Park entrance"` |  |
| `visitor_centers` | array |  |  |
| `visitor_centers[].url` | string | `"https://www.nps.gov/yell/planyourvisit/albright-visitor-center.htm"` | NPS page for this visitor center. |
| `visitor_centers[].name` | string | `"Albright Visitor Center"` |  |
| `visitor_centers[].address` | string or null |  |  |
| `reservation_note` | string | `"Ferry tickets are required to visit the islands; pedestal and crown visits require advance reservations."` |  |
| `directions_summary` | string or null |  |  |
| `opening_hours_and_seasons` | string or null | `"The Statue of Liberty is only accessible via ferry. Please check the ferry schedule for ferry times. Last updated: Apri` |  |
| `reservations_or_timed_entry_required` | boolean | `true` |  |

**Example input**

```json
{
  "park_name": "Statue of Liberty"
}
```

**Example output**

```json
{
  "url": "https://www.nps.gov/stli/index.htm",
  "email": null,
  "states": [
    "New York"
  ],
  "park_code": "STLI",
  "park_name": "Statue of Liberty National Monument",
  "description": "A gift of friendship from the people of France to the United States \"Liberty Enlightening the World\" is recognized as a universal symbol of freedom and democracy. It was dedicated by President Grover …",
  "designation": "National Monument",
  "phone_number": "212 363-3200",
  "entrance_fees": [
    {
      "price": 0,
      "currency": "USD",
      "pass_name": "Park entrance"
    }
  ],
  "visitor_centers": [],
  "reservation_note": "Ferry tickets are required to visit the islands; pedestal and crown visits require advance reservations.",
  "directions_summary": "One National Park, Two Islands Ferries depart from two locations: The Battery , at the southern tip of Manhattan in New York City, and Liberty State Park in Jersey City, New Jersey. Warning: Statue Ci…",
  "opening_hours_and_seasons": "The Statue of Liberty is only accessible via ferry. Please check the ferry schedule for ferry times. Last updated: April 6, 2026",
  "reservations_or_timed_entry_required": true
}
```

### List park alerts

Operation `list_park_alerts`, version 1. 1 credit per call.

List current alerts for a named National Park Service park from its Current Conditions page, in the order shown. Per-alert last-updated dates are not published there; they are null when unavailable.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `type` | string | no | `"closure"` | Alert category to show, for example closure; all shows every category. |
| `park_name` | string | yes | `"Acadia"` | Park name, park code, or NPS park link, for example Yosemite. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "park_name"
  ],
  "properties": {
    "type": {
      "enum": [
        "all",
        "closure",
        "caution",
        "danger",
        "information"
      ],
      "type": "string",
      "default": "all",
      "description": "Alert category to show, for example closure; all shows every category.",
      "examples": [
        "closure",
        "danger"
      ]
    },
    "park_name": {
      "type": "string",
      "description": "Park name, park code, or NPS park link, for example Yosemite.",
      "examples": [
        "Acadia",
        "Yellowstone",
        "Yosemite"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "type": "closure",
      "park_name": "Acadia"
    },
    {
      "park_name": "Yellowstone"
    },
    {
      "type": "danger",
      "park_name": "Yosemite"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `alerts` | array |  | Current alerts in the order displayed on the park page. |
| `alerts[].type` | string | `"Closure"` | Alert type in words. |
| `alerts[].title` | string | `"Eastern Section of Beech Mountain Loop Road Closed for Repairs"` | Alert title. |
| `alerts[].page_url` | string | `"https://www.nps.gov/acad/planyourvisit/conditions.htm"` | Link to the alert information or the Current Conditions page. |
| `alerts[].description` | string | `"Starting Sept 21, the eastern section of the Beech Mountain Loop Trail will be closed for repairs from a junction just ` | Alert description. |
| `alerts[].last_updated_date` | string or null |  | Date the alert was last updated, if shown, in YYYY-MM-DD format. |
| `alerts[].more_information_url` | string or null | `"https://www.nps.gov/yell/images/Biscuit_Basin_Closure_Map_20250529_1.png"` | More information link when provided. |
| `park_code` | string | `"acad"` | NPS park code. |
| `park_name` | string | `"Acadia National Park"` | Official name of the park. |
| `conditions_page_url` | string | `"https://www.nps.gov/acad/planyourvisit/conditions.htm"` | Link to the park Current Conditions page. |

**Example input**

```json
{
  "type": "closure",
  "park_name": "Acadia"
}
```

**Example output**

```json
{
  "alerts": [
    {
      "type": "Closure",
      "title": "Eastern Section of Beech Mountain Loop Road Closed for Repairs",
      "page_url": "https://www.nps.gov/acad/planyourvisit/conditions.htm",
      "description": "Starting Sept 21, the eastern section of the Beech Mountain Loop Trail will be closed for repairs from a junction just beyond the parking lot to just below the summit at the fire tower. Three alternat…",
      "last_updated_date": null,
      "more_information_url": null
    },
    {
      "type": "Closure",
      "title": "Southern Section of Ocean Path Closed for Repairs",
      "page_url": "https://www.nps.gov/acad/planyourvisit/conditions.htm",
      "description": "Starting Aug 31, a section of Ocean Path will be closed for repairs from a trailhead across from the Otter Point parking lot to the trail's southern terminus.",
      "last_updated_date": null,
      "more_information_url": null
    },
    {
      "type": "Closure",
      "title": "Schoodic Mountain Road Closed for Repairs",
      "page_url": "https://www.nps.gov/acad/planyourvisit/conditions.htm",
      "description": "Starting Aug 31, the Schoodic Mountain Road will be closed for repairs from Schoodic Loop Road to the summit of Schoodic Head. Workers will be operating heavy equipment for resurfacing, regrading and …",
      "last_updated_date": null,
      "more_information_url": null
    }
  ],
  "park_code": "acad",
  "park_name": "Acadia National Park",
  "conditions_page_url": "https://www.nps.gov/acad/planyourvisit/conditions.htm"
}
```

## Quick start

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@national-park-service",
  "visibility": "public",
  "operation": "get_park",
  "version": 1,
  "input": {
    "park_name": "Statue of Liberty"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

body = json.loads("{\n  \"api\": \"@national-park-service\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_park\",\n  \"version\": 1,\n  \"input\": {\n    \"park_name\": \"Statue of Liberty\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=120) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_000),
  body: JSON.stringify({
  "api": "@national-park-service",
  "visibility": "public",
  "operation": "get_park",
  "version": 1,
  "input": {
    "park_name": "Statue of Liberty"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

Or describe the data in plain language: send `{"api":"@national-park-service","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## Use cases

- Compare entrance fees and pass options across parks
- Help visitors find park hours and directions
- Identify parks with timed-entry requirements
- Show visitors current park alerts
- Find visitor center addresses and contact details

## FAQ

### Is Fous affiliated with National Park Service?

No. Fous is not affiliated with National Park Service. This workflow reads the public nps.gov website and returns its data.

### How much does it cost?

Each run costs 1 credit. With pay-as-you-go, a credit costs 1¢; monthly plans cost less per credit.

### Do I need a National Park Service account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from nps.gov when you run it; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check on Sep 29, 2026.

### What are the fees and hours for a park?

Get park returns entrance fees, opening hours and seasons, and entry booking guidance for a named park or site.

### What alerts are listed for a park?

List park alerts returns alerts for a named park, optionally filtered by category.

### Does a park require timed entry?

Get park returns whether reservations or timed entry are required for a named park or site.

## Related

- [National Weather Service API](https://fous.com/workflows/national-weather-service.md): National Weather Service provides U.S. day-and-night forecasts for seven days, hourly forecasts for up to 156 hours where available, active alerts, and latest nearby station observations.
- [Recreation.gov API](https://fous.com/workflows/recreation-gov.md): Recreation.gov helps find and reserve campsites and other outdoor experiences on U.S. federal lands, with availability subject to change before booking and listed prices not guaranteed.
- [The Weather Channel API](https://fous.com/workflows/the-weather-channel.md): The Weather Channel returns current conditions, today’s high/low, up to 15 daily forecasts (sometimes fewer), 1–48 local hourly forecasts, and active severe weather alerts.
- [NOAA Space Weather API](https://fous.com/workflows/noaa-space-weather.md): NOAA Space Weather provides near-term aurora chances, current geomagnetic activity, a three-day Kp outlook, and NOAA alerts from the past 1–7 days.
- [OpenStreetMap API](https://fous.com/workflows/openstreetmap.md): OpenStreetMap returns place coordinates, address details, nearby readable place information, and ordered place search results from contributor-created data; results reflect mapped features and may be incomplete or differ from landmarks.
- [NASA API](https://fous.com/workflows/nasa.md): NASA provides astronomy pictures from June 16, 1995 onward, up to 100 media matches, inclusive UTC asteroid approaches, recent approximate natural events, and upcoming ISS sightings for listed cities.
- [Booking.com API](https://fous.com/workflows/booking-com.md): Booking.com helps find stays, property details and public guest reviews; prices and cancellation terms depend on selected dates, and displayed prices may exclude taxes and fees.
- [NPI Registry API](https://fous.com/workflows/npi-registry.md): NPI Registry returns public US provider search results with contact and taxonomy details, plus individual 10-digit NPI records with registry dates; fields may be missing.
- [All Travel workflows](https://fous.com/workflows/category/travel)
