Documentation for Avalanche Canada's public APIs
To build a complete forecast interface, you typically need to use three endpoints together: fetch Areas to display forecast area polygons on a map, use Metadata to colour the polygons and provide alt text, then fetch detailed Products for forecast display pages.
Retrieves all forecast areas for the specified language as GeoJSON features.
| Field | Type | Description |
|---|---|---|
| features[] | array | Array of GeoJSON feature objects representing forecast areas |
| features[].id | string | Unique identifier for the forecast area |
| features[].type | string | GeoJSON feature type (always "Feature") |
| features[].bbox | array | Bounding box coordinates [minLon, minLat, maxLon, maxLat] |
| features[].geometry | object | GeoJSON geometry object defining the area boundaries |
| features[].geometry.type | string | Geometry type (e.g., "MultiPolygon") |
| features[].geometry.coordinates | array | Polygon coordinate arrays defining area boundaries |
| features[].properties | object | Properties object containing additional area data |
| features[].properties.centroid | array | Center point coordinates [longitude, latitude] |
| features[].properties.id | string | Area identifier (matches feature id) |
| type | string | GeoJSON collection type (always "FeatureCollection") |
Retrieves metadata information for forecasts in the specified language.
| Field | Type | Description |
|---|---|---|
| product.slug | string | URL-friendly slug for the forecast product |
| product.type | string | Type of forecast (e.g., "avalancheforecast") |
| product.title | string | Title of the forecast product |
| product.id | string | Unique identifier for the forecast product |
| product.reportId | string | Unique identifier for the forecast report |
| area.id | string | Unique identifier for the forecast area |
| area.name | string | Name of the forecast area |
| area.bbox | array | Bounding box coordinates [minLon, minLat, maxLon, maxLat] |
| icons[] | array | Array of rating icons for different time periods |
| icons[].type | string | Type of icon (e.g., "ratings") |
| icons[].from | string | Start time for this rating period (ISO date) |
| icons[].to | string | End time for this rating period (ISO date) |
| icons[].ratings | object | Danger ratings for alpine, treeline, and below treeline |
| icons[].ratings.alp | string | Alpine danger rating |
| icons[].ratings.tln | string | Treeline danger rating |
| icons[].ratings.btl | string | Below treeline danger rating |
| icons[].graphic | object | Graphic representation of the ratings |
| icons[].graphic.id | string | Identifier for the rating graphic |
| icons[].graphic.url | string | URL to the rating graphic SVG |
| icons[].graphic.alt | string | Alt text for the graphic |
| centroid | object | Geographic center point of the forecast area |
| centroid.longitude | number | Longitude of the area centroid |
| centroid.latitude | number | Latitude of the area centroid |
| url | string | Direct URL to the forecast page |
| owner.value | string | Owner organization identifier |
| owner.display | string | Display name of owner organization |
| owner.isExternal | boolean | Whether owner is external organization |
| owner.url | string | URL or name of owner organization |
| highestDanger | object | Highest danger rating for this forecast |
| highestDanger.value | string | Value of the highest danger rating |
| highestDanger.display | string | Display text for the highest danger rating |
| highestDanger.colour | string | Color associated with the danger rating |
Retrieves all forecast products for the specified language.
| Field | Type | Description |
|---|---|---|
| id | string | Unique identifier for the forecast product |
| slug | string | URL-friendly slug for the forecast |
| url | string | Direct URL to the forecast page |
| type | string | Type of forecast (e.g., "avalancheforecast") |
| area.id | string | Unique identifier for the forecast area |
| area.name | string | Name of the forecast area |
| area.bbox | array|null | Bounding box coordinates or null if not available |
| report.id | string | Unique identifier for the forecast report |
| report.forecaster | string | Name of the forecasting organization |
| report.dateIssued | string | ISO date when the forecast was issued |
| report.validUntil | string | ISO date when the forecast expires |
| report.timezone | string | Timezone for the forecast dates |
| report.title | string | Title of the forecast area |
| report.highlights | string | HTML content with forecast highlights |
| report.confidence.rating | object | Confidence rating for the forecast |
| report.summaries[] | array | Array of forecast summary sections |
| report.summaries[].type | object | Type of summary (avalanche, weather, etc.) |
| report.summaries[].content | string | HTML content of the summary |
| report.dangerRatings[] | array | Daily danger ratings for alpine, treeline, and below treeline |
| report.dangerRatings[].date | object | Date information for the rating |
| report.dangerRatings[].ratings | object | Danger ratings by elevation zone |
| report.problems[] | array | Array of avalanche problems |
| report.terrainAndTravelAdvice[] | array | Travel and terrain advice |
| report.isFullTranslation | boolean | Whether forecast is fully translated |
| version | number | Version number of the forecast |
| owner.value | string | Owner organization identifier |
| owner.display | string | Display name of owner organization |
| owner.isExternal | boolean | Whether owner is external organization |
| owner.url | string | URL of owner organization |
| notifications[] | array | Array of notification messages |
| notifications[].type | string | Type of notification (info, warning, etc.) |
| notifications[].content | string | HTML content of notification |
| media.images[] | array | Array of associated images |
Retrieves a specific forecast product by its ID for the specified language.
| Field | Type | Description |
|---|---|---|
| id | string | Unique identifier for the forecast product |
| slug | string | URL-friendly slug for the forecast |
| url | string | Direct URL to the forecast page |
| type | string | Type of forecast (e.g., "avalancheforecast") |
| area.id | string | Unique identifier for the forecast area |
| area.name | string | Name of the forecast area |
| area.bbox | array|null | Bounding box coordinates or null if not available |
| report.id | string | Unique identifier for the forecast report |
| report.forecaster | string | Name of the forecasting organization |
| report.dateIssued | string | ISO date when the forecast was issued |
| report.validUntil | string | ISO date when the forecast expires |
| report.timezone | string | Timezone for the forecast dates |
| report.title | string | Title of the forecast area |
| report.highlights | string | HTML content with forecast highlights |
| report.confidence.rating | object | Confidence rating for the forecast |
| report.summaries[] | array | Array of forecast summary sections |
| report.summaries[].type | object | Type of summary (avalanche, weather, etc.) |
| report.summaries[].content | string | HTML content of the summary |
| report.dangerRatings[] | array | Daily danger ratings for alpine, treeline, and below treeline |
| report.dangerRatings[].date | object | Date information for the rating |
| report.dangerRatings[].ratings | object | Danger ratings by elevation zone |
| report.problems | array|null | Array of avalanche problems or null |
| report.terrainAndTravelAdvice | array|null | Travel and terrain advice or null |
| report.message | string|null | Additional message or null |
| report.season | string|null | Season information or null |
| report.comment | string|null | Additional comments or null |
| report.isFullTranslation | boolean | Whether forecast is fully translated |
| version | number | Version number of the forecast |
| owner.value | string | Owner organization identifier |
| owner.display | string | Display name of owner organization |
| owner.isExternal | boolean | Whether owner is external organization |
| owner.url | string | URL of owner organization |
| notifications[] | array | Array of notification messages |
| notifications[].type | string | Type of notification (info, warning, etc.) |
| notifications[].content | string | HTML content of notification |
| media.images | array|null | Array of associated images or null |
Retrieves forecast product for a specific geographic point using latitude and longitude coordinates.
| Field | Type | Description |
|---|---|---|
| lat | number | Query parameter: Latitude coordinate of the point |
| long | number | Query parameter: Longitude coordinate of the point |
| id | string | Unique identifier for the forecast product |
| slug | string | URL-friendly slug for the forecast |
| url | string | Direct URL to the forecast page |
| type | string | Type of forecast (e.g., "avalancheforecast") |
| area.id | string | Unique identifier for the forecast area |
| area.name | string | Name of the forecast area |
| area.bbox | array|null | Bounding box coordinates or null if not available |
| report.id | string | Unique identifier for the forecast report |
| report.forecaster | string | Name of the forecasting organization |
| report.dateIssued | string | ISO date when the forecast was issued |
| report.validUntil | string | ISO date when the forecast expires |
| report.timezone | string | Timezone for the forecast dates |
| report.title | string | Title of the forecast area |
| report.highlights | string | HTML content with forecast highlights |
| report.confidence.rating | object | Confidence rating for the forecast |
| report.summaries[] | array | Array of forecast summary sections |
| report.summaries[].type | object | Type of summary (avalanche, weather, etc.) |
| report.summaries[].content | string | HTML content of the summary |
| report.dangerRatings[] | array | Daily danger ratings for alpine, treeline, and below treeline |
| report.dangerRatings[].date | object | Date information for the rating |
| report.dangerRatings[].ratings | object | Danger ratings by elevation zone |
| report.problems[] | array | Array of avalanche problems |
| report.terrainAndTravelAdvice[] | array | Travel and terrain advice |
| report.isFullTranslation | boolean | Whether forecast is fully translated |
| version | number | Version number of the forecast |
| owner.value | string | Owner organization identifier |
| owner.display | string | Display name of owner organization |
| owner.isExternal | boolean | Whether owner is external organization |
| owner.url | string | URL of owner organization |
| notifications[] | array | Array of notification messages |
| notifications[].type | string | Type of notification (info, warning, etc.) |
| notifications[].content | string | HTML content of notification |
| media.images[] | array | Array of associated images |
Retrieves all available weather stations.
| Field | Type | Description |
|---|---|---|
| stationId | number | Unique identifier for the weather station |
| name | string | Name of the weather station |
| latitude | number | Latitude coordinate of the station location |
| longitude | number | Longitude coordinate of the station location |
| elevation | number | Elevation of the station in meters |
| timezone | string | Timezone for the station |
| externalId | string | External identifier for the station from the data source |
| source | string | Source organization or system providing the station data |
Retrieves weather measurements for a specific weather station by station ID. Optional fromDate and toDate query parameters can be used to filter measurements by date range. If no dates are provided, returns the last week's worth of data.
| Field | Type | Description |
|---|---|---|
| stationId | number | Path parameter: Unique identifier for the weather station |
| fromDate | string | Query parameter (optional): Start date for filtering measurements in ISO 8601 format (e.g., 2025-12-12T17:00:00Z). If not provided, defaults to one week ago. |
| toDate | string | Query parameter (optional): End date for filtering measurements in ISO 8601 format (e.g., 2025-12-14T17:00:00Z). If not provided, defaults to now. |
| measurements[] | array | Array of weather measurements |
| measurements[].stationId | number | Station identifier (matches the requested station ID) |
| measurements[].measurementDateTime | string | ISO date and time of the measurement |
| measurements[].snowHeight | number | Snow height in cm |
| measurements[].airTempAvg | number | Average air temperature in degrees Celsius |
| measurements[].airTempMax | number | Maximum air temperature in degrees Celsius |
| measurements[].airTempMin | number | Minimum air temperature in degrees Celsius |
| measurements[].windSpeedAvg | number | Average wind speed in km/h |
| measurements[].windDirAvg | number | Average wind direction in degrees |
| measurements[].windDirCompass | string | Average wind direction as compass direction (N, NE, E, SE, S, SW, W, NW) |
| measurements[].windSpeedGust | number | Wind gust speed in km/h |
| measurements[].windDirGust | number | Wind gust direction in degrees |
| measurements[].windDirGustCompass | string | Wind gust direction as compass direction (N, NE, E, SE, S, SW, W, NW) |
| measurements[].relativeHumidity | number | Relative humidity percentage |
| measurements[].hourlySnow | number|null | Hourly snowfall in cm. May not be present in the JSON response if unavailable. |
| measurements[].hourlyPrecip | number|null | Hourly precipitation in mm. May not be present in the JSON response if unavailable. |
| measurements[].totalPrecip | number|null | Total precipitation in mm. May not be present in the JSON response if unavailable. |
| measurements[].stationPressure | number|null | Station pressure in hPa. May not be present in the JSON response if unavailable. |
| measurements[].snowTemp | number|null | Snow temperature in degrees Celsius. May not be present in the JSON response if unavailable. |
| measurements[].newSnow | number|null | New snow in cm. May not be present in the JSON response if unavailable. |
| measurements[].snowWaterEquivalent | number|null | Snow water equivalent in mm. May not be present in the JSON response if unavailable. |