Xcast Forecasts

Xcast Forecasts

URL Path
https://data.api.xweather.com/xcast/forecasts/
Data Coverage
Global
Update Interval
1 hour
Time Range
+15days

The Xcast forecasts endpoint provides interpolated global forecast data, as well as hyperlocal forecast data based on Xcast device input. Forecasts are available in hourly and 10 min intervals, including confidence limits for wind and temperature data when applicable.

Currently, the Xcast enhanced forecasts data is available for temperature and wind speeds. All other attributes are utilizing the standard Xweather forecast blend.

Requests

Every request to the endpoint must include one of the supported actions in the url.

https://data.api.xweather.com/xcast/forecasts/{action}?client_id={client_id}&client_secret={client_secret}&{params}

Supported Actions

The following actions are supported with the /xcast/forecasts endpoint:

ActionDescription
:idType: stringTypically used for passing a geographical location name or identifier such as city name, lat/long, or even US and Canadian postal codes. Learn more.

Response

The following is an example of what each object in the response will consist of. Depending on your requested action, the response may contain multiple instances of this object within an array.

Properties

loc (object)

The location of the record.

loc.long (number)

The place or nearest place to the record.

loc.lat (number)

The latitude coordinate of the record.

interval (string)

Intevals returned in the periods array. 1hr or 10min

place (object)

Object containing information about the place or nearest place to the record.

place.name (string)

The place or nearest place to the record.

place.state (string)

The state abbreviation in which the response is located. This may be null or an empty string depending on the country.

place.country (string)

The 2 letter ISO-3166 country abbreviation in which the response is located.

periods (array)

Array containing weather data for each period.

periods.#.timestamp (number)

The UNIX timestamp of the forecast valid time.

periods.#.validTime (string)

(Deprecated) Use dateTimeISO instead.

periods.#.dateTimeISO (string)

The ISO-8601 date and time string of the forecast valid time.

periods.#.maxTempC (number)

The maximum temperature in degrees Celsius.

periods.#.maxTempF (number)

The maximum temperature in degrees Fahrenheit.

periods.#.minTempC (number)

The minimum temperature in degrees Celsius.

periods.#.minTempF (number)

The minimum temperature in degrees Fahrenheit.

periods.#.avgTempC (number)

The average temperature for the period in degrees Celsius.

periods.#.avgTempF (number)

The average temperature for the period in degrees Fahrenheit.

periods.#.tempC (number)

The temperature in degrees Celsius for the valid time.

periods.#.tempF (number)

The temperature in degrees Fahrenheit for the valid time.

periods.#.wetBulbGlobeTempC (number)

The wet bulb globe temperature in celsius.

periods.#.wetBulbGlobeTempF (number)

The wet bulb globe temperature in fahrenheit.

periods.#.maxFeelslikeC (number)

The maximum feels like temperature for the periods in degrees Celsius.

periods.#.maxFeelslikeF (number)

The maximum feels like temperature for the period in degrees Fahrenheit.

periods.#.minFeelslikeC (number)

The minimum feels like temperature for the period in degrees Celsius.

periods.#.minFeelslikeF (number)

The minimum feels like temperature for the period in degrees Fahrenheit.

periods.#.avgFeelslikeC (number)

The average feels like temperature for the period in degrees Celsius.

periods.#.avgFeelslikeF (number)

The average feels like temperature for the period in degrees Fahrenheit.

periods.#.feelslikeC (number)

The feels like temperature for the valid time in degrees Celsius.

periods.#.feelslikeF (number)

The feels like temperature for the valid time in degrees Fahrenheit.

periods.#.maxDewpointC (number)

The maximum dew point for the period in degrees Celsius.

periods.#.maxDewpointF (number)

The maximum dew point for the period in degrees Fahrenheit.

periods.#.minDewpointC (number)

The minimum dew point for the period in degrees Celsius.

periods.#.minDewpointF (number)

The minimum dew point for the period in degrees Fahrenheit.

periods.#.avgDewpointC (number)

The average dew point for the period in degrees Celsius.

periods.#.avgDewpointF (number)

The average dew point for the period in degrees Fahrenheit.

periods.#.dewpointC (number)

The dew point for the valid time in degrees Celsius.

periods.#.dewpointF (number)

The dew point for the valid time in degrees Fahrenheit.

periods.#.maxHumidity (number)

The maximum relative humidity for the period in percent, 0-100.

periods.#.minHumidity (number)

The minimum relative humidity for the period in percent, 0-100.

periods.#.humidity (number)

The relative humidity for the valid time in percent, 0-100.

periods.#.pop (number)

The probability of precipitation for the period in percent, 0-100.

periods.#.precipMM (number)

The amount of precipitation expected for the period in millimeters. The total liquid equivalent of all precipitation.

periods.#.precipIN (number)

The amount of precipitation expected for the period in inches. The total liquid equivalent of all precipitation.

periods.#.iceaccum (number)

(DEPRECATED) Use iceaccumMM and iceaccumIN instead.

periods.#.iceaccumMM (number)

The amount of ice accretion/accumulation expected for the period in millimeters. Available for the US only out 48 hours.

periods.#.iceaccumIN (number)

The amount of ice accretion/accumulation expected for the period in inches. Available for the US only out 48 hours.

periods.#.snowCM (number)

The amount of accumulated snow fall expected for the period in centimeters.

periods.#.snowIN (number)

The amount of accumulated snow fall expected for the period in inches.

periods.#.pressureMB (number)

The mean sea level pressure for the period in millibars.

periods.#.pressureIN (number)

The mean sea level pressure for the period in inches.

periods.#.windDir (string)

The wind direction for the valid time in cardinal notation. N, S, SE, NNW, etc. Null if unavailable / no wind speed.

periods.#.windDirDEG (number)

The wind direction for the valid time in degrees. 0-359, where 0 is north and 180 is south. Null if unavailable / no wind speed.

periods.#.windSpeedKTS (number)

The wind speed for the valid time in knots.

periods.#.windSpeedKPH (number)

The wind speed for the valid time in kilometers per hour.

periods.#.windSpeedMPH (number)

The wind speed for the valid time in miles per hour.

periods.#.windSpeedMPS (number)

The wind speed for the valid time in meters per second.

periods.#.windGustKTS (number)

The wind gust for the valid time in knots.

periods.#.windGustKPH (number)

The wind gust for the valid time in kilometers per hour.

periods.#.windGustMPH (number)

The wind gust for the valid time in miles per hour.

periods.#.windGustMPS (number)

The wind gust for the valid time in meters per second.

periods.#.windDirMax (string)

The wind direction at the time of the maximum wind speed for the period in cardinal notation. N, S, SE, NNW, etc.

periods.#.windDirMaxDEG (number)

The wind direction at the time of the maximum wind speed for the period in degrees. 0-359, where 0 is north and 180 is south.

periods.#.windSpeedMaxKTS (number)

The maximum wind speed for the period in knots.

periods.#.windSpeedMaxKPH (number)

The maximum wind speed for the period in kilometers per hour.

periods.#.windSpeedMaxMPH (number)

The maximum wind speed for the period in miles per hour.

periods.#.windSpeedMaxMPS (number)

The maximum wind speed for the period in meters per second.

periods.#.windDirMin (string)

The wind direction at the time of the minimum wind speed for the period in cardinal notation. N, S, SE, NNW, etc.

periods.#.windDirMinDEG (number)

The wind direction at the time of the minimum wind speed for the period in degrees. 0-359, where 0 is north and 180 is south.

periods.#.windSpeedMinKTS (number)

The minimum wind speed for the period in knots.

periods.#.windSpeedMinKPH (number)

The minimum wind speed for the period in kilometers per hour.

periods.#.windSpeedMinMPH (number)

The minimum wind speed for the period in miles per hour.

periods.#.windSpeedMinMPS (number)

The minimum wind speed for the period in meters per second.

periods.#.windDir80m (string)

The wind direction at 80 meters for the valid time in cardinal notation. N, S, SE, NNW, etc.

periods.#.windDir80mDEG (number)

The wind direction at 80 meters for the valid time in degrees. 0-359, where 0 is north and 180 is south.

periods.#.windSpeed80mKTS (number)

The wind speed at 80 meters for the valid time in knots.

periods.#.windSpeed80mKPH (number)

The wind speed at 80 meters for the valid time in kilometers per hour.

periods.#.windSpeed80mMPH (number)

The wind speed at 80 meters for the valid time in miles per hour.

periods.#.windSpeed80mMPS (number)

The wind speed at 80 meters for the valid time in meters per second.

periods.#.windGust80mKTS (number)

The wind gust at 80 meters for the valid time in knots.

periods.#.windGust80mKPH (number)

The wind gust at 80 meters for the valid time in kilometers per hour.

periods.#.windGust80mMPH (number)

The wind gust at 80 meters for the valid time in miles per hour.

periods.#.windGust80mMPS (number)

The wind gust at 80 meters for the valid time in meters per second.

periods.#.windDirMax80m (string)

The wind direction at 80 meters at the time of the maximum wind speed for the period in cardinal notation. N, S, SE, NNW, etc.

periods.#.windDirMax80mDEG (number)

The wind direction at 80 meters at the time of the maximum wind speed for the period in degrees. 0-359, where 0 is north and 180 is south.

periods.#.windSpeedMax80mKTS (number)

The maximum wind speed at 80 meters for the period in knots.

periods.#.windSpeedMax80mKPH (number)

The maximum wind speed at 80 meters for the period in kilometers per hour.

periods.#.windSpeedMax80mMPH (number)

The maximum wind speed at 80 meters for the period in miles per hour.

periods.#.windSpeedMax80mMPS (number)

The maximum wind speed at 80 meters for the period in meters per second.

periods.#.windDirMin80m (string)

The wind direction at 80 meters at the time of the minimum wind speed for the period in cardinal notation. N, S, SE, NNW, etc.

periods.#.windDirMin80mDEG (number)

The wind direction at 80 meters at the time of the minimum wind speed for the period in degrees. 0-359, where 0 is north and 180 is south.

periods.#.windSpeedMin80mKTS (number)

The minimum wind speed at 80 meters for the period in knots.

periods.#.windSpeedMin80mKPH (number)

The minimum wind speed at 80 meters for the period in kilometers per hour.

periods.#.windSpeedMin80mMPH (number)

The minimum wind speed at 80 meters for the period in miles per hour.

periods.#.windSpeedMin80mMPS (number)

The minimum wind speed at 80 meters for the period in meters per second.

periods.#.sky (number)

The sky/cloud cover for the valid time in percent, 0-100.

periods.#.cloudsCoded (string)

The sky/cloud cover for the valid time in coded notation.

periods.#.weather (string)

Full weather phrase for the forecast period.

periods.#.weatherCoded (array)

Array of periods containing different weather types; can be used to determine when a particular type of weather is expected to begin/end. Refer to the Coded Weather documentation for additional information on the types of weather codes.

periods.#.weatherPrimary (string)

The primary weather phrase for the forecast period.

periods.#.weatherPrimaryCoded (string)

The primary coded weather type. Refer to the Coded Weather documentation for additional information on the types of weather codes.

periods.#.icon (string)

The URL to the weather icon for the forecast period.

periods.#.visibilityKM (number)

The visibility for the valid time in kilometers.

periods.#.visibilityMI (number)

The visibility for the valid time in miles.

periods.#.uvi (number)

The UV index for the valid time.

periods.#.solradWM2 (number)

The estimated forecast solar radiation. Normally used with filter=1hr.

periods.#.solradMinWM2 (number)

The minimum estimated forecast solar radiation over a forecast interval.

periods.#.solradMaxWM2 (number)

The maximum estimated forecast solar radiation over a forecast interval.

periods.#.isDay (boolean)

True if the period is during the day, otherwise false.

periods.#.ghi (number)

Estimated 1-hour Global Horizontal Irradiance (global solar radiation) in watts/meter squared.

periods.#.solrad (object)

Object containing specific solar radiation metrics

periods.#.solrad.azimuthDEG (number)

The solar azimuth angle.
Only returned with hourly based requests.

periods.#.solrad.zenithDEG (number)

The solar zenith angle.
Only returned with hourly based requests.

periods.#.solrad.ghiWM2 (number)

Estimated 1-hour Global Horizontal Irradiance (global solar radiation) in watts/meter squared.

Only returned with hourly based requests.

periods.#.solrad.dniWM2 (number)

Estimated 1-hour Direct Normal Irradiation in watts/meter squared.

Only returned with hourly based requests.

periods.#.solrad.dhiWM2 (number)

Estimated 1-hour Diffused Horizontal Irradiance in watts/meter squared.

Only returned with hourly based requests.

periods.#.solrad.version (string)

Version currently used to generate sorlad values.

Only returned with hourly based requests.

periods.#.solradClearSkyWM2 (number)

The estimated forecast solar radiation under clear sky conditions. Normally used with filter=1hr. If interval > 1 hour will be the accumulated hourly solar radiation values over the interval.

periods.#.solradClearSkySource (string)

The source of the clear sky solar radiation data.

periods.#.maxCoverage (string)

Deprecated

periods.#.windConfidenceLimit (object)

Object containing wind confidence limit levels. Null if unavailable.

periods.#.windConfidenceLimit.p10 (number)

10th percentile for wind confidence in meters per second.

periods.#.windConfidenceLimit.p25 (number)

25th percentile for wind confidence in meters per second.

periods.#.windConfidenceLimit.p50 (number)

50th percentile for wind confidence in meters per second.

periods.#.windConfidenceLimit.p75 (number)

75th percentile for wind confidence in meters per second.

periods.#.windConfidenceLimit.p90 (number)

90th percentile for wind confidence in meters per second.

periods.#.spressureMB (number)

The surface pressure in millibars. Null if unavailable.

periods.#.spressureIN (number)

The surface pressure in inches mercury (inHg). Null if unavailable.

periods.#.altimeterMB (number)

The altimeter value in millibars. Null if unavailable.

periods.#.altimeterIN (number)

The altimeter value in inches mercury (inHg). Null if unavailable.

periods.#.tempConfidenceLimit (object)

Object containing temperature confidence limits. Null if unavailable.

periods.#.tempConfidenceLimit.p5 (number)

5th percentile for temp confidence in celsius.

periods.#.tempConfidenceLimit.p10 (number)

10th percentile for temp confidence in celsius.

periods.#.tempConfidenceLimit.p25 (number)

25th percentile for temp confidence in celsius.

periods.#.tempConfidenceLimit.p75 (number)

75th percentile for temp confidence in celsius.

periods.#.tempConfidenceLimit.p90 (number)

90th percentile for temp confidence in celsius.

periods.#.tempConfidenceLimit.p95 (number)

95th percentile for temp confidence in celsius.

profile (object)

Object containing information about the location or event.

profile.tz (string)

Timezone name of the location, such as America/New_York.

profile.elevM (number)

The elevation of the location in meters.

profile.elevFT (number)

The elevation of the location in feet.

[
  {
    "loc": {
      "long": 24.858999,
      "lat": 60.168133
    },
    "interval": "1hr",
    "place": {
      "name": "helsinki",
      "state": "01",
      "country": "fi"
    },
    "periods": [
      {
        "timestamp": 1761069600,
        "validTime": "2025-10-21T21:00:00+03:00",
        "dateTimeISO": "2025-10-21T21:00:00+03:00",
        "maxTempC": 6.8,
        "maxTempF": 44,
        "minTempC": 6.8,
        "minTempF": 44,
        "avgTempC": 6.8,
        "avgTempF": 44,
        "tempC": 6.8,
        "tempF": 44,
        "wetBulbGlobeTempC": 7.21,
        "wetBulbGlobeTempF": 45,
        "maxFeelslikeC": 5.57,
        "maxFeelslikeF": 42,
        "minFeelslikeC": 5.57,
        "minFeelslikeF": 42,
        "avgFeelslikeC": 5.57,
        "avgFeelslikeF": 42,
        "feelslikeC": 5.57,
        "feelslikeF": 42,
        "maxDewpointC": 3.12,
        "maxDewpointF": 38,
        "minDewpointC": 3.12,
        "minDewpointF": 38,
        "avgDewpointC": 3.12,
        "avgDewpointF": 38,
        "dewpointC": 3.12,
        "dewpointF": 38,
        "maxHumidity": 77,
        "minHumidity": 77,
        "humidity": 77,
        "pop": 0,
        "precipMM": 0,
        "precipIN": 0,
        "iceaccum": null,
        "iceaccumMM": null,
        "iceaccumIN": null,
        "snowCM": 0,
        "snowIN": 0,
        "pressureMB": 1011,
        "pressureIN": 29.84,
        "windDir": "S",
        "windDirDEG": 169,
        "windSpeedKTS": 4,
        "windSpeedKPH": 7,
        "windSpeedMPH": 4,
        "windSpeedMPS": 2,
        "windGustKTS": 22,
        "windGustKPH": 41,
        "windGustMPH": 25,
        "windGustMPS": 11,
        "windDirMax": "S",
        "windDirMaxDEG": 169,
        "windSpeedMaxKTS": 4,
        "windSpeedMaxKPH": 7,
        "windSpeedMaxMPH": 4,
        "windSpeedMaxMPS": 2,
        "windDirMin": "S",
        "windDirMinDEG": 169,
        "windSpeedMinKTS": 4,
        "windSpeedMinKPH": 7,
        "windSpeedMinMPH": 4,
        "windSpeedMinMPS": 2,
        "windDir80m": "S",
        "windDir80mDEG": 172,
        "windSpeed80mKTS": 17,
        "windSpeed80mKPH": 31,
        "windSpeed80mMPH": 19,
        "windSpeed80mMPS": 9,
        "windGust80mKTS": 17,
        "windGust80mKPH": 31,
        "windGust80mMPH": 19,
        "windGust80mMPS": 9,
        "windDirMax80m": "S",
        "windDirMax80mDEG": 172,
        "windSpeedMax80mKTS": 17,
        "windSpeedMax80mKPH": 31,
        "windSpeedMax80mMPH": 19,
        "windSpeedMax80mMPS": 9,
        "windDirMin80m": "S",
        "windDirMin80mDEG": 172,
        "windSpeedMin80mKTS": 17,
        "windSpeedMin80mKPH": 31,
        "windSpeedMin80mMPH": 19,
        "windSpeedMin80mMPS": 9,
        "sky": 14,
        "cloudsCoded": "FW",
        "weather": "Mostly Clear",
        "weatherCoded": [],
        "weatherPrimary": "Mostly Clear",
        "weatherPrimaryCoded": "::FW",
        "icon": "fairn.png",
        "visibilityKM": 16,
        "visibilityMI": 9.94,
        "uvi": 0,
        "solradWM2": 0,
        "solradMinWM2": 0,
        "solradMaxWM2": 0,
        "isDay": false,
        "ghi": 0,
        "solrad": {
          "azimuthDEG": 290.0522,
          "zenithDEG": 113.3805,
          "ghiWM2": 0,
          "dniWM2": 0,
          "dhiWM2": 0,
          "version": "v2"
        },
        "solradClearSkyWM2": 0,
        "solradClearSkySource": "v2",
        "maxCoverage": "",
        "windConfidenceLimit": {
          "p10": 2.1986211769336,
          "p25": 2.0671495094568,
          "p50": 1.8410967536174,
          "p75": 1.6448563470127,
          "p90": 1.4785262412583
        },
        "spressureMB": 1007,
        "spressureIN": 29.75,
        "altimeterMB": 1010,
        "altimeterIN": 29.83,
        "tempConfidenceLimit": {
          "p5": 5.1,
          "p10": 5.3,
          "p25": 5.8,
          "p75": 6.9,
          "p90": 7.4,
          "p95": 7.9
        }
      }
    ],
    "profile": {
      "tz": "Europe/Helsinki",
      "elevM": 26,
      "elevFT": 85
    }
  }
]