---
title: "Crowd forecast"
method: GET
path: "/v1/parks/{park}/crowds"
tags: ["Parks"]
---

# Crowd forecast

`GET /v1/parks/{park}/crowds`

## Request

- Base URL: `https://api.parkypass.com`
- URL: `https://api.parkypass.com/v1/parks/{park}/crowds`
- Auth: one of:
  - none
  - HTTP bearer
  - API key in header `X-Parky-Key`

Parky's 1-10 crowd forecast with a low-high range and drivers for up to 30 park-local days, plus the model's measured accuracy (`accuracy`). Today's level follows observed waits once the park has an hour of them.

## Path parameters

- `park` string, required

## Query parameters

- `date` string, date
- `days` integer

## Response `200`

Success.

- CrowdResponse
  - `schema_version` 1, required: Response format version. Fields are only added within a version.
  - `park_id` string, required
  - `park_name` string
  - `time_zone` string
  - `days` object[], required
    - `date` string, date
    - `crowd_level` number
    - `forecast_level` number: Present when today's level was adjusted to observed waits.
    - `adjusted_to_observed_waits` boolean
    - `level_low` number
    - `level_high` number
    - `drivers` object[]
      - `label` string
      - `effect` number
    - `notes` string[]
    - `generated_at` string, date-time, nullable
  - `requested_from` string, date
  - `requested_to` string, date
  - `missing_dates` string[]
  - `data_status` 'available' | 'partial' | 'unavailable', required
  - `accuracy` CrowdAccuracy: How Parky's crowd forecast has scored against observed crowds for this park.
    - `days_scored` integer, nullable
    - `within_one_level_share` number, nullable: Share of days forecast within one level.
    - `mean_miss_levels` number, nullable
    - `baseline_mean_miss_levels` number, nullable: Mean miss of a naive day-of-week baseline.
    - `correlation` number, nullable
    - `reliable` boolean, nullable
    - `model_version` string, nullable
    - `updated_at` string, date-time, nullable
  - `note` string
  - `docs_url` string, uri, required: Developer documentation.
  - `attribution` Attribution, required: Required credit. Wherever Parky data is shown, display `text` with a visible link to `url`; the link must stay visible.
    - `text` 'Live data from parkypass.com', required: Text to display.
    - `url` string, uri, required: The matching parkypass.com page to link.
    - `required` true, required: Always true: attribution is a condition of use.
  - `generated_at` string, date-time, required: When Parky built this response.

## Other responses

- `400`: Invalid input, such as a malformed date or out-of-range days. The message says the accepted range.
- `401`: Malformed, unknown or revoked key. Drop the key to use anonymous limits.
- `404`: Unknown park or ride. The message lists valid park keys or how to find ride IDs.
- `429`: Rate limit or stream limit reached.
- `503`: Parky's upstream data is unavailable or its read budget is spent. Retry after Retry-After.

---

[API](https://skmtc.dev/parkypass/apis/parky-api.md) · [All operations](https://skmtc.dev/parkypass/apis/parky-api/llms.txt) · [OpenAPI document](https://skmtc.dev/parkypass/apis/parky-api/revisions/c3abcb8be74f?raw)
