Server definition
- Hash
- sha256:bac245c6585913f4e6dbb0975f2ea14221eee1267d46d1c0d6627271ea74962e
- What it is
- What a remote MCP server returned when asked what it offers: 14 tools
The blob, as servednamed by its sha256
{
"instructions": "PeakCam Snow is read-only snow data for about 150 ski resorts in the US, Canada, Chile and Argentina (https://www.peakcam.io).\n\nEvery snow number carries a `source`: `snotel` means measured at a USDA NRCS SNOTEL station near the resort (quality-controlled, refreshed every 6 hours, valid at the station's elevation rather than the summit); `open_meteo` means a weather-model estimate for resorts with no station; `pipeline`, `manual` and `resort` are blends or hand-entered values.\n\nWebcams are returned as links only: the resort's PeakCam page, the operator's stream URL and, when one exists, a still-image URL with its capture time. Never describe a frame you have not seen.\n\nWorkflow: search_resorts turns a name into a slug; get_resort_conditions, get_resort_cams, get_forecast and get_snow_history take that slug; find_powder ranks resorts by new snow (sourceOnly=\"snotel\" for measured-only); compare_resorts sets 2–6 resorts side by side; get_opening_dates lists season dates.\n\nWhen you answer, label each number with its source and time (for example \"6 in in 24 h, SNOTEL-measured, 2026-12-20 12:00 UTC\"), call model values estimates, and link the resort's canonicalUrl. Each resort is also readable as markdown at peakcam://resorts/{slug}.",
"tools": [
{
"description": "One natural-language question in, one tool result out, deterministically: the router resolves the resort by name or nickname, picks an intent from the wording (snow, open/closed, forecast, cams, history, compare, where did it snow, percent of normal, profile, regions, alerts) and calls the matching tool. Returns the tool's data, the resort, citation URLs and a dated sentence to quote. Answers `answerable: false` with suggestions rather than guessing. No language model is involved.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"question": {
"description": "The question as the user asked it, up to 300 characters, e.g. \"is Alta open\" or \"where did it snow most in Colorado\".",
"maxLength": 300,
"minLength": 1,
"type": "string"
}
},
"required": [
"question"
],
"type": "object"
},
"name": "ask",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"answerable": {
"description": "False when the router found no resort or no intent it could serve; `data` is then null and `suggestions` says what to ask.",
"type": "boolean"
},
"arguments": {
"anyOf": [
{
"additionalProperties": {},
"propertyNames": {
"type": "string"
},
"type": "object"
},
{
"type": "null"
}
],
"description": "The arguments that tool was called with, so the call can be repeated over MCP."
},
"asOf": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO instant of the newest report the sentence used; null when it used none."
},
"attribution": {
"type": "string"
},
"citations": {
"description": "PeakCam URLs to cite, the resort page first.",
"items": {
"type": "string"
},
"type": "array"
},
"data": {
"anyOf": [
{},
{
"type": "null"
}
],
"description": "The tool's structured result (its documented `outputSchema`), or null."
},
"generatedAt": {
"type": "string"
},
"intent": {
"enum": [
"conditions",
"openings",
"forecast",
"cams",
"cam_timeline",
"history",
"compare",
"powder",
"percent_of_normal",
"profile",
"regions",
"alerts",
"unknown"
],
"type": "string"
},
"license": {
"type": "string"
},
"place": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"country": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"state",
"country"
],
"type": "object"
},
{
"type": "null"
}
]
},
"question": {
"type": "string"
},
"resort": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"canonicalUrl": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"slug",
"name",
"canonicalUrl"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "The resort the question named (the first, for a comparison)."
},
"resorts": {
"description": "Every resort the question named, in order.",
"items": {
"additionalProperties": false,
"properties": {
"canonicalUrl": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"slug",
"name",
"canonicalUrl"
],
"type": "object"
},
"type": "array"
},
"sentence": {
"description": "A dated, source-labelled sentence that can be quoted verbatim.",
"type": "string"
},
"suggestions": {
"description": "Questions the router can answer, offered when it could not answer this one.",
"items": {
"type": "string"
},
"type": "array"
},
"tool": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The PeakCam MCP tool whose result is in `data`."
}
},
"required": [
"question",
"answerable",
"intent",
"tool",
"arguments",
"resort",
"resorts",
"place",
"sentence",
"asOf",
"data",
"citations",
"suggestions",
"attribution",
"license",
"generatedAt"
],
"type": "object"
}
},
{
"description": "Side-by-side latest snow, season status and cam counts for 2–6 resorts. Every slug must resolve; an unknown one returns suggestions.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"slugs": {
"description": "2–6 resort slugs.",
"items": {
"description": "PeakCam resort slug, lowercase kebab-case, e.g. `breckenridge` or `ski-portillo`. Get it from search_resorts.",
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"maxItems": 6,
"minItems": 2,
"type": "array"
}
},
"required": [
"slugs"
],
"type": "object"
},
"name": "compare_resorts",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"count": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"generatedAt": {
"description": "ISO-8601 UTC instant the result was generated.",
"type": "string"
},
"resorts": {
"items": {
"additionalProperties": false,
"properties": {
"apiUrl": {
"type": "string"
},
"attribution": {
"type": "string"
},
"camCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"canonicalUrl": {
"description": "The resort's PeakCam page. Cite this.",
"type": "string"
},
"forecast": {
"description": "Latest run per model and point, once stored forecasts are live.",
"items": {
"additionalProperties": false,
"properties": {
"days": {
"items": {
"additionalProperties": false,
"properties": {
"date": {
"description": "YYYY-MM-DD, local to the resort.",
"type": "string"
},
"precipProb": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "0–100."
},
"snowfallCm": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"snowfallHi": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"snowfallLo": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Low end of the spread across models / members; null for a single model."
},
"tempMax": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "°C as the models report it."
},
"tempMin": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"weatherCode": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
],
"description": "WMO weather interpretation code."
},
"windGust": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "km/h."
}
},
"required": [
"date",
"snowfallCm",
"snowfallLo",
"snowfallHi",
"tempMax",
"tempMin",
"precipProb",
"windGust",
"weatherCode"
],
"type": "object"
},
"type": "array"
},
"horizonDays": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"id": {
"type": "string"
},
"issuedAt": {
"type": "string"
},
"model": {
"description": "Model id as the provider names it, or `blend` for PeakCam's skill-weighted blend.",
"type": "string"
},
"point": {
"enum": [
"summit",
"base"
],
"type": "string"
}
},
"required": [
"id",
"point",
"model",
"issuedAt",
"horizonDays",
"days"
],
"type": "object"
},
"type": "array"
},
"forecastScores": {
"description": "Per-model verification at this resort, once computed.",
"items": {
"additionalProperties": false,
"properties": {
"biasRatio": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Sum(forecast) / sum(observed); above 1 means the model over-forecasts snow."
},
"computedAt": {
"type": "string"
},
"day1Mae": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Mean absolute error of the day-1 snowfall forecast, cm."
},
"day3Mae": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"day7Mae": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"model": {
"type": "string"
},
"periodDays": {
"description": "Trailing verification window, days.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"samples": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
]
}
},
"required": [
"model",
"periodDays",
"day1Mae",
"day3Mae",
"day7Mae",
"samples",
"biasRatio",
"computedAt"
],
"type": "object"
},
"type": "array"
},
"license": {
"description": "URL of the terms that govern reuse.",
"type": "string"
},
"liveCamCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"location": {
"additionalProperties": false,
"properties": {
"baseElevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"country": {
"description": "ISO 3166-1 alpha-2.",
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"region": {
"type": "string"
},
"state": {
"description": "US state / CA province code, or the country name for Andes resorts.",
"type": "string"
},
"summitElevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
},
"required": [
"state",
"region",
"country",
"lat",
"lon",
"baseElevationFt",
"summitElevationFt"
],
"type": "object"
},
"measuredNow": {
"description": "Latest observation per station, once the station layer is live.",
"items": {
"additionalProperties": false,
"properties": {
"newSnowIn": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "New snow since the previous observation, inches."
},
"observedAt": {
"description": "ISO-8601 instant of the observation.",
"type": "string"
},
"snowDepthIn": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"stationId": {
"type": "string"
},
"sweIn": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"tempF": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"windMph": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
},
"required": [
"stationId",
"observedAt",
"snowDepthIn",
"sweIn",
"newSnowIn",
"tempF",
"windMph"
],
"type": "object"
},
"type": "array"
},
"name": {
"type": "string"
},
"profile": {
"additionalProperties": false,
"properties": {
"aliases": {
"description": "Other names the resort is known by, e.g. `A-Basin`.",
"items": {
"type": "string"
},
"type": "array"
},
"annualSnowfallIn": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Operator-stated average annual snowfall, inches."
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"descriptionSource": {
"anyOf": [
{
"enum": [
"operator",
"generated",
"editor"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "`operator`: the resort's own copy. `generated`: a model-written draft, labelled as such on the page. `editor`: hand-written by PeakCam."
},
"liftsTotal": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
]
},
"longestRunMi": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"passes": {
"description": "Multi-resort passes the resort is on.",
"items": {
"enum": [
"ikon",
"epic",
"mountain-collective",
"indy",
"power"
],
"type": "string"
},
"type": "array"
},
"runsTotal": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
]
},
"skiableAcres": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"trailMapUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The operator's trail map (linked, never copied)."
},
"verticalFt": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
]
},
"wikidataId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"runsTotal",
"liftsTotal",
"skiableAcres",
"verticalFt",
"annualSnowfallIn",
"longestRunMi",
"description",
"descriptionSource",
"trailMapUrl",
"wikidataId",
"aliases",
"passes"
],
"type": "object"
},
"score": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"components": {
"additionalProperties": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"date": {
"description": "YYYY-MM-DD the score is for.",
"type": "string"
},
"rating": {
"anyOf": [
{
"enum": [
"great",
"good",
"fair",
"poor"
],
"type": "string"
},
{
"type": "null"
}
]
},
"score": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"scoredBy": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Scorer version, e.g. `score-v1`."
}
},
"required": [
"date",
"score",
"rating",
"components",
"scoredBy"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "Today's 0–100 score, once the scorer is live."
},
"season": {
"additionalProperties": false,
"properties": {
"asOf": {
"description": "The YYYY-MM-DD day (US Pacific) the status was evaluated for.",
"type": "string"
},
"closingDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "YYYY-MM-DD; mainly Southern-hemisphere rows."
},
"hemisphere": {
"enum": [
"north",
"south"
],
"type": "string"
},
"openDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "YYYY-MM-DD opening date for the current season, confirmed or projected."
},
"openDateKind": {
"anyOf": [
{
"enum": [
"confirmed",
"projected"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Whether `openDate` was announced by the resort or is a third-party projection."
},
"seasonLabel": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The season the dates belong to, e.g. `2026-27`."
},
"source": {
"const": "resort_openings",
"type": "string"
},
"sourceUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Where the date was sourced from, when recorded."
},
"status": {
"description": "`open` once a resort-confirmed opening date has passed (or a Southern-hemisphere season is still inside its closing date); `closed` before a confirmed opening date or after a closing date; `unknown` when PeakCam has only a projection or no date.",
"enum": [
"open",
"closed",
"unknown"
],
"type": "string"
}
},
"required": [
"status",
"openDate",
"openDateKind",
"closingDate",
"seasonLabel",
"hemisphere",
"asOf",
"source",
"sourceUrl"
],
"type": "object"
},
"slug": {
"type": "string"
},
"snow": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"baseDepth": {
"additionalProperties": false,
"description": "Snow depth at the station or model point, inches.",
"properties": {
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO-8601 instant the report carrying this value was written."
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"additionalProperties": false,
"description": "Present only for station-sourced values.",
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
"unit": {
"enum": [
"in",
"percent"
],
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Null when not reported or suppressed as unreliable."
}
},
"required": [
"value",
"unit",
"source",
"measuredAt"
],
"type": "object"
},
"narrative": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "One-paragraph plain-language conditions summary, when the report carries one."
},
"newSnow24h": {
"additionalProperties": false,
"description": "New snow in the last 24 hours, inches.",
"properties": {
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO-8601 instant the report carrying this value was written."
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"additionalProperties": false,
"description": "Present only for station-sourced values.",
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
"unit": {
"enum": [
"in",
"percent"
],
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Null when not reported or suppressed as unreliable."
}
},
"required": [
"value",
"unit",
"source",
"measuredAt"
],
"type": "object"
},
"newSnow48h": {
"additionalProperties": false,
"description": "New snow in the last 48 hours, inches.",
"properties": {
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO-8601 instant the report carrying this value was written."
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"additionalProperties": false,
"description": "Present only for station-sourced values.",
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
"unit": {
"enum": [
"in",
"percent"
],
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Null when not reported or suppressed as unreliable."
}
},
"required": [
"value",
"unit",
"source",
"measuredAt"
],
"type": "object"
},
"outlook": {
"anyOf": [
{
"enum": [
"more_snow",
"stable",
"warming",
"melt_risk"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Derived short-term outlook from the conditions engine."
},
"pctOfNormal": {
"additionalProperties": false,
"description": "SWE as a percentage of the station's 1991–2020 median for this day of the water year. Null when there is no station, when SWE is under 2 in, or outside the 10–300 % band where the ratio is meaningful.",
"properties": {
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO-8601 instant the report carrying this value was written."
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"additionalProperties": false,
"description": "Present only for station-sourced values.",
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
"unit": {
"enum": [
"in",
"percent"
],
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Null when not reported or suppressed as unreliable."
}
},
"required": [
"value",
"unit",
"source",
"measuredAt"
],
"type": "object"
},
"rating": {
"anyOf": [
{
"enum": [
"great",
"good",
"fair",
"poor"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "PeakCam's overall conditions rating."
},
"reportedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO-8601 instant of the latest report."
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Source of the latest report as a whole (the per-field `source` values agree with it today)."
},
"swe": {
"additionalProperties": false,
"description": "Snow water equivalent, inches.",
"properties": {
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO-8601 instant the report carrying this value was written."
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"additionalProperties": false,
"description": "Present only for station-sourced values.",
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
"unit": {
"enum": [
"in",
"percent"
],
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Null when not reported or suppressed as unreliable."
}
},
"required": [
"value",
"unit",
"source",
"measuredAt"
],
"type": "object"
},
"tags": {
"description": "Condition tags from the conditions engine, e.g. `powder`.",
"items": {
"type": "string"
},
"type": "array"
},
"trend7d": {
"additionalProperties": false,
"properties": {
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"additionalProperties": false,
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
"value": {
"anyOf": [
{
"enum": [
"rising",
"falling",
"stable"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Direction of snow-water-equivalent change over the last 7 days."
}
},
"required": [
"value",
"source",
"measuredAt"
],
"type": "object"
}
},
"required": [
"baseDepth",
"newSnow24h",
"newSnow48h",
"swe",
"pctOfNormal",
"trend7d",
"outlook",
"rating",
"tags",
"narrative",
"reportedAt",
"source"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "Null when the resort has never had a snow report."
},
"stations": {
"description": "Observation stations serving the resort, once the station layer is live.",
"items": {
"additionalProperties": false,
"properties": {
"distanceKm": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Great-circle distance from the resort's coordinates."
},
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"id": {
"description": "PeakCam station id (UUID).",
"type": "string"
},
"kind": {
"enum": [
"snotel",
"scan",
"nws_obs",
"metar",
"ghcn",
"bc_asws",
"eccc",
"road_cam"
],
"type": "string"
},
"lat": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"lon": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"rank": {
"description": "1 = the preferred station for its role.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"role": {
"description": "Where the station sits relative to the resort.",
"enum": [
"summit",
"mid",
"base",
"approach"
],
"type": "string"
},
"source": {
"description": "Provider, e.g. `nrcs`, `nws`, `eccc`, `udot`.",
"type": "string"
},
"sourceId": {
"description": "The provider's own identifier (SNOTEL triplet, ICAO code, GHCN id).",
"type": "string"
}
},
"required": [
"id",
"source",
"sourceId",
"name",
"kind",
"role",
"lat",
"lon",
"elevationFt",
"distanceKm",
"rank"
],
"type": "object"
},
"type": "array"
},
"updatedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Newest instant among the snow report and cam checks/captures."
},
"websiteUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"slug",
"name",
"canonicalUrl",
"apiUrl",
"location",
"profile",
"snow",
"season",
"websiteUrl",
"attribution",
"license",
"updatedAt",
"camCount",
"liveCamCount"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"count",
"resorts",
"generatedAt"
],
"type": "object"
}
},
{
"description": "Rank resorts by new snow in the last 24 or 48 hours, optionally within one state/province and above a minimum. Pass sourceOnly=\"snotel\" to answer \"where did it snow most, measured only\" with station data alone. Resorts with no report are left out; zero inches is a measurement. Sources: `snotel` = measured at a USDA NRCS SNOTEL station near the resort (station elevation, not the summit), `open_meteo` = weather-model estimate for resorts without a station.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"default": 10,
"description": "Rows to return, 1–25.",
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"minInches": {
"description": "Keep only resorts with at least this many inches in the window.",
"maximum": 500,
"minimum": 0,
"type": "number"
},
"sourceOnly": {
"description": "`snotel` keeps only station-measured reports and drops model estimates.",
"enum": [
"snotel"
],
"type": "string"
},
"state": {
"description": "US state or Canadian province code (`CO`, `UT`, `BC`), or for the Andes the country name PeakCam lists (`Chile`, `Argentina`). Case-insensitive.",
"maxLength": 40,
"minLength": 2,
"type": "string"
},
"window": {
"default": "24h",
"description": "Which window ranks first; the other breaks ties.",
"enum": [
"24h",
"48h"
],
"type": "string"
}
},
"type": "object"
},
"name": "find_powder",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"attribution": {
"type": "string"
},
"count": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"filters": {
"additionalProperties": false,
"properties": {
"minInches": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"state",
"minInches",
"source"
],
"type": "object"
},
"generatedAt": {
"type": "string"
},
"license": {
"type": "string"
},
"results": {
"items": {
"additionalProperties": false,
"properties": {
"apiUrl": {
"type": "string"
},
"baseDepth": {
"additionalProperties": false,
"properties": {
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO-8601 instant the report carrying this value was written."
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"additionalProperties": false,
"description": "Present only for station-sourced values.",
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
"unit": {
"enum": [
"in",
"percent"
],
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Null when not reported or suppressed as unreliable."
}
},
"required": [
"value",
"unit",
"source",
"measuredAt"
],
"type": "object"
},
"canonicalUrl": {
"type": "string"
},
"country": {
"type": "string"
},
"name": {
"type": "string"
},
"newSnow24h": {
"additionalProperties": false,
"properties": {
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO-8601 instant the report carrying this value was written."
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"additionalProperties": false,
"description": "Present only for station-sourced values.",
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
"unit": {
"enum": [
"in",
"percent"
],
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Null when not reported or suppressed as unreliable."
}
},
"required": [
"value",
"unit",
"source",
"measuredAt"
],
"type": "object"
},
"newSnow48h": {
"additionalProperties": false,
"properties": {
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO-8601 instant the report carrying this value was written."
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"additionalProperties": false,
"description": "Present only for station-sourced values.",
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
"unit": {
"enum": [
"in",
"percent"
],
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Null when not reported or suppressed as unreliable."
}
},
"required": [
"value",
"unit",
"source",
"measuredAt"
],
"type": "object"
},
"rank": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"slug": {
"type": "string"
},
"state": {
"type": "string"
}
},
"required": [
"rank",
"slug",
"name",
"canonicalUrl",
"apiUrl",
"state",
"country",
"newSnow24h",
"newSnow48h",
"baseDepth"
],
"type": "object"
},
"type": "array"
},
"window": {
"enum": [
"24h",
"48h"
],
"type": "string"
}
},
"required": [
"window",
"filters",
"count",
"results",
"attribution",
"license",
"generatedAt"
],
"type": "object"
}
},
{
"description": "How to be told when it snows, without this server writing anything: the powder-alert threshold and schedule, the e-mail, webhook (Standard Webhooks, signed), Atom and iCal channels, the per-resort public Atom feed, the webhook payload contract, and the manage page where a person registers a destination. Pass a slug to get that resort's feed URL.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"slug": {
"description": "Optional: a resort slug, to fill in its public Atom feed URL.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"type": "object"
},
"name": "get_alert_options",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"channels": {
"items": {
"additionalProperties": false,
"properties": {
"authentication": {
"type": "string"
},
"how": {
"description": "What a person or agent does to use it.",
"type": "string"
},
"kind": {
"enum": [
"email",
"webhook",
"atom",
"ical",
"resort_atom"
],
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Where to go, or a URL template."
}
},
"required": [
"kind",
"title",
"how",
"url",
"authentication"
],
"type": "object"
},
"type": "array"
},
"generatedAt": {
"description": "ISO-8601 UTC instant the result was generated.",
"type": "string"
},
"manageUrl": {
"description": "Where a person subscribes and registers webhooks; e-mail verified, no password.",
"type": "string"
},
"resortFeed": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"atomUrl": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"slug",
"name",
"atomUrl"
],
"type": "object"
},
{
"type": "null"
}
]
},
"schedule": {
"type": "string"
},
"thresholdInches": {
"description": "New snow in 24 h (measured) or storm total (forecast) that fires an alert.",
"type": "number"
},
"webhook": {
"additionalProperties": false,
"properties": {
"docsUrl": {
"type": "string"
},
"headers": {
"items": {
"type": "string"
},
"type": "array"
},
"payloadExample": {
"additionalProperties": {},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"retries": {
"type": "string"
},
"signature": {
"type": "string"
}
},
"required": [
"headers",
"signature",
"payloadExample",
"retries",
"docsUrl"
],
"type": "object"
},
"writes": {
"const": false,
"description": "This tool never subscribes anyone; it only explains how.",
"type": "boolean"
}
},
"required": [
"thresholdInches",
"schedule",
"manageUrl",
"channels",
"resortFeed",
"webhook",
"writes",
"generatedAt"
],
"type": "object"
}
},
{
"description": "Archived still frames for a resort's webcams (or one cam) over the last 1–48 hours, as links with capture times, plus the newest storm frame on tape per cam. Only cams whose operator allows archiving appear; PeakCam captures every 6 hours. Use it for \"what did it look like this morning\" or \"show me the last storm\". Frames are never returned inline.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"camId": {
"description": "Optional: one cam's id from get_resort_cams; default is every archived cam at the resort.",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"hours": {
"default": 24,
"description": "Window, 1–48 hours.",
"maximum": 48,
"minimum": 1,
"type": "integer"
},
"slug": {
"description": "PeakCam resort slug, lowercase kebab-case, e.g. `breckenridge` or `ski-portillo`. Get it from search_resorts.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_cam_timeline",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"camCount": {
"description": "Cams with at least one frame in the result.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"cams": {
"items": {
"additionalProperties": false,
"properties": {
"camId": {
"type": "string"
},
"camName": {
"type": "string"
},
"frames": {
"description": "Oldest first, at most 8, all inside the window.",
"items": {
"additionalProperties": false,
"properties": {
"capturedAt": {
"description": "ISO instant PeakCam captured it.",
"type": "string"
},
"keeper": {
"description": "True when captured during a storm (≥ 6 in in 24 h); kept a year instead of 30 days.",
"type": "boolean"
},
"snow24hAtCapture": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "The resort's 24 h new-snow number when the frame was taken."
},
"url": {
"description": "Public image URL of the archived frame. Link it; do not describe it unseen.",
"type": "string"
}
},
"required": [
"url",
"capturedAt",
"snow24hAtCapture",
"keeper"
],
"type": "object"
},
"type": "array"
},
"lastStorm": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"capturedAt": {
"description": "ISO instant PeakCam captured it.",
"type": "string"
},
"keeper": {
"description": "True when captured during a storm (≥ 6 in in 24 h); kept a year instead of 30 days.",
"type": "boolean"
},
"snow24hAtCapture": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "The resort's 24 h new-snow number when the frame was taken."
},
"url": {
"description": "Public image URL of the archived frame. Link it; do not describe it unseen.",
"type": "string"
}
},
"required": [
"url",
"capturedAt",
"snow24hAtCapture",
"keeper"
],
"type": "object"
},
{
"type": "null"
}
]
},
"pageUrl": {
"type": "string"
}
},
"required": [
"camId",
"camName",
"pageUrl",
"frames",
"lastStorm"
],
"type": "object"
},
"type": "array"
},
"canonicalUrl": {
"type": "string"
},
"frameCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"generatedAt": {
"description": "ISO-8601 UTC instant the result was generated.",
"type": "string"
},
"hours": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"lastStorm": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"camId": {
"type": "string"
},
"camName": {
"type": "string"
},
"capturedAt": {
"description": "ISO instant PeakCam captured it.",
"type": "string"
},
"keeper": {
"description": "True when captured during a storm (≥ 6 in in 24 h); kept a year instead of 30 days.",
"type": "boolean"
},
"snow24hAtCapture": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "The resort's 24 h new-snow number when the frame was taken."
},
"url": {
"description": "Public image URL of the archived frame. Link it; do not describe it unseen.",
"type": "string"
}
},
"required": [
"url",
"capturedAt",
"snow24hAtCapture",
"keeper",
"camId",
"camName"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "Newest storm frame across the resort, any age."
},
"name": {
"type": "string"
},
"newestCapturedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"note": {
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"slug",
"name",
"canonicalUrl",
"hours",
"camCount",
"frameCount",
"newestCapturedAt",
"lastStorm",
"cams",
"note",
"generatedAt"
],
"type": "object"
}
},
{
"description": "Five-day National Weather Service forecast for a US resort (daily high/low, text forecast, precipitation chance, wind) with a rough snow estimate derived from the forecast wording. NWS covers US resorts only; Canadian and Andes resorts return available=false.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"slug": {
"description": "PeakCam resort slug, lowercase kebab-case, e.g. `breckenridge` or `ski-portillo`. Get it from search_resorts.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_forecast",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"available": {
"type": "boolean"
},
"canonicalUrl": {
"type": "string"
},
"generatedAt": {
"description": "ISO-8601 UTC instant the result was generated.",
"type": "string"
},
"name": {
"type": "string"
},
"note": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"periods": {
"items": {
"additionalProperties": false,
"properties": {
"condition": {
"description": "PeakCam condition key derived from the text.",
"type": "string"
},
"date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "YYYY-MM-DD when NWS supplies it."
},
"dow": {
"description": "`Today`, then three-letter weekday.",
"type": "string"
},
"feelsLikeF": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Wind-chill adjusted high."
},
"highF": {
"type": "number"
},
"lowF": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"precipProbability": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Percent."
},
"shortForecast": {
"description": "NWS short forecast text, e.g. `Snow Likely`.",
"type": "string"
},
"snowInchesEstimate": {
"description": "Keyword heuristic from the forecast text (blizzard/heavy snow 8, snow 3, flurries 1, else 0). Not a quantitative forecast; say so when quoting it.",
"type": "number"
},
"windDirection": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"windMph": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
},
"required": [
"dow",
"date",
"shortForecast",
"condition",
"highF",
"lowF",
"snowInchesEstimate",
"precipProbability",
"windMph",
"windDirection",
"feelsLikeF"
],
"type": "object"
},
"type": "array"
},
"provider": {
"const": "nws",
"type": "string"
},
"slug": {
"type": "string"
}
},
"required": [
"slug",
"name",
"canonicalUrl",
"provider",
"available",
"note",
"periods",
"generatedAt"
],
"type": "object"
}
},
{
"description": "Season opening and closing dates with status (open / closed / unknown) for every resort, or those in one state/province, soonest opening first. Confirmed dates come from the resort; projected ones are third-party estimates.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"default": 50,
"description": "Rows to return, 1–150.",
"maximum": 150,
"minimum": 1,
"type": "integer"
},
"state": {
"description": "US state or Canadian province code (`CO`, `UT`, `BC`), or for the Andes the country name PeakCam lists (`Chile`, `Argentina`). Case-insensitive.",
"maxLength": 40,
"minLength": 2,
"type": "string"
}
},
"type": "object"
},
"name": "get_opening_dates",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"asOf": {
"description": "YYYY-MM-DD (US Pacific) the statuses were evaluated for.",
"type": "string"
},
"count": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"filters": {
"additionalProperties": false,
"properties": {
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"state"
],
"type": "object"
},
"generatedAt": {
"description": "ISO-8601 UTC instant the result was generated.",
"type": "string"
},
"resorts": {
"items": {
"additionalProperties": false,
"properties": {
"canonicalUrl": {
"type": "string"
},
"country": {
"type": "string"
},
"name": {
"type": "string"
},
"season": {
"additionalProperties": false,
"properties": {
"asOf": {
"description": "The YYYY-MM-DD day (US Pacific) the status was evaluated for.",
"type": "string"
},
"closingDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "YYYY-MM-DD; mainly Southern-hemisphere rows."
},
"hemisphere": {
"enum": [
"north",
"south"
],
"type": "string"
},
"openDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "YYYY-MM-DD opening date for the current season, confirmed or projected."
},
"openDateKind": {
"anyOf": [
{
"enum": [
"confirmed",
"projected"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Whether `openDate` was announced by the resort or is a third-party projection."
},
"seasonLabel": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The season the dates belong to, e.g. `2026-27`."
},
"source": {
"const": "resort_openings",
"type": "string"
},
"sourceUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Where the date was sourced from, when recorded."
},
"status": {
"description": "`open` once a resort-confirmed opening date has passed (or a Southern-hemisphere season is still inside its closing date); `closed` before a confirmed opening date or after a closing date; `unknown` when PeakCam has only a projection or no date.",
"enum": [
"open",
"closed",
"unknown"
],
"type": "string"
}
},
"required": [
"status",
"openDate",
"openDateKind",
"closingDate",
"seasonLabel",
"hemisphere",
"asOf",
"source",
"sourceUrl"
],
"type": "object"
},
"slug": {
"type": "string"
},
"state": {
"type": "string"
}
},
"required": [
"slug",
"name",
"canonicalUrl",
"state",
"country",
"season"
],
"type": "object"
},
"type": "array"
},
"totalMatching": {
"description": "Resorts that matched before `limit` was applied.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
}
},
"required": [
"asOf",
"filters",
"count",
"totalMatching",
"resorts",
"generatedAt"
],
"type": "object"
}
},
{
"description": "SNOTEL-fed resorts ranked by snowpack relative to normal: snow water equivalent against the station's own 1991–2020 median for today's date, deepest first, optionally within one state. Only measured station readings qualify, inside the 10–300 % band and above 2 in of SWE; early-season noise is withheld, not ranked. Same data as https://www.peakcam.io/snow-report/percent-of-normal.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"default": 10,
"description": "Rows to return, 1–50.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"state": {
"description": "US state or Canadian province code (`CO`, `UT`, `BC`), or for the Andes the country name PeakCam lists (`Chile`, `Argentina`). Case-insensitive.",
"maxLength": 40,
"minLength": 2,
"type": "string"
}
},
"type": "object"
},
"name": "get_percent_of_normal",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"asOf": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO instant of the newest report the ranking used."
},
"count": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"filters": {
"additionalProperties": false,
"properties": {
"state": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"state"
],
"type": "object"
},
"generatedAt": {
"description": "ISO-8601 UTC instant the result was generated.",
"type": "string"
},
"pageUrl": {
"type": "string"
},
"phase": {
"description": "`pre-season`/`early`: nothing rankable yet, see `sentence` for why.",
"enum": [
"pre-season",
"early",
"season"
],
"type": "string"
},
"results": {
"items": {
"additionalProperties": false,
"properties": {
"canonicalUrl": {
"type": "string"
},
"measuredAt": {
"description": "ISO instant of the report.",
"type": "string"
},
"name": {
"type": "string"
},
"pctOfNormal": {
"description": "SWE as a percent of the station's 1991–2020 median for today's date in the water year.",
"type": "number"
},
"rank": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"slug": {
"type": "string"
},
"state": {
"type": "string"
},
"station": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
{
"type": "null"
}
]
},
"sweIn": {
"description": "Snow water equivalent at the station, inches.",
"type": "number"
}
},
"required": [
"rank",
"slug",
"name",
"canonicalUrl",
"state",
"pctOfNormal",
"sweIn",
"station",
"measuredAt"
],
"type": "object"
},
"type": "array"
},
"rule": {
"description": "The publishable-value rule, in words.",
"type": "string"
},
"sentence": {
"description": "The dated, quotable summary sentence.",
"type": "string"
},
"stationFedCount": {
"description": "Resorts whose latest report is a SNOTEL reading (the pool).",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"totalMatching": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
}
},
"required": [
"asOf",
"phase",
"sentence",
"rule",
"filters",
"stationFedCount",
"count",
"totalMatching",
"results",
"pageUrl",
"generatedAt"
],
"type": "object"
}
},
{
"description": "The resort's webcams as links: PeakCam page URL, the operator's stream or page URL, a still-image URL when one exists, and health (live / down / unchecked, from PeakCam's probe, not proof of a live broadcast). Frames are never returned inline.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"slug": {
"description": "PeakCam resort slug, lowercase kebab-case, e.g. `breckenridge` or `ski-portillo`. Get it from search_resorts.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_resort_cams",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"attribution": {
"type": "string"
},
"cams": {
"items": {
"additionalProperties": false,
"properties": {
"capturedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "When `stillUrl` was captured by PeakCam. Null for operator-published stills, whose age PeakCam does not know."
},
"credit": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Attribution line to show with the frame. Null means credit the resort."
},
"elevation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Operator-stated elevation label as published, e.g. `11,000 ft`."
},
"embedType": {
"enum": [
"youtube",
"iframe",
"image",
"link"
],
"type": "string"
},
"id": {
"description": "Stable cam id (UUID).",
"type": "string"
},
"kind": {
"anyOf": [
{
"enum": [
"summit",
"mid",
"base",
"snow-stake",
"village",
"approach"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "What the cam looks at. Null when not classified."
},
"lastCheckedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"live": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "True when the last health check succeeded, false when the feed is failing or auto-disabled, null when PeakCam has never checked it. Health, not proof of a live broadcast."
},
"name": {
"type": "string"
},
"pageUrl": {
"description": "The PeakCam page that plays this cam.",
"type": "string"
},
"sourceTermsUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The operator's terms governing reuse of this feed, when known."
},
"sourceUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The operator's stream or page. Attribution and rights belong to the operator."
},
"stillUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "A still image for the cam: the operator's own snapshot when it publishes one, else PeakCam's last captured frame. Null for players with no still."
},
"timelapses": {
"description": "Rendered clips, once PeakCam renders them for this cam.",
"items": {
"additionalProperties": false,
"properties": {
"frames": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
]
},
"id": {
"type": "string"
},
"renderedAt": {
"description": "ISO-8601 instant the clip was rendered.",
"type": "string"
},
"stormDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "YYYY-MM-DD of the storm a `storm` clip covers."
},
"url": {
"description": "Public MP4 URL.",
"type": "string"
},
"window": {
"description": "Which clip: `24h` (rolling day), `storm` (one storm, see `stormDate`), or another label.",
"type": "string"
}
},
"required": [
"id",
"window",
"url",
"frames",
"renderedAt",
"stormDate"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"id",
"name",
"elevation",
"live",
"lastCheckedAt",
"stillUrl",
"capturedAt",
"embedType",
"pageUrl",
"sourceUrl",
"kind",
"credit",
"sourceTermsUrl"
],
"type": "object"
},
"type": "array"
},
"canonicalUrl": {
"type": "string"
},
"license": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"updatedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"slug",
"name",
"canonicalUrl",
"cams",
"attribution",
"license",
"updatedAt"
],
"type": "object"
}
},
{
"description": "The latest snow report for one resort with provenance: new snow 24 h / 48 h, base depth, snow water equivalent, percent of normal, 7-day trend, rating, season status, plus a cam summary and the canonical PeakCam URL to cite. Sources: `snotel` = measured at a USDA NRCS SNOTEL station near the resort (station elevation, not the summit), `open_meteo` = weather-model estimate for resorts without a station.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"slug": {
"description": "PeakCam resort slug, lowercase kebab-case, e.g. `breckenridge` or `ski-portillo`. Get it from search_resorts.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_resort_conditions",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"apiUrl": {
"type": "string"
},
"attribution": {
"type": "string"
},
"cams": {
"items": {
"additionalProperties": false,
"properties": {
"capturedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "When `stillUrl` was captured by PeakCam. Null for operator-published stills, whose age PeakCam does not know."
},
"credit": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Attribution line to show with the frame. Null means credit the resort."
},
"elevation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Operator-stated elevation label as published, e.g. `11,000 ft`."
},
"embedType": {
"enum": [
"youtube",
"iframe",
"image",
"link"
],
"type": "string"
},
"id": {
"description": "Stable cam id (UUID).",
"type": "string"
},
"kind": {
"anyOf": [
{
"enum": [
"summit",
"mid",
"base",
"snow-stake",
"village",
"approach"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "What the cam looks at. Null when not classified."
},
"lastCheckedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"live": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"description": "True when the last health check succeeded, false when the feed is failing or auto-disabled, null when PeakCam has never checked it. Health, not proof of a live broadcast."
},
"name": {
"type": "string"
},
"pageUrl": {
"description": "The PeakCam page that plays this cam.",
"type": "string"
},
"sourceTermsUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The operator's terms governing reuse of this feed, when known."
},
"sourceUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The operator's stream or page. Attribution and rights belong to the operator."
},
"stillUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "A still image for the cam: the operator's own snapshot when it publishes one, else PeakCam's last captured frame. Null for players with no still."
},
"timelapses": {
"description": "Rendered clips, once PeakCam renders them for this cam.",
"items": {
"additionalProperties": false,
"properties": {
"frames": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
]
},
"id": {
"type": "string"
},
"renderedAt": {
"description": "ISO-8601 instant the clip was rendered.",
"type": "string"
},
"stormDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "YYYY-MM-DD of the storm a `storm` clip covers."
},
"url": {
"description": "Public MP4 URL.",
"type": "string"
},
"window": {
"description": "Which clip: `24h` (rolling day), `storm` (one storm, see `stormDate`), or another label.",
"type": "string"
}
},
"required": [
"id",
"window",
"url",
"frames",
"renderedAt",
"stormDate"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"id",
"name",
"elevation",
"live",
"lastCheckedAt",
"stillUrl",
"capturedAt",
"embedType",
"pageUrl",
"sourceUrl",
"kind",
"credit",
"sourceTermsUrl"
],
"type": "object"
},
"type": "array"
},
"canonicalUrl": {
"description": "The resort's PeakCam page. Cite this.",
"type": "string"
},
"forecast": {
"description": "Latest run per model and point, once stored forecasts are live.",
"items": {
"additionalProperties": false,
"properties": {
"days": {
"items": {
"additionalProperties": false,
"properties": {
"date": {
"description": "YYYY-MM-DD, local to the resort.",
"type": "string"
},
"precipProb": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "0–100."
},
"snowfallCm": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"snowfallHi": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"snowfallLo": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Low end of the spread across models / members; null for a single model."
},
"tempMax": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "°C as the models report it."
},
"tempMin": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"weatherCode": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
],
"description": "WMO weather interpretation code."
},
"windGust": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "km/h."
}
},
"required": [
"date",
"snowfallCm",
"snowfallLo",
"snowfallHi",
"tempMax",
"tempMin",
"precipProb",
"windGust",
"weatherCode"
],
"type": "object"
},
"type": "array"
},
"horizonDays": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"id": {
"type": "string"
},
"issuedAt": {
"type": "string"
},
"model": {
"description": "Model id as the provider names it, or `blend` for PeakCam's skill-weighted blend.",
"type": "string"
},
"point": {
"enum": [
"summit",
"base"
],
"type": "string"
}
},
"required": [
"id",
"point",
"model",
"issuedAt",
"horizonDays",
"days"
],
"type": "object"
},
"type": "array"
},
"forecastScores": {
"description": "Per-model verification at this resort, once computed.",
"items": {
"additionalProperties": false,
"properties": {
"biasRatio": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Sum(forecast) / sum(observed); above 1 means the model over-forecasts snow."
},
"computedAt": {
"type": "string"
},
"day1Mae": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Mean absolute error of the day-1 snowfall forecast, cm."
},
"day3Mae": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"day7Mae": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"model": {
"type": "string"
},
"periodDays": {
"description": "Trailing verification window, days.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"samples": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
]
}
},
"required": [
"model",
"periodDays",
"day1Mae",
"day3Mae",
"day7Mae",
"samples",
"biasRatio",
"computedAt"
],
"type": "object"
},
"type": "array"
},
"license": {
"description": "URL of the terms that govern reuse.",
"type": "string"
},
"location": {
"additionalProperties": false,
"properties": {
"baseElevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"country": {
"description": "ISO 3166-1 alpha-2.",
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"region": {
"type": "string"
},
"state": {
"description": "US state / CA province code, or the country name for Andes resorts.",
"type": "string"
},
"summitElevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
},
"required": [
"state",
"region",
"country",
"lat",
"lon",
"baseElevationFt",
"summitElevationFt"
],
"type": "object"
},
"measuredNow": {
"description": "Latest observation per station, once the station layer is live.",
"items": {
"additionalProperties": false,
"properties": {
"newSnowIn": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "New snow since the previous observation, inches."
},
"observedAt": {
"description": "ISO-8601 instant of the observation.",
"type": "string"
},
"snowDepthIn": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"stationId": {
"type": "string"
},
"sweIn": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"tempF": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"windMph": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
},
"required": [
"stationId",
"observedAt",
"snowDepthIn",
"sweIn",
"newSnowIn",
"tempF",
"windMph"
],
"type": "object"
},
"type": "array"
},
"name": {
"type": "string"
},
"profile": {
"additionalProperties": false,
"properties": {
"aliases": {
"description": "Other names the resort is known by, e.g. `A-Basin`.",
"items": {
"type": "string"
},
"type": "array"
},
"annualSnowfallIn": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Operator-stated average annual snowfall, inches."
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"descriptionSource": {
"anyOf": [
{
"enum": [
"operator",
"generated",
"editor"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "`operator`: the resort's own copy. `generated`: a model-written draft, labelled as such on the page. `editor`: hand-written by PeakCam."
},
"liftsTotal": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
]
},
"longestRunMi": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"passes": {
"description": "Multi-resort passes the resort is on.",
"items": {
"enum": [
"ikon",
"epic",
"mountain-collective",
"indy",
"power"
],
"type": "string"
},
"type": "array"
},
"runsTotal": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
]
},
"skiableAcres": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"trailMapUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The operator's trail map (linked, never copied)."
},
"verticalFt": {
"anyOf": [
{
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
{
"type": "null"
}
]
},
"wikidataId": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"runsTotal",
"liftsTotal",
"skiableAcres",
"verticalFt",
"annualSnowfallIn",
"longestRunMi",
"description",
"descriptionSource",
"trailMapUrl",
"wikidataId",
"aliases",
"passes"
],
"type": "object"
},
"score": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"components": {
"additionalProperties": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"date": {
"description": "YYYY-MM-DD the score is for.",
"type": "string"
},
"rating": {
"anyOf": [
{
"enum": [
"great",
"good",
"fair",
"poor"
],
"type": "string"
},
{
"type": "null"
}
]
},
"score": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"scoredBy": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Scorer version, e.g. `score-v1`."
}
},
"required": [
"date",
"score",
"rating",
"components",
"scoredBy"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "Today's 0–100 score, once the scorer is live."
},
"season": {
"additionalProperties": false,
"properties": {
"asOf": {
"description": "The YYYY-MM-DD day (US Pacific) the status was evaluated for.",
"type": "string"
},
"closingDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "YYYY-MM-DD; mainly Southern-hemisphere rows."
},
"hemisphere": {
"enum": [
"north",
"south"
],
"type": "string"
},
"openDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "YYYY-MM-DD opening date for the current season, confirmed or projected."
},
"openDateKind": {
"anyOf": [
{
"enum": [
"confirmed",
"projected"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Whether `openDate` was announced by the resort or is a third-party projection."
},
"seasonLabel": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The season the dates belong to, e.g. `2026-27`."
},
"source": {
"const": "resort_openings",
"type": "string"
},
"sourceUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Where the date was sourced from, when recorded."
},
"status": {
"description": "`open` once a resort-confirmed opening date has passed (or a Southern-hemisphere season is still inside its closing date); `closed` before a confirmed opening date or after a closing date; `unknown` when PeakCam has only a projection or no date.",
"enum": [
"open",
"closed",
"unknown"
],
"type": "string"
}
},
"required": [
"status",
"openDate",
"openDateKind",
"closingDate",
"seasonLabel",
"hemisphere",
"asOf",
"source",
"sourceUrl"
],
"type": "object"
},
"slug": {
"type": "string"
},
"snow": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"baseDepth": {
"additionalProperties": false,
"description": "Snow depth at the station or model point, inches.",
"properties": {
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO-8601 instant the report carrying this value was written."
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"additionalProperties": false,
"description": "Present only for station-sourced values.",
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
"unit": {
"enum": [
"in",
"percent"
],
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Null when not reported or suppressed as unreliable."
}
},
"required": [
"value",
"unit",
"source",
"measuredAt"
],
"type": "object"
},
"narrative": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "One-paragraph plain-language conditions summary, when the report carries one."
},
"newSnow24h": {
"additionalProperties": false,
"description": "New snow in the last 24 hours, inches.",
"properties": {
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO-8601 instant the report carrying this value was written."
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"additionalProperties": false,
"description": "Present only for station-sourced values.",
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
"unit": {
"enum": [
"in",
"percent"
],
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Null when not reported or suppressed as unreliable."
}
},
"required": [
"value",
"unit",
"source",
"measuredAt"
],
"type": "object"
},
"newSnow48h": {
"additionalProperties": false,
"description": "New snow in the last 48 hours, inches.",
"properties": {
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO-8601 instant the report carrying this value was written."
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"additionalProperties": false,
"description": "Present only for station-sourced values.",
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
"unit": {
"enum": [
"in",
"percent"
],
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Null when not reported or suppressed as unreliable."
}
},
"required": [
"value",
"unit",
"source",
"measuredAt"
],
"type": "object"
},
"outlook": {
"anyOf": [
{
"enum": [
"more_snow",
"stable",
"warming",
"melt_risk"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Derived short-term outlook from the conditions engine."
},
"pctOfNormal": {
"additionalProperties": false,
"description": "SWE as a percentage of the station's 1991–2020 median for this day of the water year. Null when there is no station, when SWE is under 2 in, or outside the 10–300 % band where the ratio is meaningful.",
"properties": {
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO-8601 instant the report carrying this value was written."
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"additionalProperties": false,
"description": "Present only for station-sourced values.",
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
"unit": {
"enum": [
"in",
"percent"
],
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Null when not reported or suppressed as unreliable."
}
},
"required": [
"value",
"unit",
"source",
"measuredAt"
],
"type": "object"
},
"rating": {
"anyOf": [
{
"enum": [
"great",
"good",
"fair",
"poor"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "PeakCam's overall conditions rating."
},
"reportedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO-8601 instant of the latest report."
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Source of the latest report as a whole (the per-field `source` values agree with it today)."
},
"swe": {
"additionalProperties": false,
"description": "Snow water equivalent, inches.",
"properties": {
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "ISO-8601 instant the report carrying this value was written."
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"additionalProperties": false,
"description": "Present only for station-sourced values.",
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
"unit": {
"enum": [
"in",
"percent"
],
"type": "string"
},
"value": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Null when not reported or suppressed as unreliable."
}
},
"required": [
"value",
"unit",
"source",
"measuredAt"
],
"type": "object"
},
"tags": {
"description": "Condition tags from the conditions engine, e.g. `powder`.",
"items": {
"type": "string"
},
"type": "array"
},
"trend7d": {
"additionalProperties": false,
"properties": {
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"additionalProperties": false,
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
"value": {
"anyOf": [
{
"enum": [
"rising",
"falling",
"stable"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Direction of snow-water-equivalent change over the last 7 days."
}
},
"required": [
"value",
"source",
"measuredAt"
],
"type": "object"
}
},
"required": [
"baseDepth",
"newSnow24h",
"newSnow48h",
"swe",
"pctOfNormal",
"trend7d",
"outlook",
"rating",
"tags",
"narrative",
"reportedAt",
"source"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "Null when the resort has never had a snow report."
},
"stations": {
"description": "Observation stations serving the resort, once the station layer is live.",
"items": {
"additionalProperties": false,
"properties": {
"distanceKm": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Great-circle distance from the resort's coordinates."
},
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"id": {
"description": "PeakCam station id (UUID).",
"type": "string"
},
"kind": {
"enum": [
"snotel",
"scan",
"nws_obs",
"metar",
"ghcn",
"bc_asws",
"eccc",
"road_cam"
],
"type": "string"
},
"lat": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"lon": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"rank": {
"description": "1 = the preferred station for its role.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"role": {
"description": "Where the station sits relative to the resort.",
"enum": [
"summit",
"mid",
"base",
"approach"
],
"type": "string"
},
"source": {
"description": "Provider, e.g. `nrcs`, `nws`, `eccc`, `udot`.",
"type": "string"
},
"sourceId": {
"description": "The provider's own identifier (SNOTEL triplet, ICAO code, GHCN id).",
"type": "string"
}
},
"required": [
"id",
"source",
"sourceId",
"name",
"kind",
"role",
"lat",
"lon",
"elevationFt",
"distanceKm",
"rank"
],
"type": "object"
},
"type": "array"
},
"updatedAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Newest instant among the snow report and cam checks/captures."
},
"websiteUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"slug",
"name",
"canonicalUrl",
"apiUrl",
"location",
"profile",
"snow",
"season",
"cams",
"websiteUrl",
"attribution",
"license",
"updatedAt"
],
"type": "object"
}
},
{
"description": "Who and where a resort is, without the snow numbers: location and elevations, website and social links, PeakCam's cam page, the SNOTEL station its numbers come from (if any), season status, cam counts, and every URL PeakCam publishes for it (page, JSON, markdown, Atom feed, state hub). Use get_resort_conditions for today's snow.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"slug": {
"description": "PeakCam resort slug, lowercase kebab-case, e.g. `breckenridge` or `ski-portillo`. Get it from search_resorts.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_resort_profile",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"camCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"camPageUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The operator's own webcam page, when PeakCam records one."
},
"canonicalUrl": {
"description": "The resort's PeakCam page. Cite this.",
"type": "string"
},
"dataSource": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Source of the latest snow report, so you know which label to use."
},
"generatedAt": {
"description": "ISO-8601 UTC instant the result was generated.",
"type": "string"
},
"liveCamCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"location": {
"additionalProperties": false,
"properties": {
"baseElevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"country": {
"description": "ISO 3166-1 alpha-2.",
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"region": {
"type": "string"
},
"state": {
"description": "Code as stored (`CO`, `BC`) or the country name for Andes resorts.",
"type": "string"
},
"stateLabel": {
"description": "Spelled out (`Colorado`, `British Columbia`, `Chile`).",
"type": "string"
},
"summitElevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
},
"required": [
"region",
"state",
"stateLabel",
"country",
"lat",
"lon",
"baseElevationFt",
"summitElevationFt"
],
"type": "object"
},
"name": {
"type": "string"
},
"season": {
"additionalProperties": false,
"properties": {
"asOf": {
"description": "The YYYY-MM-DD day (US Pacific) the status was evaluated for.",
"type": "string"
},
"closingDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "YYYY-MM-DD; mainly Southern-hemisphere rows."
},
"hemisphere": {
"enum": [
"north",
"south"
],
"type": "string"
},
"openDate": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "YYYY-MM-DD opening date for the current season, confirmed or projected."
},
"openDateKind": {
"anyOf": [
{
"enum": [
"confirmed",
"projected"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "Whether `openDate` was announced by the resort or is a third-party projection."
},
"seasonLabel": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The season the dates belong to, e.g. `2026-27`."
},
"source": {
"const": "resort_openings",
"type": "string"
},
"sourceUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Where the date was sourced from, when recorded."
},
"status": {
"description": "`open` once a resort-confirmed opening date has passed (or a Southern-hemisphere season is still inside its closing date); `closed` before a confirmed opening date or after a closing date; `unknown` when PeakCam has only a projection or no date.",
"enum": [
"open",
"closed",
"unknown"
],
"type": "string"
}
},
"required": [
"status",
"openDate",
"openDateKind",
"closingDate",
"seasonLabel",
"hemisphere",
"asOf",
"source",
"sourceUrl"
],
"type": "object"
},
"slug": {
"type": "string"
},
"socials": {
"additionalProperties": false,
"properties": {
"facebook": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"instagram": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"x": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"x",
"facebook",
"instagram"
],
"type": "object"
},
"station": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "The NRCS station PeakCam reads for this resort; null means model estimates."
},
"urls": {
"additionalProperties": false,
"properties": {
"api": {
"type": "string"
},
"cams": {
"description": "JSON cam list.",
"type": "string"
},
"markdown": {
"description": "The page as markdown (also the MCP resource peakcam://resorts/{slug}).",
"type": "string"
},
"powderFeed": {
"description": "Per-resort Atom feed of powder events.",
"type": "string"
},
"stateHub": {
"description": "PeakCam's webcam hub for the resort's state, province or country.",
"type": "string"
}
},
"required": [
"api",
"markdown",
"cams",
"powderFeed",
"stateHub"
],
"type": "object"
},
"websiteUrl": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The operator's site."
}
},
"required": [
"slug",
"name",
"canonicalUrl",
"urls",
"location",
"websiteUrl",
"camPageUrl",
"socials",
"station",
"dataSource",
"season",
"camCount",
"liveCamCount",
"generatedAt"
],
"type": "object"
}
},
{
"description": "Daily snow depth, snow water equivalent, precipitation accumulation and temperatures for the last 1–30 days at the resort's station (SNOTEL where there is one, Open-Meteo model otherwise), newest first. Use it for \"how has the base changed this week\" questions.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"days": {
"default": 14,
"description": "Days back, 1–30.",
"maximum": 30,
"minimum": 1,
"type": "integer"
},
"slug": {
"description": "PeakCam resort slug, lowercase kebab-case, e.g. `breckenridge` or `ski-portillo`. Get it from search_resorts.",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_snow_history",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"canonicalUrl": {
"type": "string"
},
"count": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"days": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"generatedAt": {
"description": "ISO-8601 UTC instant the result was generated.",
"type": "string"
},
"name": {
"type": "string"
},
"rows": {
"items": {
"additionalProperties": false,
"properties": {
"date": {
"description": "YYYY-MM-DD, station-local day.",
"type": "string"
},
"precipAccumIn": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Water-year precipitation accumulation, inches."
},
"qcFlag": {
"description": "`valid`, `suspect`, `missing` or `corrected` from PeakCam's quality control.",
"type": "string"
},
"snowDepthIn": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"sweIn": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Snow water equivalent, inches."
},
"tempMaxF": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"tempMinF": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
},
"required": [
"date",
"snowDepthIn",
"sweIn",
"precipAccumIn",
"tempMaxF",
"tempMinF",
"qcFlag"
],
"type": "object"
},
"type": "array"
},
"slug": {
"type": "string"
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"station": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"elevationFt": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "Station elevation in feet. Measurements describe this elevation, not the resort's summit."
},
"id": {
"description": "NRCS station triplet, e.g. `602:CO:SNTL`.",
"type": "string"
},
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "NRCS station name."
}
},
"required": [
"id",
"name",
"elevationFt"
],
"type": "object"
},
{
"type": "null"
}
]
}
},
"required": [
"slug",
"name",
"canonicalUrl",
"source",
"station",
"days",
"count",
"rows",
"generatedAt"
],
"type": "object"
}
},
{
"description": "Every state, province and country PeakCam covers, with resort, reporting, measured (SNOTEL) and cam counts and the hub page URL. Call it to learn the valid `state` values for find_powder, get_opening_dates and get_percent_of_normal, or to answer \"where does PeakCam have data\".",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "list_regions",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"countries": {
"items": {
"additionalProperties": false,
"properties": {
"country": {
"type": "string"
},
"resorts": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
}
},
"required": [
"country",
"resorts"
],
"type": "object"
},
"type": "array"
},
"generatedAt": {
"description": "ISO-8601 UTC instant the result was generated.",
"type": "string"
},
"regions": {
"description": "Most resorts first.",
"items": {
"additionalProperties": false,
"properties": {
"cams": {
"description": "Active cams.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"country": {
"type": "string"
},
"hubUrl": {
"description": "PeakCam's webcam hub page for the region.",
"type": "string"
},
"label": {
"type": "string"
},
"liveCams": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"measured": {
"description": "Resorts whose latest report is a SNOTEL station reading.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"reporting": {
"description": "Resorts with a snow report.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"resorts": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"state": {
"description": "The value to pass as `state` to other tools.",
"type": "string"
}
},
"required": [
"state",
"label",
"country",
"resorts",
"reporting",
"measured",
"cams",
"liveCams",
"hubUrl"
],
"type": "object"
},
"type": "array"
},
"totalResorts": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
}
},
"required": [
"totalResorts",
"countries",
"regions",
"generatedAt"
],
"type": "object"
}
},
{
"description": "Find PeakCam resorts by name (or part of one, or a region) and get their slugs with a one-line snow summary each. Call this first when the user names a resort; then use the slug with the other tools. Covers about 150 resorts in the US, Canada, Chile and Argentina.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"country": {
"description": "ISO 3166-1 alpha-2 country code: `US`, `CA`, `CL` or `AR`.",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"limit": {
"default": 10,
"description": "Rows to return, 1–20.",
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Resort name or fragment, e.g. `vail`, `big sky`, `portillo`, `tahoe`. Also matches region names.",
"maxLength": 80,
"minLength": 1,
"type": "string"
},
"state": {
"description": "US state or Canadian province code (`CO`, `UT`, `BC`), or for the Andes the country name PeakCam lists (`Chile`, `Argentina`). Case-insensitive.",
"maxLength": 40,
"minLength": 2,
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_resorts",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"count": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"generatedAt": {
"description": "ISO-8601 UTC instant the result was generated.",
"type": "string"
},
"query": {
"type": "string"
},
"resorts": {
"items": {
"additionalProperties": false,
"properties": {
"apiUrl": {
"type": "string"
},
"camCount": {
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"canonicalUrl": {
"type": "string"
},
"liveCamCount": {
"description": "Cams whose last health check passed.",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"type": "integer"
},
"location": {
"additionalProperties": false,
"properties": {
"country": {
"description": "ISO 3166-1 alpha-2.",
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"region": {
"type": "string"
},
"state": {
"description": "US state / CA province code, or the country name for Andes resorts.",
"type": "string"
}
},
"required": [
"state",
"region",
"country",
"lat",
"lon"
],
"type": "object"
},
"name": {
"type": "string"
},
"rating": {
"anyOf": [
{
"enum": [
"great",
"good",
"fair",
"poor"
],
"type": "string"
},
{
"type": "null"
}
]
},
"seasonStatus": {
"enum": [
"open",
"closed",
"unknown"
],
"type": "string"
},
"slug": {
"type": "string"
},
"snow": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"baseDepth": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"measuredAt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"newSnow24h": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"newSnow48h": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"source": {
"anyOf": [
{
"enum": [
"snotel",
"open_meteo",
"pipeline",
"manual",
"resort"
],
"type": "string"
},
{
"type": "null"
}
]
},
"unit": {
"const": "in",
"type": "string"
}
},
"required": [
"baseDepth",
"newSnow24h",
"newSnow48h",
"unit",
"source",
"measuredAt"
],
"type": "object"
},
{
"type": "null"
}
]
}
},
"required": [
"slug",
"name",
"canonicalUrl",
"apiUrl",
"location",
"snow",
"rating",
"seasonStatus",
"camCount",
"liveCamCount"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"query",
"count",
"resorts",
"generatedAt"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:bac245c6585913f4e6dbb0975f2ea14221eee1267d46d1c0d6627271ea74962e | sha256sum