📦 Data Types
This section describes the response structures returned by the Skycaster API. All data is sourced from the Open-Meteo API.
Note: The fields returned in each response depend on your dashboard settings (
choosenInfo,choosenInfoHourly,choosenInfoDaily). Only the fields you have configured are included in the response. Two fields are always present in every entry:iconandweather_description.
🌐 Common Response Wrapper
All three public endpoints return responses with the same top-level shape:
1type ApiResponse = {
2message: CityResult[];
3};
4
5type CityResult = {
6city: string; // Display name of the city
7locale?: string; // BCP 47 locale tag, e.g. "de-CH", "en-US"
8data: WeatherData | ForecastData;
9};
☀️ WeatherData
Returned by GET /weather. The data object contains one key per configured field, plus two always-present fields.
1// Always present
2type WeatherDataBase = {
3icon: string; // URL to animated weather icon gif
4weather_description: string; // Human-readable description, e.g. "Clear sky"
5};
6
7// Additional fields depend on user's choosenInfo settings.
8// Field names match the setting key (see Available Fields table below).
9type WeatherData = WeatherDataBase & {
10[fieldName: string]: number | string | null;
11};
Example data object:
{
"icon": "https://cdn.skycaster.tv/set-1-gif/01d.gif",
"weather_description": "Clear sky",
"temperature": 18.5,
"humidity": 62,
"dew_point": 11.2,
"wind_speed": 4.1,
"wind_direction": 180,
"wind_direction_label": "S",
"heat_index": 18.2
}
🕐 ForecastData (Hourly)
Returned by GET /forecast-hourly. The data object contains a forecast map keyed by ISO 8601 datetime strings.
1type HourlyForecastData = {
2forecast: {
3 [isoDatetime: string]: HourlyEntry; // e.g. "2025-05-17T06:00"
4};
5type: "hourly";
6};
7
8// Always present per entry
9type HourlyEntryBase = {
10time: string; // ISO 8601 datetime, e.g. "2025-05-17T06:00"
11icon: string; // URL to animated weather icon gif
12weather_description: string;
13};
14
15// Additional fields from choosenInfoHourly (or choosenInfo as fallback)
16type HourlyEntry = HourlyEntryBase & {
17[fieldName: string]: number | string | null;
18};
🌤️ ForecastData (Daily)
Returned by GET /forecast-daily. The data object contains a forecast map keyed by ISO 8601 date strings.
1type DailyForecastData = {
2forecast: {
3 [isoDate: string]: DailyEntry; // e.g. "2025-05-17"
4};
5type: "daily";
6days: number; // Number of days returned
7};
8
9// Always present per entry
10type DailyEntryBase = {
11time: string; // ISO 8601 date, e.g. "2025-05-17"
12icon: string; // URL to animated weather icon gif
13weather_description: string;
14};
15
16// Additional fields from choosenInfoDaily (or choosenInfo as fallback)
17type DailyEntry = DailyEntryBase & {
18[fieldName: string]: number | string | null;
19};
📋 Available Field Names
Configure these in your dashboard. Use the Field Name as the key when reading the response.
Current / Hourly Fields
| Field Name | Description | Unit |
|---|---|---|
temperature | Air temperature at 2 m | °C or °F |
feels_like | Apparent temperature | °C or °F |
humidity | Relative humidity | % |
dew_point | Dew point temperature | °C or °F |
heat_index | Computed heat index (from temp + humidity) | °C or °F |
wind_speed | Wind speed at 10 m | km/h, m/s, or mph |
wind_direction | Wind direction at 10 m | degrees (0–360) |
wind_direction_label | Cardinal direction label (auto-added with wind_direction) | e.g. "N", "SW" |
wind_gusts | Wind gust speed at 10 m | km/h, m/s, or mph |
wind_speed_80m | Wind speed at 80 m | km/h, m/s, or mph |
wind_speed_120m | Wind speed at 120 m | km/h, m/s, or mph |
wind_speed_180m | Wind speed at 180 m | km/h, m/s, or mph |
pressure | Mean sea level pressure | hPa |
surface_pressure | Surface pressure | hPa |
cloud_cover | Total cloud cover | % |
cloud_cover_low | Low-altitude cloud cover | % |
cloud_cover_mid | Mid-altitude cloud cover | % |
cloud_cover_high | High-altitude cloud cover | % |
visibility | Visibility | meters |
precipitation | Total precipitation | mm or inch |
precipitation_probability | Precipitation probability | % |
rain | Rain amount | mm or inch |
showers | Showers amount | mm or inch |
snowfall | Snowfall amount | cm |
snow_depth | Snow depth | m |
uv_index | UV index | — |
uv_index_clear_sky | UV index under clear sky | — |
sunshine_duration | Sunshine duration | seconds |
shortwave_radiation | Global horizontal irradiance | W/m² |
direct_radiation | Direct solar radiation | W/m² |
diffuse_radiation | Diffuse solar radiation | W/m² |
cape | CAPE (convective available potential energy) | J/kg |
vapour_pressure_deficit | Vapour pressure deficit | kPa |
et0_fao_evapotranspiration | ET₀ reference evapotranspiration | mm |
is_day | Daytime flag | 1 = day, 0 = night |
weather_description | WMO weather description | string |
soil_temperature_0cm | Soil temperature at 0 cm depth | °C or °F |
soil_temperature_6cm | Soil temperature at 6 cm depth | °C or °F |
soil_temperature_18cm | Soil temperature at 18 cm depth | °C or °F |
soil_temperature_54cm | Soil temperature at 54 cm depth | °C or °F |
soil_moisture_0_to_1cm | Soil moisture 0–1 cm | m³/m³ |
soil_moisture_1_to_3cm | Soil moisture 1–3 cm | m³/m³ |
soil_moisture_3_to_9cm | Soil moisture 3–9 cm | m³/m³ |
soil_moisture_9_to_27cm | Soil moisture 9–27 cm | m³/m³ |
soil_moisture_27_to_81cm | Soil moisture 27–81 cm | m³/m³ |
Daily-Only Fields
| Field Name | Description | Unit |
|---|---|---|
temperature_max | Daily max temperature | °C or °F |
temperature_min | Daily min temperature | °C or °F |
temperature_mean | Daily mean temperature | °C or °F |
apparent_temperature_max | Daily max apparent temperature | °C or °F |
apparent_temperature_min | Daily min apparent temperature | °C or °F |
apparent_temperature_mean | Daily mean apparent temperature | °C or °F |
sunrise | Sunrise time | ISO datetime string |
sunset | Sunset time | ISO datetime string |
daylight_duration | Daylight duration | seconds |
sunshine_duration | Sunshine duration | seconds |
precipitation_sum | Total daily precipitation | mm or inch |
rain_sum | Total daily rain | mm or inch |
showers_sum | Total daily showers | mm or inch |
snowfall_sum | Total daily snowfall | cm |
precipitation_probability_max | Max precipitation probability | % |
precipitation_hours | Number of hours with precipitation | hours |
wind_speed_max | Max daily wind speed | km/h, m/s, or mph |
wind_gusts_max | Max daily wind gusts | km/h, m/s, or mph |
wind_direction_dominant | Dominant wind direction | degrees |
uv_index_max | Max daily UV index | — |
uv_index_clear_sky_max | Max daily UV index under clear sky | — |
shortwave_radiation_sum | Daily solar radiation sum | MJ/m² |
et0_fao_evapotranspiration | Daily ET₀ reference evapotranspiration | mm |
Air Quality Fields
| Field Name | Description | Unit |
|---|---|---|
air_quality | European AQI (1–5: Good → Very Poor) | index |
ozone_level | Ozone concentration | μg/m³ |
pm2_5 | PM2.5 particulate matter | μg/m³ |
pm10 | PM10 particulate matter | μg/m³ |
carbon_monoxide | CO concentration | μg/m³ |
nitrogen_dioxide | NO₂ concentration | μg/m³ |
sulphur_dioxide | SO₂ concentration | μg/m³ |
european_aqi | European AQI | index |
us_aqi | US AQI | index |
dust | Dust concentration | μg/m³ |
pollen_alder | Alder pollen | grains/m³ |
pollen_birch | Birch pollen | grains/m³ |
pollen_grass | Grass pollen | grains/m³ |
pollen_mugwort | Mugwort pollen | grains/m³ |
pollen_olive | Olive pollen | grains/m³ |
pollen_ragweed | Ragweed pollen | grains/m³ |
📞 Need Assistance?
If you have questions or need support:
- Contact Support: Reach out via our Support Page
- Email Us: support@skycaster.tv