SnoCountry Conditions JSON API Documentation
Get Started - API Key: how to get snow reports
In order to retrieve data a developer must purchase a key from SnoCountry. To get a key please contact Andrew Davis @ 603-443-8823.
Sample apiKey
You can utilize the key (SnoCountry.example) to view the SnoCountry JSON API in action and or facilitate development. The key (SnoCountry.example), combined with other valid request parameters, returns up to 3 resorts.
http://feeds.snocountry.net/getSnowReport.php?apiKey=SnoCountry.example&states=vt link
General Guidelines
In general snow conditions are updated throughout the day, as snow reports come in from the ski areas. With that in mind, we recommend developers follow these guidelines when making requests:
Developers who will cache results in a database.
- Single ski area condition requests have no limitation. Documentation can be seen here.
- Single State condition requests have no limitation. Documentation can be seen here.
- Region requests should not be made every few seconds. We recommend if you make a region request, e.g. USA,Europe,Canada, the subsequent region request should be 10 - 15 mins later. Documentation can be seen here.
Developers who will request conditions directly from their app. e.g.: mobile apps.
API End points
getSnowReport: Retrieves daily dynamic conditions for ski resorts. This will be the normal request for most users.
http://feeds.snocountry.net/getSnowReport.php?apiKey=SnoCountry.example&states=vt link
getResortList: Retrieves list of resorts (id, name, state, country,region,resortType) in HTML or JSON format
JSON Sample: http://feeds.snocountry.net/getResortList.php?apiKey=SnoCountry.example&states=vt&output=json link
HTML Sample: http://feeds.snocountry.net/getResortList.php?apiKey=SnoCountry.example&states=vt link
Request Parameters
API Key
http://feeds.snocountry.net/getSnowReport.php?apiKey=yourKey&states=vt
Sample API Key: http://feeds.snocountry.net/getSnowReport.php?apiKey=SnoCountry.example&states=vt link
Regions: The developer can pass one region or multiple regions separated by a comma.
Note: Please refrain from requesting all the regions in one request. SnoCountry recommends the developer request "usa" in one request, canada in another, europe in yet another.
http://feeds.snocountry.net/getSnowReport.php?apiKey=SnoCountry.example®ions=rockies Rockies
Valid Regions:
United States regions => {states in that region}: northwest : {AK, ID, OR, WA} southwest : {AZ, CA, NV} rockies : {CO, MT, NM, UT, WY} midwest : {IA, IL, IN, MI, MN, MO, ND, OH, SD, WI} northeast : {CT, MA, ME, NH, NJ, NY, PA, RI, VT} southeast : {AL, GA, MD, NC, TN, VA, WV} usa : {above regions} Other Regions => {countries in that region}: canada : {AB, BC, LB, MB, NF, NS, ON, QC, SK} [LB = Labrador, NF = Newfoundland] europe : {AND, AUT, CHE, CZE , (DEU or GER) , ESP, FIN, FRA, GBR, ITA, LIE, NOR, POL, SVK SWE } southern_hemisphere: {ARG, AUS, CHI, NZL}
States: The developer can pass one state or multiple states separated by a comma
Valid States:
http://feeds.snocountry.net/getSnowReport.php?apiKey=SnoCountry.example&states=co Colorado
United States => {states in that region}: northwest : {AK, ID, OR, WA} southwest : {AZ, CA, NV} rockies : {CO, MT, NM, UT, WY} midwest : {IA, IL, IN, MI, MN, MO, ND, OH, SD, WI} northeast : {CT, MA, ME, NH, NJ, NY, PA, RI, VT} southeast : {AL, GA, MD, NC, TN, VA, WV} Non United States: (Province or Country Code can be used as state) canada : {AB, BC, LB, MB, NF, NS, ON, QC, SK} [LB = Labrador, NF = Newfoundland] europe : {AND, AUT, (CHE or SUI), CZE , (DEU or GER) , ESP, FRA, GBR, ITA, LIE, NOR, POL, SVK SWE } southern_hemisphere: {ARG, AUS, CHI, NZL}
Resort Ids: The developer can pass one id or multiple ids separated by a comma. To get resort ids utilize getResortList endpoint.
http://feeds.snocountry.net/getSnowReport.php?apiKey=SnoCountry.example&ids=505001 Angel Fire
Top 20 snowfall: To retrieve the resorts with the highest amount of snowfall in newSnowMin/newSnowMax add the parameter action=top20.
http://feeds.snocountry.net/getSnowReport.php?apiKey=SnoCountry.example®ions=rockies&action=top20 Top 20 in the Rockies
Fields returned
"id" :(numeric) Unique SnoCountry identifier for resort "resortName" :(text) Name of Resort "state" :(text) Two letter state abbr. "reportDateTime" :(text) Date/Time of Report Format: YYYY-MM-DD HH:ii:ss e.g.: "2010-04-04 11:29:00" "resortType":(text) Possible Values: "NA_Alpine" : North American Alpine "XC" : Cross Country "Intl" : International "newSnowMin" :(numeric) Minimum new snow in last 24 hours, unit=inches "newSnowMax" :(numeric) Maximum new snow in last 24 hours, unit=inches "avgBaseDepthMin" :(numeric) Minimum Average Base Depth , unit=inches "avgBaseDepthMax" :(numeric) Maximum Average Base Depth , unit=inches
Notes:
- The result will be up to 20 resorts, based on snow reported. Hence the # of resorts returned will range from 0 - 20.
- If no resortType specified (Alpine or XC), see above, default will be All. Hence Top20 will consist of Alpine & XC resorts.
- The parameters regions & states still apply. Hence you can limit the Top 20 snowfall to a state or region. If no state or region is specified, it will be for the entire WORLD.
Levels and Field definitions
Green Circle fields:
"id" :(numeric) Unique SnoCountry identifier for resort "resortName" :(text) Name of Resort "state" :(text) Two letter state abbr. "country" :(text) Three letter country abbreviation (ISO 3166-1 alpha-3) "reportDateTime" :(text) Date/Time of Report Format: YYYY-MM-DD HH:ii:ss e.g.: "2010-04-04 11:29:00" "resortStatus" :(numeric) Status of ski area Possible values follow: value | Meaning (OperatingStatus value) | Further explanation ---------------------------------------------------------------- 1 : "Open" => Resort is open 2 : "ReOpen MM/dd or TBA" => Resort is open on certain days (dd : day, MM: Month) 3 : "No Recent/Current Info" => Resort is open but no updates within 3 days 4 : "Operating no details" => Resort can be open/closed no information available 5 : "Plan To Open MM/dd" => (dd : day, MM: Month) 6 : "Opening Soon for Snow Sports" => Resort is closed, Used when Season about to start but no Plan to Open date available. 7 : "Closed" => Resort is closed 8 : "Summer" => Resort is open for summer operations (mountain biking, lift rides...) "newSnowMin" :(numeric) Minimum new snow in last 24 hours, unit=inches "newSnowMax" :(numeric) Maximum new snow in last 24 hours, unit=inches "avgBaseDepthMin" :(numeric) Minimum Average Base Depth , unit=inches "avgBaseDepthMax" :(numeric) Maximum Average Base Depth , unit=inches "openDownHillTrails":(numeric) "openDownHillLifts" :(numeric) "openDownHillMiles" :(numeric) "openDownHillAcres" :(numeric) "openDownHillPercent":(numeric) "maxOpenDownHillTrails":(numeric) Max Open Down Hill Trails "maxOpenDownHillLifts" :(numeric) Max Open Down Hill Lifts "maxOpenDownHillAcres" :(numeric) Max Open Down Hill Acres "maxOpenDownHillMiles" :(numeric) Max Open Down Hill Miles "weekdayHours" :(text) e.g. : "M-F: 9a-5p" "weekendHours" :(text) e.g. : "Sat-Sun: 9a-5p" "snowComments" :(text) e.g. : "18 inches past 72 hours" "snowLast48Hours" :(text) new snow in last 48 hours, unit=inches Field can be a range (13-15) or numeric value (10) "Parks-n-Pipes" :(text) e.g.: "Halfpipe Open, Last Cut: mm/dd/yyyy ..." "Parks-n-Pipes-Available" :(text) "Yes" or "No" "nightSkiing" :(text) Values: Yes/No/"":blank "operatingStatus" :(text) Possible values: "" : Blank - resort is open. primarySurfaceCondition will have value "Closed for Snow Sports" : Closed for season. "Plan To Open mm/dd" : Plan to Open "Reopen mm/dd" : ReOpen Date "No Recent Info" : No Recent Information on Resort "Operating No Details" : Resort Operating - No Details available "Open for Summer Fun" : Summer activities at resort. "primarySurfaceCondition" :(text) Possible values: 'Corn Snow', 'Frozen Granular', 'Hard Pack', 'Icy', 'Loose Granular', 'Machine Groomed', 'Packed Powder', 'Powder', 'Spring Conditions', 'Variable Conditions', 'Wet Granular', 'Wet Packed', 'Wet Snow', 'Windblown', null "resortType":(text) Possible Values: "NA_Alpine" : North American Alpine "XC" : Cross Country "Intl" : International "covidUpdatedOn" : (date) Date Covid information updated "covidMaskRequired" : (bool) 1 = yes, 0 - no "covidSocialDistancingRequired" : (bool) 1 = yes, 0 - no "covidSanitizationStationsAvailable" : (bool) 1 = yes, 0 - no "covidPassProtection" : (bool) 1 = yes, 0 - no "covidReservationsRequired" : (bool) 1 = yes, 0 - no "covidPrePurchaseDayLiftTicketsRecommended" : (bool) 1 = yes, 0 - no "resortCovidPage" : (text) url to Resort Covid page "covidPassProtectionPage" : (text) url to Resort Pass protection page if applicable "covidReservationsRequiredPage" : (text) url to Resort Reservations page if applicable
Double Black Diamond fields: Include Green Circle fields plus the following fields.
"seasonTotal" :(text) Natural Snowfall Season Total in inches "nightGroomingPerc" :(numeric) Percentage of Trails where Grooming performed. "nightGroomingNumber" :(numeric) Number of Trails where Grooming performed. "snowMakingPerc" :(numeric) Percentage of Trails where SnowMaking performed. "snowMakingNumber" :(numeric) Number of Trails where SnowMaking performed. "latitude" :(text) Latitude e.g.: 44.05376 "longitude" :(text) Longitude e.g.: -71.629314 "xcSkiingTotalKM_Open":(numeric) Number of Total Cross Country KMs open /* Revision change 0.4 added xc field */ "xcSkiingKM" :(numeric) Number of Cross Country Classic KM open "xcSkiingSkatingKM" :(numeric) Number of Cross Country Skating KM open "xcSkiingTrails" :(numeric) Number of Cross Country Trails open /* Revision change 0.3 added xc field */ "maxXCSkiTrails" :(numeric) Max Number of Cross Country Trails open /* Revision change 0.3 added xc field */ "lastSnowFallDate" :(text) Last Snow Fall Date e.g: "Jan 03, 2020" "lastSnowFallAmount" :(text) Last Snow Fall Amount (unit:inches) e.g: "18" or "10 - 13" "prevSnowFallDate" :(text) Previous Snow Fall Date e.g: "Jan 01, 2020" "prevSnowFallAmount" :(text) Previous Snow Fall Amount (unit:inches) e.g: "18" or "10 - 13" "Roads" :(text) Road conditions "Tubing" :(text - Yes/No/"" : blank) Tubing open "tubingHours" :(text) Tubing Hours "tubingLanes" :(numeric) Number of Tubing Lanes "forecastBaseTemp" :(numeric) Noon Forecast Base Temperature - units Fahrenheit "forecastTopTemp" :(numeric) Noon Forecast Summit Temperature - units Fahrenheit "resortAddress" :(text) Resorts address, Physical address if available, otherwise mailing address utilized. "forecastWeather" :(text) Noon Weather Forecast Possible values: 'Cloudy', 'Clear', 'Clearing', 'Fair', 'Increasing Clouds', 'Mostly Cloudy', 'Mostly Clear', 'Mixed Cloud/Sun', 'Mostly Sunny', 'Overcast', 'Partly Cloudy', 'Partly Sunny', 'Sunny', 'Drizzle', 'Flurries', 'Fog', 'Freezing Rain', 'Heavy Snow', 'Light Rain', 'Light Snow', 'Mixed Precip', 'Rain', 'Rain Showers', 'Sleet', 'Snow', 'Snow Showers', 'Snow Squalls' "webSiteLink" :(text) URL to Resorts website "webCamLink" :(text) URL to Resorts Cam Link or Photo gallery (if exists) "tnTrailMapURL" :(text) URL to thumbnail Trail Map (Dimensions width: 130 px, height : varies) "lgTrailMapURL" :(text) URL to Large Trail Map, (Dimensions width & height : varies). "logo" :(text) URL to Resort Logo "highLiftElevation" :(text) Highest Lift Elevation e.g.: "3050 ft/930 m" "lowBaseElevation" :(text) Base Elevation e.g.: "950 ft/290 m" "verticalDrop" :(text) Total Vertical Drop "longestTrail" :(text) Name of longest trail "longestTrailLength" :(text) Length of longest trail e.g.: 2.5 miles "numberBeginnerTrails" :(text) Number of Beginner Trails "numberIntermediateTrails" :(text) Number of Intermediate Trails "numberAdvancedTrails" :(text) Number of Advanced Trails "numberExpertTrails" :(text) Number of Expert Trails "generalEmail" :(text) Resorts general email "snowPhone" :(text) Resorts Phone # for up to date conditions "reservationPhone" :(text) Resorts reservation phone "resortTwitter" :(text) URL to Resorts Twitter page "resortFacebook" :(text) URL to Resorts Facebook page "resortYouTube" :(text) URL to Resorts Youtube page "resortPhotos" :(text) URL to Resorts Photo page "weatherToday_Temperature_Low" :(numeric) Fahrenheit "weatherToday_Temperature_High" :(numeric) Fahrenheit "weatherToday_Condition" :(text) Weather Condition "weatherToday_WindSpeed" :(numeric) Avg. Wind Speed in mph "weatherToday_WindDirection" :(text) Wind Direction { N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW } "weatherToday_Sunrise" :(text) Local time of sunrise "weatherToday_Sunset" :(text) Local time of sunset "weatherTomorrow_Temperature_Low" :(numeric) Fahrenheit "weatherTomorrow_Temperature_High" :(numeric) Fahrenheit "weatherTomorrow_Condition" :(text) Weather Condition "weatherTomorrow_WindSpeed" :(numeric) Avg. Wind Speed in mph "weatherTomorrow_WindDirection" :(text) Wind Direction { N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW } "weatherTomorrow_Sunrise" :(text) Local time of sunrise "weatherTomorrow_Sunset" :(text) Local time of sunset "weatherDayAfterTomorrow_Temperature_Low" :(numeric) Fahrenheit "weatherDayAfterTomorrow_Temperature_High" :(numeric) Fahrenheit "weatherDayAfterTomorrow_Condition" :(text) Weather Condition "weatherDayAfterTomorrow_WindSpeed" :(numeric) Avg. Wind Speed in mph "weatherDayAfterTomorrow_WindDirection" :(text) Wind Direction { N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW } "weatherDayAfterTomorrow_Sunrise" :(text) Local time of sunrise "weatherDayAfterTomorrow_Sunset" :(text) Local time of sunset "weatherDay4_Temperature_Low" :(numeric) Fahrenheit (Day 4 fields valid for USA & CAN) "weatherDay4_Temperature_High" :(numeric) Fahrenheit "weatherDay4_Condition" :(text) Weather Condition "weatherDay4_WindSpeed" :(numeric) Avg. Wind Speed in mph "weatherDay4_WindDirection" :(text) Wind Direction { N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW } "weatherDay4_Sunrise" :(text) Local time of sunrise "weatherDay4_Sunset" :(text) Local time of sunset "weatherDay5_Temperature_Low" :(numeric) Fahrenheit (Day 5 fields valid for USA & CAN) "weatherDay5_Temperature_High" :(numeric) Fahrenheit "weatherDay5_Condition" :(text) Weather Condition "weatherDay5_WindSpeed" :(numeric) Avg. Wind Speed in mph "weatherDay5_WindDirection" :(text) Wind Direction { N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW } "weatherDay5_Sunrise" :(text) Local time of sunrise "weatherDay5_Sunset" :(text) Local time of sunset "predictedSnowFall_24Hours" :(text) Predicted Snowfall in next 24 hours Field can be a range (3 - 5) or numeric value (5) "predictedSnowFall_48Hours" :(text) Predicted Snowfall in next 48 hour Field can be a range (3 - 5) or numeric value (5) "predictedSnowFall_72Hours" :(text) Predicted Snowfall in next 72 hour Field can be a range (3 - 5) or numeric value (5) "predictedSnowFall_7days" :(text) Predicted Snowfall in next 7 days Field can be a range (3 - 5) or numeric value (5)