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.

  1. Single ski area condition requests have no limitation. Documentation can be seen here.
  2. Single State condition requests have no limitation. Documentation can be seen here.
  3. 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.

  1. Single ski area condition requests have no limitation. Documentation can be seen here.
  2. Single State condition requests have no limitation. Documentation can be seen here.
  3. Regional ski area condition requests, from a mobile app we do not allow.

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&regions=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:

  1. The result will be up to 20 resorts, based on snow reported. Hence the # of resorts returned will range from 0 - 20.
  2. If no resortType specified (Alpine or XC), see above, default will be All. Hence Top20 will consist of Alpine & XC resorts.
  3. 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 ..."
    "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) 
                   
                             

Legacy Docs: Can be found at Legacy Docs