Foreca Weather API

Premium global weather data, delivered as one REST API.

Get an API key OpenAPI spec for AI assistantsJSON · 105 KB

Quickstart

  1. Get an API key. Pick a plan on the Foreca Weather API pricing page — start a free 30-day trial or subscribe directly. Your key lands in My API after sign-up.
  2. Make your first request to one of the endpoints. Pass the key as a Bearer token in the Authorization header (Authorization: Bearer YOUR_KEY), or as a ?token=YOUR_KEY query parameter. You can also use the Test Request panels on this page which have your key pre-filled when signed in.

Plans & features

All plans include Point Forecasts, Air Quality, and Weather Maps, with more products unlocked at higher tiers. Weather History, Ski Resort, and Agriculture are available on request — contact sales. See the Foreca Weather API pricing page for the full plan and feature breakdown.

This site is the technical reference. For what the API is intended for, the data behind it and how it is licensed, see the Foreca Weather API product page.

Request limits

The number of included requests per month depends on your plan. Exceeding requests are billed separately. In addition, a queries-per-second limit applies, which is a hard limit that is defined by your plan. See the Pricing page for more details.

The free trial and Freemium plans each have a daily limit of 2,000 requests per day.

Only successful requests count towards the limit. For the Maps endpoints, each tile counts as one request.

You can monitor your API usage with endpoints in the Usage section below, as well as through My API.

Attribution

Customer shall display in its weather service the Foreca logo. In case displaying the logo is not possible due to technical reasons, the text "Foreca" shall be displayed in customer's weather service in connection with the content referring to the source of information.

Logo + trademark guidelines: business.foreca.com/logo.

Third Party Attributions

Customer's application must show third-party attribution as given in API response. For example, the Capabilities endpoint under Weather Maps responds with layer info telling the required attribution text.

Currently the following organisations must be attributed if their data is used:

  • Radar data: Aemet, BOM, DMI, DWD, EC, FMI, InMet, JMA, KMI, KNMI, MET Eireann, MeteoSchweiz, MF, Met Office, MET Norway, NWS, Protezione Civile, SMHI, SMN, ZAMG
  • Satellite data: EUMETSAT, JMA, NOAA
  • Pollen data: Copernicus Atmosphere Monitoring Service
  • Climate data: Copernicus Climate Change Service, ESA Sea Surface Temperature Climate Change Initiative
  • Ski data: Skiresort Service International
  • Hurricane data: National Oceanic and Atmospheric Administration (NOAA), Japan Meteorological Agency (JMA), Bureau of Meteorology (BOM), RSMC La Réunion (Météo-France), MetService New Zealand, Fiji Meteorological Service, Joint Typhoon Warning Center

Support

Questions or suggestions: [email protected].

Point Forecasts

Global weather point forecasts. Temperature and relative humidity parameters are calculated at 2m height, all wind parameters at 10m. Height of the parameters is above ground. Ground is assumed to be at the average elevation of the surrounding area.

Forecast resolution varies by location, timescale, and proximity to observation stations — nearby stations improve accuracy and forecasts may vary even within a kilometer. Some locations use higher-resolution local models.

Sometimes, data may be missing, in which case the API will return null for that value. This can occur if our data providers experience issues with data delivery. Therefore, null values should be treated as missing data.

The Forecast endpoints (daily, hourly, 3hourly, 15minutely, minutely) support multi-location requests for up to 50 locations. Use a semicolon-separated list of coordinates or location IDs to retrieve multiple location forecasts. Due to the size of the data for all parameters and long forecasts, the response time can be slow. Therefore, limit the forecast length using periods in the request to achieve faster response times. Each individual location is counted as a query for billing purposes.

Note

See symbol explanations in the Resources page. Foreca's custom weather symbol sets are available for download in SVG and PNG formats, exclusively for our API clients through My API.

Location search

Locations and associated identifiers matching a search query. Can be used as alternatives to coordinates.

Path Parameters

queryType: stringrequired

Search query

Query Parameters

langType: string

Language (ISO 639-1 codes). Options: de, en, es, fr, it, pl, ru, fi, sv, nl, ko, pt, th, tr, zh, zh_TW (Chinese in Taiwan), zh_CN (Chinese in China). (default en)

countryType: string

Limit search to a given country (ISO 3166-1 alpha-2 codes)

scriptType: string

Writing script for the location name, e.g. "latin"

GET/api/v1/location/search/{query}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/location/search/{query}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "locations": [
    {
      "id": 102643743,
      "name": "London",
      "country": "United Kingdom",
      "timezone": "Europe/London",
      "language": "en",
      "adminArea": "England",
      "adminArea2": "Greater London",
      "adminArea3": null,
      "lon": -0.1257,
      "lat": 51.5085
    }
  ]
}
{
  "type": "object",
  "properties": {
    "locations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": 102643743,
            "description": "Identifier to be used with weather queries"
          },
          "name": {
            "type": "string",
            "example": "London",
            "description": "Location name e.g. London"
          },
          "country": {
            "type": "string",
            "example": "United Kingdom",
            "description": "Location country name e.g. United Kingdom"
          },
          "timezone": {
            "type": "string",
            "example": "Europe/London",
            "description": "Location timezone e.g. Europe/London"
          },
          "language": {
            "type": "string",
            "example": "en",
            "description": "Language of location name result"
          },
          "adminArea": {
            "type": "string",
            "example": "England",
            "description": "Administrative region name (high level, e.g. state)"
          },
          "adminArea2": {
            "type": "string",
            "example": "Greater London",
            "description": "Administrative region name (medium level, e.g. county)"
          },
          "adminArea3": {
            "type": "string",
            "nullable": true,
            "description": "Administrative region name (low level, e.g. municipality)"
          },
          "lon": {
            "type": "number",
            "example": -0.1257,
            "description": "Location longitude"
          },
          "lat": {
            "type": "number",
            "example": 51.5085,
            "description": "Location latitude"
          }
        }
      }
    }
  }
}
Success

Location info

Location metadata.

Path Parameters

locationType: stringrequired

"Longitude,latitude" or location identifier (id) from the location endpoint

Query Parameters

langType: string

Language (ISO 639-1 codes). Options: de, en, es, fr, it, pl, ru, fi, sv, nl, ko, pt, th, tr, zh, zh_TW (Chinese in Taiwan), zh_CN (Chinese in China). (default en)

GET/api/v1/location/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/location/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "id": 100184745,
  "name": "Nairobi",
  "country": "Kenia",
  "timezone": "Africa/Nairobi",
  "language": "fi",
  "adminArea": "Nairobi",
  "adminArea2": null,
  "adminArea3": null,
  "lon": 36.8167,
  "lat": -1.2833
}
{
  "type": "object",
  "properties": {
    "id": {
      "type": "number",
      "example": 100184745,
      "description": "Identifier to be used with weather queries"
    },
    "name": {
      "type": "string",
      "example": "Nairobi",
      "description": "Location name e.g. London"
    },
    "country": {
      "type": "string",
      "example": "Kenia",
      "description": "Location country name e.g. United Kingdom"
    },
    "timezone": {
      "type": "string",
      "example": "Africa/Nairobi"
    },
    "language": {
      "type": "string",
      "example": "fi",
      "description": "Language of location name result"
    },
    "adminArea": {
      "type": "string",
      "example": "Nairobi",
      "description": "Administrative region name (high level, e.g. state)"
    },
    "adminArea2": {
      "type": "string",
      "nullable": true,
      "description": "Administrative region name (medium level, e.g. county)"
    },
    "adminArea3": {
      "type": "string",
      "nullable": true,
      "description": "Administrative region name (low level, e.g. municipality)"
    },
    "lon": {
      "type": "number",
      "example": 36.8167,
      "description": "Location longitude"
    },
    "lat": {
      "type": "number",
      "example": -1.2833,
      "description": "Location latitude"
    }
  }
}
Success

Observations

Observations from nearby representative weather stations.

Path Parameters

locationType: stringrequired

"Longitude,latitude" or location identifier (id) from the location endpoint

Query Parameters

tzType: string

Time zone in response (an IANA time zone database name, default is the time zone of the location)

stationsType: string

Amount of stations (default 3, maximum 6)

precType: string

Include precipitation? 1 for yes, 0 for no (default 0).

tempunitType: string

Temperature unit: "C", "F" (default "C")

windunitType: string

Wind unit: "MS" (m/s), "KTS" (knots), "KMH" (km/h), or "MPH" (mph) (default m/s)

roundingType: string

Rounding of some variables to nearest integer: 0 or 1 (default 1 for no decimals)

GET/api/v1/observation/latest/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/observation/latest/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "observations": [
    {
      "distance": "8 km E",
      "elevation": 121,
      "feelsLikeTemp": 3,
      "latitude": 50.09,
      "longitude": 8.79,
      "precipitation": [
        {
          "accum": 0,
          "endtime": "2026-02-20T13:00:00+01:00",
          "period": "3h"
        }
      ],
      "pressure": 1023.4,
      "relHumidity": 65,
      "snowDepth": 2,
      "station": "OFFENBACH-WETTERPARK",
      "symbol": "d400",
      "temperature": 5,
      "time": "2026-02-20T14:00:00+01:00",
      "visibility": 19720,
      "windDir": 230,
      "windDirString": "SW",
      "windGust": 6,
      "windSpeed": 3
    }
  ]
}
{
  "type": "object",
  "properties": {
    "observations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "distance": {
            "type": "string",
            "example": "8 km E",
            "description": "Distance from the location to the station e.g. 13 km E"
          },
          "elevation": {
            "type": "number",
            "example": 121,
            "description": "Elevation (m) of the station above sea level"
          },
          "feelsLikeTemp": {
            "type": "number",
            "example": 3,
            "description": "Feels like temperature (°C or requested unit)"
          },
          "latitude": {
            "type": "number",
            "example": 50.09,
            "description": "Latitude of the station"
          },
          "longitude": {
            "type": "number",
            "example": 8.79,
            "description": "Longitude of the station"
          },
          "precipitation": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "accum": {
                  "type": "number",
                  "example": 0,
                  "description": "Precipitation in millimetres, during \"period\", ending at \"endtime\""
                },
                "endtime": {
                  "type": "string",
                  "example": "2026-02-20T13:00:00+01:00",
                  "description": "The precipitation accumulation period end time, formatted like \"time\""
                },
                "period": {
                  "type": "string",
                  "example": "3h",
                  "description": "Duration of this precipitation accumulation. One of \"1h\", \"3h\", \"6h\", \"12h\" or \"24h\"."
                }
              }
            },
            "description": "The set of latest available precipitation accumulations, included only with request parameter prec=1. Empty when no values are available."
          },
          "pressure": {
            "type": "number",
            "example": 1023.4,
            "description": "Atmospheric pressure normalized to sea level (hPa)"
          },
          "relHumidity": {
            "type": "number",
            "example": 65,
            "description": "Relative humidity (%)"
          },
          "snowDepth": {
            "type": "number",
            "example": 2,
            "description": "Snow depth in centimetres (cm)"
          },
          "station": {
            "type": "string",
            "example": "OFFENBACH-WETTERPARK",
            "description": "Name of the observation station"
          },
          "symbol": {
            "type": "string",
            "example": "d400",
            "description": "Weather symbol code"
          },
          "temperature": {
            "type": "number",
            "example": 5,
            "description": "Temperature (°C or requested unit)"
          },
          "time": {
            "type": "string",
            "example": "2026-02-20T14:00:00+01:00",
            "description": "ISO 8601 date and time for the observed parameters, formatted according to request parameter tz"
          },
          "visibility": {
            "type": "number",
            "example": 19720,
            "description": "Visibility in meters, e.g. \"10000\" for 10 km"
          },
          "windDir": {
            "type": "number",
            "example": 230,
            "description": "Wind direction in degrees"
          },
          "windDirString": {
            "type": "string",
            "example": "SW",
            "description": "Wind direction (N, NE, E, SE, S, SW, W, NW)"
          },
          "windGust": {
            "type": "number",
            "example": 6,
            "description": "Wind gust speed (m/s or requested unit)"
          },
          "windSpeed": {
            "type": "number",
            "example": 3,
            "description": "Wind speed (m/s or requested unit)"
          }
        }
      }
    }
  }
}
Success

Current

Current weather estimate.

Path Parameters

locationType: stringrequired

"Longitude,latitude" or location identifier (id) from the location endpoint

Query Parameters

altType: string

Altitude in meters

tempunitType: string

Temperature unit

windunitType: string

Wind unit: "MS" (m/s), "KTS" (knots), "KMH" (km/h), or "MPH" (mph) (default m/s)

tzType: string

Time zone in response (IANA time zone database names)

langType: string

Language (ISO 639-1 codes). Options: ar, bg, bn, ca, cs, da, de, el, en, en_gb = en, en_us = en, es, et, fa, fi, fr, gu, he, hi, hr, hu, id, is, it, ja, kn, ko, lt, lv, ml, nb, nl, no, pa, pl, pt = pt_pt, pt_br, pt_pt, ro, ru, sk, sq, sr, sv, ta, te, th, tr, uk, vi, zh (Simplified Chinese), zh_hk (Traditional Chinese). (default en)

roundingType: string

Rounding of some variables to nearest integer: 0 or 1 (default 1 for no decimals)

GET/api/v1/current/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/current/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "current": {
    "time": "2021-12-20T09:28+02:00",
    "symbol": "n000",
    "symbolPhrase": "clear",
    "temperature": -11.76,
    "feelsLikeTemp": -18.97,
    "relHumidity": 69,
    "dewPoint": -15.81,
    "windSpeed": 4.25,
    "windDir": 16,
    "windDirString": "N",
    "windGust": 11.66,
    "precipProb": 1,
    "precipRate": 0,
    "cloudiness": 3,
    "thunderProb": 0,
    "uvIndex": 0,
    "pressure": 1020.95,
    "visibility": 19934
  }
}
{
  "type": "object",
  "properties": {
    "current": {
      "type": "object",
      "properties": {
        "time": {
          "type": "string",
          "example": "2021-12-20T09:28+02:00",
          "description": "ISO 8601 date and time"
        },
        "symbol": {
          "type": "string",
          "example": "n000",
          "description": "Weather symbol code"
        },
        "symbolPhrase": {
          "type": "string",
          "example": "clear",
          "description": "Description of weather symbol"
        },
        "temperature": {
          "type": "number",
          "example": -11.76,
          "description": "Temperature (°C or requested unit)"
        },
        "feelsLikeTemp": {
          "type": "number",
          "example": -18.97,
          "description": "Feels like temperature (°C or requested unit)"
        },
        "relHumidity": {
          "type": "number",
          "example": 69,
          "description": "Relative humidity (%)"
        },
        "dewPoint": {
          "type": "number",
          "example": -15.81,
          "description": "Dew point (°C or requested unit)"
        },
        "windSpeed": {
          "type": "number",
          "example": 4.25,
          "description": "Wind speed (m/s or requested unit)"
        },
        "windDir": {
          "type": "number",
          "example": 16
        },
        "windDirString": {
          "type": "string",
          "example": "N",
          "description": "Wind direction (N, NE, E, SE, S, SW, W, NW)"
        },
        "windGust": {
          "type": "number",
          "example": 11.66,
          "description": "Wind gust (m/s or requested unit)"
        },
        "precipProb": {
          "type": "number",
          "example": 1,
          "description": "Probability of precipitation (%)"
        },
        "precipRate": {
          "type": "number",
          "example": 0,
          "description": "Intensity of precipitation rate (mm/h)"
        },
        "cloudiness": {
          "type": "number",
          "example": 3,
          "description": "Cloudiness (%)"
        },
        "thunderProb": {
          "type": "number",
          "example": 0,
          "description": "Probability of thunder nearby (%)"
        },
        "uvIndex": {
          "type": "number",
          "example": 0,
          "description": "UV index"
        },
        "pressure": {
          "type": "number",
          "example": 1020.95,
          "description": "Atmospheric pressure normalized to sea level (hPa)"
        },
        "visibility": {
          "type": "number",
          "example": 19934,
          "description": "Visibility (m)"
        }
      }
    }
  }
}
Success

Nowcast (short)

High resolution one hour precipitation forecast in one minute time steps, taking advantage of weather radar where available (Europe and continental USA).

In Europe and continental USA, the short nowcast is based on a true nowcast that uses radar extrapolation to move observed rain. The data is very fresh, usually less than 15 minutes old. If it is a true nowcast, the response resolution parameter shows "resolution": 1.

In other parts of the world, we use medium-range forecast so the forecast is not a true minutecast. The time step is 1 hour, so anything less than that has to be interpolated from the hourly time steps. The data may be several hours old, so the forecast isn’t as skilled in predicting near-term precipitation. If it is not a true nowcast, the response resolution parameter shows "resolution": 60

Path Parameters

locationType: stringrequired

"Longitude,latitude" or location identifier (id) from the location endpoint

Query Parameters

periodsType: string

Number of time steps (up to 60, default 60)

tzType: string

Time zone in response (IANA time zone database names)

GET/api/v1/forecast/minutely/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/forecast/minutely/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "forecast": [
    {
      "time": "2022-06-22T07:43+03:00",
      "precipRate": 0.93
    }
  ],
  "resolution": 1
}
{
  "type": "object",
  "properties": {
    "forecast": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "example": "2022-06-22T07:43+03:00",
            "description": "ISO 8601 date and time"
          },
          "precipRate": {
            "type": "number",
            "example": 0.93,
            "description": "Intensity of precipitation rate (mm/h)"
          }
        }
      }
    },
    "resolution": {
      "type": "number",
      "example": 1,
      "description": "Time resolution of the precipitation rate, in minutes (1 for areas covered by radar, 60 elsewhere)."
    }
  }
}
Success

Nowcast (long)

3-hour forecast in 15-minute time steps. The values represent the conditions at the associated timestamp unless otherwise specified.

Path Parameters

locationType: stringrequired

"Longitude,latitude" or location identifier (id) from the location endpoint

Query Parameters

periodsType: string

Number of time steps (default 8, maximum 12)

altType: string

Altitude in meters

tempunitType: string

Temperature unit: "C", "F" (default "C")

windunitType: string

Wind unit: "MS" (m/s), "KTS" (knots), "KMH" (km/h), or "MPH" (mph) (default m/s)

tzType: string

Time zone in response (IANA time zone database names)

datasetType: string

Variable set: "standard" or "full" (default "standard")

langType: string

Language (ISO 639-1 codes). Options: ar, bg, bn, ca, cs, da, de, el, en, en_gb = en, en_us = en, es, et, fa, fi, fr, gu, he, hi, hr, hu, id, is, it, ja, kn, ko, lt, lv, ml, nb, nl, no, pa, pl, pt = pt_pt, pt_br, pt_pt, ro, ru, sk, sq, sr, sv, ta, te, th, tr, uk, vi, zh (Simplified Chinese), zh_hk (Traditional Chinese). (default en)

roundingType: string

Rounding of some variables to nearest integer: 0 or 1 (default 1 for no decimals)

GET/api/v1/forecast/15minutely/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/forecast/15minutely/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "forecast": [
    {
      "time": "2021-12-20T10:30+01:00",
      "symbol": "d421",
      "symbolPhrase": "wet snow showers",
      "temperature": 0.5,
      "feelsLikeTemp": -4.55,
      "relHumidity": 97,
      "dewPoint": 0.02,
      "windDir": 220,
      "windSpeed": 5.47,
      "windGust": 11.06,
      "windDirString": "SW",
      "precipProb": 82,
      "snowRate": 0.03,
      "precipRate": 0.05,
      "cloudiness": 100,
      "thunderProb": 0,
      "uvIndex": 0,
      "pressure": 998.169,
      "visibility": 25400,
      "precipType": "mixed"
    }
  ]
}
{
  "type": "object",
  "properties": {
    "forecast": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "example": "2021-12-20T10:30+01:00",
            "description": "ISO 8601 date and time"
          },
          "symbol": {
            "type": "string",
            "example": "d421",
            "description": "Weather symbol code"
          },
          "symbolPhrase": {
            "type": "string",
            "example": "wet snow showers",
            "description": "Weather description (dataset=full)"
          },
          "temperature": {
            "type": "number",
            "example": 0.5,
            "description": "Temperature (°C)"
          },
          "feelsLikeTemp": {
            "type": "number",
            "example": -4.55,
            "description": "Feels like temperature (°C)"
          },
          "relHumidity": {
            "type": "number",
            "example": 97,
            "description": "Relative humidity (%) (dataset=full)"
          },
          "dewPoint": {
            "type": "number",
            "example": 0.02,
            "description": "Dew point (°C or requested unit) (dataset=full)"
          },
          "windDir": {
            "type": "number",
            "example": 220,
            "description": "Wind direction in degrees"
          },
          "windSpeed": {
            "type": "number",
            "example": 5.47,
            "description": "Wind speed (m/s or requested unit)"
          },
          "windGust": {
            "type": "number",
            "example": 11.06,
            "description": "Wind gust speed (m/s or requested unit)"
          },
          "windDirString": {
            "type": "string",
            "example": "SW",
            "description": "Wind direction (N, NE, E, SE, S, SW, W, NW)"
          },
          "precipProb": {
            "type": "number",
            "example": 82,
            "description": "Probability of precipitation (%)"
          },
          "snowRate": {
            "type": "number",
            "example": 0.03,
            "description": "Intensity of snow rate (cm/h, taking density into account) (dataset=full)"
          },
          "precipRate": {
            "type": "number",
            "example": 0.05,
            "description": "Intensity of precipitation rate (mm/h)"
          },
          "cloudiness": {
            "type": "number",
            "example": 100,
            "description": "Cloudiness (%) (dataset=full)"
          },
          "thunderProb": {
            "type": "number",
            "example": 0,
            "description": "Thunder probability (%) (dataset=full)"
          },
          "uvIndex": {
            "type": "number",
            "example": 0,
            "description": "Ultraviolet index (dataset=full)"
          },
          "pressure": {
            "type": "number",
            "example": 998.169,
            "description": "Atmospheric pressure extrapolated to sea level (hPa) (dataset=full)"
          },
          "visibility": {
            "type": "number",
            "example": 25400,
            "description": "Visibility (m) (dataset=full)"
          },
          "precipType": {
            "type": "string",
            "example": "mixed",
            "description": "Precipitation type (always one of: rain, mixed, snow) (dataset=full)"
          }
        }
      }
    }
  }
}
Success

Hourly

Hourly forecasts, up to 7 days. The values represent the conditions at the associated timestamp unless otherwise specified.

Path Parameters

locationType: stringrequired

"Longitude,latitude" or location identifier (id) from the location endpoint

Query Parameters

periodsType: string

Number of time steps (default 24, maximum 169)

altType: string

Altitude in meters

tempunitType: string

Temperature unit: "C", "F" (default "C")

windunitType: string

Wind unit: "MS" (m/s), "KTS" (knots), "KMH" (km/h), or "MPH" (mph) (default m/s)

tzType: string

Time zone in response (IANA time zone database names)

datasetType: string

Variable set: "standard" or "full" (default "standard")

historyType: string

History: whether to include past 24 hours (1 or 0, default 0)

langType: string

Language (ISO 639-1 codes). Options: ar, bg, bn, ca, cs, da, de, el, en, en_gb = en, en_us = en, es, et, fa, fi, fr, gu, he, hi, hr, hu, id, is, it, ja, kn, ko, lt, lv, ml, nb, nl, no, pa, pl, pt = pt_pt, pt_br, pt_pt, ro, ru, sk, sq, sr, sv, ta, te, th, tr, uk, vi, zh (Simplified Chinese), zh_hk (Traditional Chinese). (default en)

roundingType: string

Rounding of some variables to nearest integer: 0 or 1 (default 1 for no decimals)

GET/api/v1/forecast/hourly/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/forecast/hourly/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "forecast": [
    {
      "time": "2021-12-20T13:00+04:00",
      "symbol": "d400",
      "symbolPhrase": "overcast",
      "temperature": -0.78,
      "feelsLikeTemp": -6,
      "windSpeed": 4.68,
      "windGust": 10.43,
      "relHumidity": 73,
      "dewPoint": -3.59,
      "windDir": 250,
      "windDirString": "W",
      "precipProb": 44,
      "precipAccum": 0.01,
      "snowAccum": 0.01,
      "cloudiness": 99,
      "thunderProb": 0,
      "uvIndex": 0,
      "pressure": 994.789,
      "visibility": 26554,
      "precipType": "snow",
      "solarRadiation": 140,
      "snowDepth": 12
    }
  ]
}
{
  "type": "object",
  "properties": {
    "forecast": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "example": "2021-12-20T13:00+04:00",
            "description": "ISO 8601 date and time"
          },
          "symbol": {
            "type": "string",
            "example": "d400",
            "description": "Weather symbol code"
          },
          "symbolPhrase": {
            "type": "string",
            "example": "overcast",
            "description": "Description of weather (dataset=full)"
          },
          "temperature": {
            "type": "number",
            "example": -0.78,
            "description": "Temperature (°C or requested unit)"
          },
          "feelsLikeTemp": {
            "type": "number",
            "example": -6,
            "description": "Feels like temperature (°C or requested unit)"
          },
          "windSpeed": {
            "type": "number",
            "example": 4.68,
            "description": "Wind speed (m/s or requested unit)"
          },
          "windGust": {
            "type": "number",
            "example": 10.43,
            "description": "Wind gust speed (m/s or requested unit)"
          },
          "relHumidity": {
            "type": "number",
            "example": 73,
            "description": "Relative humidity (%) (dataset=full)"
          },
          "dewPoint": {
            "type": "number",
            "example": -3.59,
            "description": "Dew point (°C or requested unit) (dataset=full)"
          },
          "windDir": {
            "type": "number",
            "example": 250,
            "description": "Wind direction in degrees"
          },
          "windDirString": {
            "type": "string",
            "example": "W",
            "description": "Wind direction (N, NE, E, SE, S, SW, W, NW)"
          },
          "precipProb": {
            "type": "number",
            "example": 44,
            "description": "Probability of precipitation in the 1 hour period ending at the timestamp (%)"
          },
          "precipAccum": {
            "type": "number",
            "example": 0.01,
            "description": "Accumulated 1 hour precipitation up until the timestamp (as liquid water, mm)."
          },
          "snowAccum": {
            "type": "number",
            "example": 0.01,
            "description": "Thickness of snow accumulated over 1 hour ending at the timestamp (cm) (dataset=full)"
          },
          "cloudiness": {
            "type": "number",
            "example": 99,
            "description": "Cloudiness (%) (dataset=full)"
          },
          "thunderProb": {
            "type": "number",
            "example": 0,
            "description": "Thunder probability (%) (dataset=full)"
          },
          "uvIndex": {
            "type": "number",
            "example": 0,
            "description": "Ultraviolet index (dataset=full)"
          },
          "pressure": {
            "type": "string",
            "example": 994.789,
            "description": "Pressure (hPa) (dataset=full)"
          },
          "visibility": {
            "type": "number",
            "example": 26554,
            "description": "Visibility (m) (dataset=full)"
          },
          "precipType": {
            "type": "string",
            "example": "snow",
            "description": "Precipitation type (always one of: rain, mixed, snow) (dataset=full)"
          },
          "solarRadiation": {
            "type": "number",
            "example": 140,
            "description": "Ground level solar radiation intensity on a level surface, W/m² (dataset=full)"
          },
          "snowDepth": {
            "type": "number",
            "example": 12,
            "description": "Snow depth on the ground (cm) (dataset=full)"
          }
        }
      }
    }
  }
}
Success

Three-hourly

Forecast at 3 hour intervals, up to 14 days. The values represent the conditions at the associated timestamp unless otherwise specified. Precipitation sums are for three-hour periods.

Path Parameters

locationType: stringrequired

"Longitude,latitude" or location identifier (id) from the location endpoint

Query Parameters

periodsType: string

Number of time steps (default 21, maximum 113)

altType: string

Altitude in meters

tempunitType: string

Temperature unit: "C", "F" (default "C")

windunitType: string

Wind unit: "MS" (m/s), "KTS" (knots), "KMH" (km/h), or "MPH" (mph) (default m/s)

tzType: string

Time zone in response (IANA time zone database names)

datasetType: string

Variable set: "standard" or "full" (default "standard")

historyType: string

History: whether to include past 24 hours (1 or 0, default 0)

langType: string

Language (ISO 639-1 codes). Options: ar, bg, bn, ca, cs, da, de, el, en, en_gb = en, en_us = en, es, et, fa, fi, fr, gu, he, hi, hr, hu, id, is, it, ja, kn, ko, lt, lv, ml, nb, nl, no, pa, pl, pt = pt_pt, pt_br, pt_pt, ro, ru, sk, sq, sr, sv, ta, te, th, tr, uk, vi, zh (Simplified Chinese), zh_hk (Traditional Chinese). (default en)

roundingType: string

Rounding of some variables to nearest integer: 0 or 1 (default 1 for no decimals)

GET/api/v1/forecast/3hourly/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/forecast/3hourly/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "forecast": [
    {
      "time": "2021-12-20T10:00+01:00",
      "symbol": "n400",
      "symbolPhrase": "overcast",
      "temperature": -4.1,
      "feelsLikeTemp": -9.13,
      "windSpeed": 4.2,
      "windGust": 8.66,
      "relHumidity": 78,
      "dewPoint": -7.38,
      "windDir": 273,
      "windDirString": "W",
      "precipProb": 7,
      "precipAccum": 0.01,
      "snowAccum": 0.03,
      "cloudiness": 100,
      "thunderProb": 0,
      "uvIndex": 0,
      "pressure": 1014.42,
      "visibility": 49379,
      "precipType": "snow",
      "solarRadiation": 85
    }
  ]
}
{
  "type": "object",
  "properties": {
    "forecast": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "example": "2021-12-20T10:00+01:00",
            "description": "ISO 8601 date and time"
          },
          "symbol": {
            "type": "string",
            "example": "n400",
            "description": "Weather symbol code"
          },
          "symbolPhrase": {
            "type": "string",
            "example": "overcast",
            "description": "Description of weather (dataset=full)"
          },
          "temperature": {
            "type": "number",
            "example": -4.1,
            "description": "Temperature (°C or requested unit)"
          },
          "feelsLikeTemp": {
            "type": "number",
            "example": -9.13,
            "description": "Feels like temperature (°C or requested unit)"
          },
          "windSpeed": {
            "type": "number",
            "example": 4.2,
            "description": "Wind speed (m/s or requested unit)"
          },
          "windGust": {
            "type": "number",
            "example": 8.66,
            "description": "Wind gust speed (m/s or requested unit)"
          },
          "relHumidity": {
            "type": "number",
            "example": 78,
            "description": "Relative humidity (%) (dataset=full)"
          },
          "dewPoint": {
            "type": "number",
            "example": -7.38,
            "description": "Dew point (°C or requested unit) (dataset=full)"
          },
          "windDir": {
            "type": "number",
            "example": 273,
            "description": "Wind direction in degrees"
          },
          "windDirString": {
            "type": "string",
            "example": "W",
            "description": "Wind direction (N, NE, E, SE, S, SW, W, NW)"
          },
          "precipProb": {
            "type": "number",
            "example": 7,
            "description": "Probability of precipitation in the 3 hour period ending at the timestamp (%)"
          },
          "precipAccum": {
            "type": "number",
            "example": 0.01,
            "description": "Accumulated 3 hour precipitation up until the timestamp (as liquid water, mm)."
          },
          "snowAccum": {
            "type": "number",
            "example": 0.03,
            "description": "Thickness of snow accumulated over 3 hours ending at the timestamp (cm) (dataset=full)"
          },
          "cloudiness": {
            "type": "number",
            "example": 100,
            "description": "Cloudiness (%) (dataset=full)"
          },
          "thunderProb": {
            "type": "number",
            "example": 0,
            "description": "Thunder probability (%) (dataset=full)"
          },
          "uvIndex": {
            "type": "number",
            "example": 0,
            "description": "Ultraviolet index (dataset=full)"
          },
          "pressure": {
            "type": "string",
            "example": 1014.42,
            "description": "Pressure (hPa) (dataset=full)"
          },
          "visibility": {
            "type": "number",
            "example": 49379,
            "description": "Visibility (m) (dataset=full)"
          },
          "precipType": {
            "type": "string",
            "example": "snow",
            "description": "Precipitation type (always one of: rain, mixed, snow) (dataset=full)"
          },
          "solarRadiation": {
            "type": "number",
            "example": 85,
            "description": "Ground level solar radiation intensity on a level surface, W/m² (dataset=full)"
          }
        }
      }
    }
  }
}
Success

Daily

Daily forecasts, up to 14 days.

Path Parameters

locationType: stringrequired

"Longitude,latitude" or location identifier (id) from the location endpoint

Query Parameters

periodsType: string

Number of time steps (default 7, maximum 15)

altType: string

Altitude in meters

tempunitType: string

Temperature unit: "C", "F" (default "C")

windunitType: string

Wind unit: "MS" (m/s), "KTS" (knots), "KMH" (km/h), or "MPH" (mph) (default m/s)

datasetType: string

Variable set: "standard" or "full" (default "standard")

langType: string

Language (ISO 639-1 codes). Options: ar, bg, bn, ca, cs, da, de, el, en, en_gb = en, en_us = en, es, et, fa, fi, fr, gu, he, hi, hr, hu, id, is, it, ja, kn, ko, lt, lv, ml, nb, nl, no, pa, pl, pt = pt_pt, pt_br, pt_pt, ro, ru, sk, sq, sr, sv, ta, te, th, tr, uk, vi, zh (Simplified Chinese), zh_hk (Traditional Chinese). (default en)

roundingType: string

Rounding of some variables to nearest integer: 0 or 1 (default 1 for no decimals, value 0 is recommended with dataset=full)

offset_hoursType: string

Include past data up to -48 hours

GET/api/v1/forecast/daily/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/forecast/daily/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "forecast": [
    {
      "date": "2026-08-12",
      "cloudiness": 26,
      "confidence": "g",
      "maxDewPoint": 8.52,
      "maxFeelsLikeTemp": 18.03,
      "maxRelHumidity": 85,
      "maxTemp": 18.03,
      "maxTempEnsemble": {
        "p000": 16.99,
        "p025": 17.89,
        "p050": 18.33,
        "p075": 18.66,
        "p100": 19.33
      },
      "maxWindGust": 13.02,
      "maxWindSpeed": 6.83,
      "minDewPoint": 4.35,
      "minFeelsLikeTemp": 6.71,
      "minRelHumidity": 39,
      "minTemp": 9.12,
      "minTempEnsemble": {
        "p000": 8.69,
        "p025": 9.19,
        "p050": 9.44,
        "p075": 9.69,
        "p100": 10.44
      },
      "minVisibility": 8281,
      "moonPhase": 356,
      "moonrise": "04:20:34",
      "moonset": "21:22:59",
      "precipAccum": 0.31,
      "precipAccumEnsemble": {
        "p010": 0.05,
        "p025": 0.2,
        "p050": 0.47,
        "p075": 0.88,
        "p090": 1.28
      },
      "precipProb": 39,
      "pressure": 1018.5,
      "snowAccum": 0,
      "snowDepth": 0,
      "solarRadiationSum": 5585,
      "sunhours": 12.3303,
      "sunrise": "05:25:32",
      "sunriseEpoch": 1786501532,
      "sunset": "21:24:35",
      "sunsetEpoch": 1786559075,
      "symbol": "d210",
      "symbolPhrase": "light rain",
      "uvIndex": 3.22,
      "windDir": 313
    }
  ]
}
{
  "type": "object",
  "properties": {
    "forecast": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "example": "2026-08-12",
            "description": "ISO 8601 date"
          },
          "cloudiness": {
            "type": "number",
            "example": 26,
            "description": "Daytime cloudiness average (%) (dataset=full)"
          },
          "confidence": {
            "type": "string",
            "example": "g",
            "description": "Confidence in forecast: g (green, good), y (yellow, normal), o (orange, low) (dataset=full)"
          },
          "maxDewPoint": {
            "type": "number",
            "example": 8.52,
            "description": "maximum dew point (°C) (dataset=full)"
          },
          "maxFeelsLikeTemp": {
            "type": "number",
            "example": 18.03,
            "description": "24h maximum feels-like temperature (°C) (dataset=full)"
          },
          "maxRelHumidity": {
            "type": "number",
            "example": 85,
            "description": "24h maximum relative humidity (%) (dataset=full)"
          },
          "maxTemp": {
            "type": "number",
            "example": 18.03,
            "description": "24h maximum temperature (°C) in a deterministic forecast"
          },
          "maxTempEnsemble": {
            "type": "object",
            "properties": {
              "p000": {
                "type": "number",
                "example": 16.99
              },
              "p025": {
                "type": "number",
                "example": 17.89
              },
              "p050": {
                "type": "number",
                "example": 18.33
              },
              "p075": {
                "type": "number",
                "example": 18.66
              },
              "p100": {
                "type": "number",
                "example": 19.33
              }
            },
            "description": "A collection of values (°C) below which certain percentages (p000 for 0%, p025 for 25%,...) of 24h maximum temperatures of ensemble members of a probabilistic forecast are (dataset=full)"
          },
          "maxWindGust": {
            "type": "number",
            "example": 13.02,
            "description": "Maximum wind gust speed (m/s or requested unit) (dataset=full)"
          },
          "maxWindSpeed": {
            "type": "number",
            "example": 6.83,
            "description": "Maximum wind speed (m/s or requested unit)"
          },
          "minDewPoint": {
            "type": "number",
            "example": 4.35,
            "description": "minimum dew point (°C, dataset=full)"
          },
          "minFeelsLikeTemp": {
            "type": "number",
            "example": 6.71,
            "description": "24h minimum feels-like temperature (°C) (dataset=full)"
          },
          "minRelHumidity": {
            "type": "number",
            "example": 39,
            "description": "24h minimum relative humidity (%) (dataset=full)"
          },
          "minTemp": {
            "type": "number",
            "example": 9.12,
            "description": "24h minimum temperature (°C) in a deterministic forecast"
          },
          "minTempEnsemble": {
            "type": "object",
            "properties": {
              "p000": {
                "type": "number",
                "example": 8.69
              },
              "p025": {
                "type": "number",
                "example": 9.19
              },
              "p050": {
                "type": "number",
                "example": 9.44
              },
              "p075": {
                "type": "number",
                "example": 9.69
              },
              "p100": {
                "type": "number",
                "example": 10.44
              }
            },
            "description": "A collection of values (°C) below which certain percentages (p000 for 0%, p025 for 25%,...) of 24h minimum temperatures of ensemble members of a probabilistic forecast are (dataset=full)"
          },
          "minVisibility": {
            "type": "number",
            "example": 8281,
            "description": "Minimum visibility (m) (dataset=full)"
          },
          "moonPhase": {
            "type": "number",
            "example": 356,
            "description": "Phase of moon at midday (degrees) (dataset=full)"
          },
          "moonrise": {
            "type": "string",
            "example": "04:20:34",
            "description": "Moonrise time of day in local time (dataset=full)"
          },
          "moonset": {
            "type": "string",
            "example": "21:22:59",
            "description": "Moonset time of day in local time (dataset=full)"
          },
          "precipAccum": {
            "type": "number",
            "example": 0.31,
            "description": "Accumulated precipitation (as liquid water, mm) in a deterministic forecast"
          },
          "precipAccumEnsemble": {
            "type": "object",
            "properties": {
              "p010": {
                "type": "number",
                "example": 0.05
              },
              "p025": {
                "type": "number",
                "example": 0.2
              },
              "p050": {
                "type": "number",
                "example": 0.47
              },
              "p075": {
                "type": "number",
                "example": 0.88
              },
              "p090": {
                "type": "number",
                "example": 1.28
              }
            },
            "description": "A collection of values (mm) below which certain percentages (p010 for 10%, p025 for 25%,...) of 24h precipitation accumulations of ensemble members of a probabilistic forecast are (dataset=full)"
          },
          "precipProb": {
            "type": "number",
            "example": 39,
            "description": "Precipitation probability during the day (%) (dataset=full)"
          },
          "pressure": {
            "type": "number",
            "example": 1018.5,
            "description": "Daytime average sea level pressure (hPa) (dataset=full)"
          },
          "snowAccum": {
            "type": "number",
            "example": 0,
            "description": "Accumulated snow (thickness of precipitated snow, cm) (dataset=full)"
          },
          "snowDepth": {
            "type": "number",
            "example": 0,
            "description": "Thickness of snow on the ground (cm)"
          },
          "solarRadiationSum": {
            "type": "number",
            "example": 5585,
            "description": "Ground level solar radiation on a level surface, sum over the entire day (Wh/m²) (dataset=full)"
          },
          "sunhours": {
            "type": "number",
            "example": 12.3303,
            "description": "Sum of sunlight hours over the entire day (hours, dataset=full)"
          },
          "sunrise": {
            "type": "string",
            "example": "05:25:32",
            "description": "Sunrise time of day in local time (dataset=full)"
          },
          "sunriseEpoch": {
            "type": "number",
            "example": 1786501532,
            "description": "Sunrise time in Unix time (dataset=full)"
          },
          "sunset": {
            "type": "string",
            "example": "21:24:35",
            "description": "Sunset time of day in local time (dataset=full)"
          },
          "sunsetEpoch": {
            "type": "number",
            "example": 1786559075,
            "description": "Sunset time in Unix time (dataset=full)"
          },
          "symbol": {
            "type": "string",
            "example": "d210",
            "description": "Weather symbol code representing daytime conditions (7am to 6pm local time)"
          },
          "symbolPhrase": {
            "type": "string",
            "example": "light rain",
            "description": "Description of weather during the day (dataset=full)"
          },
          "uvIndex": {
            "type": "number",
            "example": 3.22,
            "description": "Maximum ultraviolet index (dataset=full)"
          },
          "windDir": {
            "type": "number",
            "example": 313,
            "description": "Wind direction at maximum wind speed (degrees)"
          }
        }
      }
    }
  }
}
Success

Weather Maps

Visualize weather anywhere in the world with high-quality map layers for radar, satellite, precipitation, cloudiness, temperature, wind and more. Tiles are 256x256 PNGs compatible with common map libraries such as OpenStreetMap, Leaflet, MapLibre and Google Maps. All required and optional parameters are given as path and query parameters respectively.

To obtain images one must first request an access token using valid credentials. The access token can then be used to fetch capabilities-response, which contains information on how to fetch images.

Image size is 256x256 pixels. Precipitation types on radar layers include rain, sleet, and snow.

Available standard map layers

43+ standard layers are available — precipitation radar, satellite, temperature, wind, air quality, pollen and more — across global and regional coverage. Each is served as 256×256 tiles.

Zoom levels correspond to Google Maps zoom levels. Global region latitudes: minLat: -73, maxLat: 73, minLon: -180, maxLon: 180

The Map API delivers maps as a grid of individual images called tiles. Usage is measured based on the number of tiles served to your application — each tile counts as one API request.

To significantly reduce the amount of data your browser requests and speed up map loading, we recommend caching map tiles. This means your browser will temporarily store recently viewed map sections. The duration of this storage depends on how often the map data updates. For example, frequently changing data like radar updates are cached for shorter periods than less frequent updates like temperature. By caching, you'll experience faster map performance and lower data usage.

Capabilities

Capabilities endpoint is used to fetch layer metadata. This metadata is used to perform image queries. Capabilities-response provides layer information such as description, temporal and spatial extents as well as available color schemes.

Images are layers renderable to image formats such as png or svg. The current data property in time element is the index to the most recent available time.

Image products may have additional color schemes which can be optionally specified. Several layers have transparency in the color scheme by default, enabling them to be overlaid directly onto a map. Alternatively, we also offer non-transparent color schemes when only the details of the map – like country borders, roads and city names – are to be placed on top of the weather layer. If an alternative color scheme is available, you can find it in the capabilities endpoint.

Query Parameters

tokenType: stringrequired

Access token as provided by authorization endpoint

GET/api/v1/capabilitiesShell Curl
curl 'https://weatherapi.foreca.net/api/v1/capabilities' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "images": [
    {
      "id": 2,
      "attribution": null,
      "title": "Temperature",
      "description": "Global surface temperature",
      "formats": [
        "image/png"
      ],
      "colorschemes": [
        "default"
      ],
      "times": {
        "updated": "2022-01-27T00:00:00Z",
        "available": [
          "2022-01-27T06:00:00Z"
        ],
        "current": 33
      },
      "analysis": "20240222000000",
      "extent": {
        "minLat": -90,
        "maxLat": 90,
        "minLon": -180,
        "maxLon": 180,
        "minZoom": 2,
        "maxZoom": 14
      }
    }
  ]
}
{
  "type": "object",
  "properties": {
    "images": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": 2
          },
          "attribution": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "example": "Temperature"
          },
          "description": {
            "type": "string",
            "example": "Global surface temperature"
          },
          "formats": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "image/png"
            }
          },
          "colorschemes": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "default"
            }
          },
          "times": {
            "type": "object",
            "properties": {
              "updated": {
                "type": "string",
                "example": "2022-01-27T00:00:00Z"
              },
              "available": {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "2022-01-27T06:00:00Z"
                }
              },
              "current": {
                "type": "number",
                "example": 33
              }
            }
          },
          "analysis": {
            "type": "string",
            "example": "20240222000000"
          },
          "extent": {
            "type": "object",
            "properties": {
              "minLat": {
                "type": "number",
                "example": -90
              },
              "maxLat": {
                "type": "number",
                "example": 90
              },
              "minLon": {
                "type": "number",
                "example": -180
              },
              "maxLon": {
                "type": "number",
                "example": 180
              },
              "minZoom": {
                "type": "number",
                "example": 2
              },
              "maxZoom": {
                "type": "number",
                "example": 14
              }
            }
          }
        }
      }
    }
  }
}
Success

Tile

Tile endpoint is used to obtain weather map tiles (size 256x256) for the given layer and color scheme.

Example response

Example response

Path Parameters

idType: stringrequired

Layer id

xType: stringrequired

X index of the requested tile

yType: stringrequired

Y index of the requested tile

zType: stringrequired

Zoom level of the requested tile

timeType: stringrequired

UTC timestamp value for the data to retrieve in ISO 8601 format. Must appear in the available times list

Query Parameters

tokenType: stringrequired

Access token as provided by authorization endpoint

colorschemeType: string

Layer color scheme. Must appear in the color scheme list returned by capabilities endpoint

updatedType: string

Include the updated timestamp as an optional query parameter when requesting rapidly updating layers to prevent fetching tiles from outdated analyses.

analysesType: string

Include the analyses timestamps as an optional query parameter when requesting rapidly updating radar layers to prevent fetching tiles from outdated analyses

windunitType: string

Wind speed unit on the wind symbol map layer. Supported values: ms (m/s, the default), knots, kmh (km/hour), or mph (miles/hour).

GET/api/v1/image/tile/{z}/{x}/{y}/{time}/{id}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/image/tile/{z}/{x}/{y}/{time}/{id}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
A PNG image.

Symbol

Symbol endpoint serves compact multi‑location forecast "symbol tiles" for three modes: current, hourly, and daily. Parameters x, y and z have the same meaning as in the Tile endpoint. Symbol endpoint returns a JSON tile with per‑location current or forecast timesteps including temperature and weather symbol codes, designed for use as map overlays with minimal payload.

Path Parameters

modeType: stringrequired

One of: "current" for the nearest full hour, or "hourly" or "daily" for forecasts. The forecasts cover five days, that is, 120 hourly or 5 daily timesteps

Query Parameters

xType: stringrequired

X index of the requested JSON tile

yType: stringrequired

Y index of the requested JSON tile

zType: stringrequired

Zoom level of the requested JSON tile. Valid range: 3..12

unitsType: string

Use units=C for Celsius or units=F for Fahrenheit. Default: units=C

wrapType: string

Use wrap=1 for automatic horizontal wrapping of tiles. It makes x = x % (max(x) + 1), where max(x) is the maximum x on the selected zoom level (z). Default: wrap=0

GET/api/v1/symbol/{mode}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/symbol/{mode}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "locations": [
    {
      "city": "Tampere",
      "id": 100634963,
      "lat": "61.499114990",
      "lon": "23.787117004",
      "timesteps": [
        {
          "symbol": "n400",
          "temperature": 4.72,
          "time": "2025-12-03T14:00"
        }
      ]
    }
  ]
}
{
  "type": "object",
  "properties": {
    "locations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "example": "Tampere",
            "description": "City name"
          },
          "id": {
            "type": "number",
            "example": 100634963,
            "description": "Location id"
          },
          "lat": {
            "type": "number",
            "example": "61.499114990",
            "description": "Latitude (decimal degrees)"
          },
          "lon": {
            "type": "number",
            "example": "23.787117004",
            "description": "Longitude (decimal degrees)"
          },
          "timesteps": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "symbol": {
                  "type": "string",
                  "example": "n400",
                  "description": "Weather symbol code (see symbol codes in \"Resources\")"
                },
                "temperature": {
                  "type": "number",
                  "example": 4.72,
                  "description": "Air temperature (units according to units parameter)"
                },
                "time": {
                  "type": "string",
                  "example": "2025-12-03T14:00",
                  "description": "UTC date and time (for current or hourly mode), or date (for daily mode) of the JSON tile, in ISO 8601 format"
                }
              }
            },
            "description": "Array of timestep objects (length depends on mode)"
          }
        }
      }
    }
  }
}
Success

Legend

Legend endpoint is used to obtain legend image for a color scheme

Example response

Example response

Path Parameters

colorschemeType: stringrequired

Color scheme id. Must appear in the color scheme list returned by capabilities endpoint

idType: stringrequired

Layer id

Query Parameters

tokenType: stringrequired

Access token as provided by authorization endpoint

GET/api/v1/legend/{colorscheme}/{id}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/legend/{colorscheme}/{id}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
A PNG image.

Air Quality

Air quality forecasts: an air quality index (AQI) that summarizes air pollution taking into account multiple components (carbon monoxide, nitrogen dioxide, ozone, sulfur dioxide and particulate matter). The forecast is based on observations and numerical modeling, resulting in AQI values calculated based on the United States EPA standard.

Hourly

Hourly air quality forecasts.

Path Parameters

locationType: stringrequired

"Longitude, latitude" or location identifier (id) from the location endpoint

Query Parameters

periodsType: string

Number of time steps (default 24, maximum 85)

tzType: string

Time zone in response (IANA time zone database names)

langType: string

Language (ISO 639-1 codes). Options: ar, bg, cs, da, de, el, en, et, es, fa, fi, fr, hi, hr, hu, id, is, it, ja, ko, lt, lv, nl, no, pl, pt, ro, ru, sk, sr, sv, ta, th, tr, uk, vi, zh (Simplified Chinese), zh_hk (Traditional Chinese). (default en)

GET/api/v1/air-quality/forecast/hourly/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/air-quality/forecast/hourly/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "forecast": [
    {
      "time": "2022-02-03T10:00Z",
      "pollutant": "Particulate matter <2.5um",
      "pollutantPhrase": "Particulate matter <2.5 µm",
      "AQI": 102,
      "AQI_CO": 8,
      "AQI_NO2": 6,
      "AQI_O3": 24,
      "AQI_SO2": 4,
      "AQI_PM10": 64,
      "AQI_PM2P5": 102
    }
  ]
}
{
  "type": "object",
  "properties": {
    "forecast": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "example": "2022-02-03T10:00Z",
            "description": "ISO 8601 date and time"
          },
          "pollutant": {
            "type": "string",
            "example": "Particulate matter <2.5um",
            "description": "Most significant pollution type (\"Carbon monoxide\", \"Nitrogen dioxide\", \"Ozone\", \"Particulate matter <10um\", \"Particulate matter <2.5um\", \"Sulphur dioxide\")"
          },
          "pollutantPhrase": {
            "type": "string",
            "example": "Particulate matter <2.5 µm",
            "description": "Description of most significant pollution type in given language (e.g. \"Carbon monoxide\", \"Nitrogen dioxide\", \"Ozone\", \"Particulate matter <10 μm\", \"Particulate matter <2.5 μm\" or \"Sulphur dioxide\")"
          },
          "AQI": {
            "type": "number",
            "example": 102,
            "description": "General AQI: lower is better"
          },
          "AQI_CO": {
            "type": "number",
            "example": 8,
            "description": "AQI based on carbon monoxide"
          },
          "AQI_NO2": {
            "type": "number",
            "example": 6,
            "description": "AQI based on nitrogen dioxide"
          },
          "AQI_O3": {
            "type": "number",
            "example": 24,
            "description": "AQI based on ozone"
          },
          "AQI_SO2": {
            "type": "number",
            "example": 4,
            "description": "AQI based on sulfur dioxide"
          },
          "AQI_PM10": {
            "type": "number",
            "example": 64,
            "description": "AQI based on particulate matter (PM10)"
          },
          "AQI_PM2P5": {
            "type": "number",
            "example": 102,
            "description": "AQI based on particulate matter (PM2.5)"
          }
        }
      }
    }
  }
}
Success

Daily

Daily air quality forecasts.

Path Parameters

locationType: stringrequired

"Longitude, latitude" or location identifier (id) from the location endpoint

Query Parameters

periodsType: string

Number of time steps (default 3, maximum 4)

langType: string

Language (ISO 639-1 codes). Options: ar, bg, cs, da, de, el, en, et, es, fa, fi, fr, hi, hr, hu, id, is, it, ja, ko, lt, lv, nl, no, pl, pt, ro, ru, sk, sr, sv, ta, th, tr, uk, vi, zh (Simplified Chinese), zh_hk (Traditional Chinese). (default en)

GET/api/v1/air-quality/forecast/daily/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/air-quality/forecast/daily/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "forecast": [
    {
      "date": "2022-02-03",
      "AQI": 111,
      "pollutant": "Particulate matter <2.5um",
      "pollutantPhrase": "Particulate matter <2.5 µm",
      "AQI_CO": 7,
      "AQI_NO2": 48,
      "AQI_GO3": 71,
      "AQI_SO2": 59,
      "AQI_PM2P5": 111,
      "AQI_PM10": 66
    }
  ]
}
{
  "type": "object",
  "properties": {
    "forecast": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "example": "2022-02-03",
            "description": "ISO 8601 date"
          },
          "AQI": {
            "type": "number",
            "example": 111,
            "description": "General AQI: lower is better"
          },
          "pollutant": {
            "type": "string",
            "example": "Particulate matter <2.5um",
            "description": "Most significant pollution type (\"Carbon monoxide\", \"Nitrogen dioxide\", \"Ozone\", \"Particulate matter <10um\", \"Particulate matter <2.5um\", \"Sulphur dioxide\")"
          },
          "pollutantPhrase": {
            "type": "string",
            "example": "Particulate matter <2.5 µm",
            "description": "Description of most significant pollution type in given language (e.g. \"Carbon monoxide\", \"Nitrogen dioxide\", \"Ozone\", \"Particulate matter <10 μm\", \"Particulate matter <2.5 μm\" or \"Sulphur dioxide\")"
          },
          "AQI_CO": {
            "type": "number",
            "example": 7,
            "description": "AQI based on carbon monoxide"
          },
          "AQI_NO2": {
            "type": "number",
            "example": 48,
            "description": "AQI based on nitrogen dioxide"
          },
          "AQI_GO3": {
            "type": "number",
            "example": 71,
            "description": "AQI based on ozone"
          },
          "AQI_SO2": {
            "type": "number",
            "example": 59,
            "description": "AQI based on sulfur dioxide"
          },
          "AQI_PM2P5": {
            "type": "number",
            "example": 111,
            "description": "AQI based on particulate matter (PM2.5)"
          },
          "AQI_PM10": {
            "type": "number",
            "example": 66,
            "description": "AQI based on particulate matter (PM10)"
          }
        }
      }
    }
  }
}
Success

Pollen Forecasts

Pollen forecasts are made using numerical modeling and observational data. The pollen concentrations are described with pollen grains per cubic meter of air (grains/m3).

Pollen forecasts for the following species are available in the Pollen API: alder, birch, grass, mugwort, olive and ragweed. The pollen forecasts are currently available only for Europe.

Pollen rating

How people react to various amounts of pollen varies enormously. It may depend on the species of pollen, the location, or other individual factors. This pollen rating system provides some indication of the pollen concentration, but the classification is general in nature and subject to significant individual variation. The pollen rating has five different levels, and each level is described by an index ranging from 0 to 4.

Pollen rating

0 = no pollen (or very little) — NOTE! not equal to 0 grains/m3, No pollen is reported when the amount of pollen is less than 0.2 grains/m3 for all pollen types.

1 = low — Low pollen is indicated when the amount of pollen is less than 10 grains/m3 for all pollen types.

2 = moderate — Moderate pollen varies for the pollen type. For alder, birch and olive, moderate pollen is indicated for pollen concentrations below 100 grains/m3. For grass and ragweed, moderate pollen is indicated for pollen concentrations below 30 grains/m3 and for mugwort pollen, moderate levels are indicated for concentrations below 50 grains/m3.

3 = high — High pollen varies for the pollen type. For alder, birch and olive, high pollen is indicated for pollen concentrations below or equal to 500 grains/m3. For grass, ragweed and mugwort, high pollen is indicated for pollen concentrations below or equal to 100 grains/m3.

4 = very high — When the pollen concentration is above 500 grains/m3 for alder, birch and olive, very high pollen is indicated. For grass, ragweed and mugwort, very high pollen is indicated for pollen concentrations above 100 grains/m3.

Hourly

Hourly pollen forecasts.

Path Parameters

locationType: stringrequired

"Longitude, latitude" or location identifier (id) from the location endpoint

Query Parameters

periodsType: string

Number of time steps (default 24, maximum 85)

tzType: string

Time zone in response (IANA time zone database names)

GET/api/v1/pollen/forecast/hourly/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/pollen/forecast/hourly/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "forecast": [
    {
      "time": "2023-03-28T14:00+02:00",
      "alder": 1,
      "birch": 0,
      "grass": 1,
      "mugwort": 0,
      "olive": 0,
      "ragweed": 0,
      "alder_m3": 0.3,
      "birch_m3": 0.1,
      "grass_m3": 0.325,
      "mugwort_m3": 0,
      "olive_m3": 0,
      "ragweed_m3": 0
    }
  ]
}
{
  "type": "object",
  "properties": {
    "forecast": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "example": "2023-03-28T14:00+02:00"
          },
          "alder": {
            "type": "number",
            "example": 1
          },
          "birch": {
            "type": "number",
            "example": 0
          },
          "grass": {
            "type": "number",
            "example": 1
          },
          "mugwort": {
            "type": "number",
            "example": 0
          },
          "olive": {
            "type": "number",
            "example": 0
          },
          "ragweed": {
            "type": "number",
            "example": 0
          },
          "alder_m3": {
            "type": "number",
            "example": 0.3
          },
          "birch_m3": {
            "type": "number",
            "example": 0.1
          },
          "grass_m3": {
            "type": "number",
            "example": 0.325
          },
          "mugwort_m3": {
            "type": "number",
            "example": 0
          },
          "olive_m3": {
            "type": "number",
            "example": 0
          },
          "ragweed_m3": {
            "type": "number",
            "example": 0
          }
        }
      }
    }
  }
}
Success

Daily

Daily pollen forecasts.

Path Parameters

locationType: stringrequired

"Longitude, latitude" or location identifier (id) from the location endpoint

Query Parameters

periodsType: string

Number of time steps (default 3, maximum 4)

GET/api/v1/pollen/forecast/daily/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/pollen/forecast/daily/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "forecast": [
    {
      "date": "2023-03-29",
      "alder": 1,
      "birch": 1,
      "grass": 1,
      "mugwort": 0,
      "olive": 0,
      "ragweed": 0,
      "alder_m3": 0.2,
      "birch_m3": 0.65,
      "grass_m3": 0.45,
      "mugwort_m3": 0,
      "olive_m3": 0,
      "ragweed_m3": 0
    }
  ]
}
{
  "type": "object",
  "properties": {
    "forecast": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "example": "2023-03-29",
            "description": "ISO 8601 date"
          },
          "alder": {
            "type": "number",
            "example": 1
          },
          "birch": {
            "type": "number",
            "example": 1
          },
          "grass": {
            "type": "number",
            "example": 1
          },
          "mugwort": {
            "type": "number",
            "example": 0
          },
          "olive": {
            "type": "number",
            "example": 0
          },
          "ragweed": {
            "type": "number",
            "example": 0
          },
          "alder_m3": {
            "type": "number",
            "example": 0.2
          },
          "birch_m3": {
            "type": "number",
            "example": 0.65
          },
          "grass_m3": {
            "type": "number",
            "example": 0.45
          },
          "mugwort_m3": {
            "type": "number",
            "example": 0
          },
          "olive_m3": {
            "type": "number",
            "example": 0
          },
          "ragweed_m3": {
            "type": "number",
            "example": 0
          }
        }
      }
    }
  }
}
Success

Climate Data

Understand today's weather in context with long-term climate averages. Monthly and daily normals computed over the 30-year period 1991-2020: average, minimum and maximum temperature, precipitation sums and rain days, plus sea surface temperature.

Monthly climate

Averages and other summary weather statistics, by month. The values are based on a 30-year period 1991-2020.

Path Parameters

locationType: stringrequired

"Longitude,latitude" or location identifier (id) from the location endpoint

Query Parameters

tempunitType: string

Temperature unit: "C", "F" (default "C")

GET/api/v1/climate/monthly/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/climate/monthly/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "climate": [
    {
      "month": "01",
      "dayMaxTemp": -0.76,
      "dayMinTemp": -5.68,
      "dayAvgTemp": -3.2,
      "precipSum": 55.17,
      "dailyPrecip": 1.78,
      "rainDays": 19.09,
      "frostDays": 26.42,
      "seaSurfaceTemp": 0.85
    }
  ]
}
{
  "type": "object",
  "properties": {
    "climate": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "month": {
            "type": "string",
            "example": "01",
            "description": "Month of year"
          },
          "dayMaxTemp": {
            "type": "number",
            "example": -0.76,
            "description": "Daily maximum temperature"
          },
          "dayMinTemp": {
            "type": "number",
            "example": -5.68,
            "description": "Daily minimum temperature"
          },
          "dayAvgTemp": {
            "type": "number",
            "example": -3.2,
            "description": "Daily average temperature"
          },
          "precipSum": {
            "type": "number",
            "example": 55.17,
            "description": "Precipitation sum (mm)"
          },
          "dailyPrecip": {
            "type": "number",
            "example": 1.78,
            "description": "Precipitation accumulation during a day (mm)"
          },
          "rainDays": {
            "type": "number",
            "example": 19.09,
            "description": "Number of rain days in month (≥0.1 mm of precipitation)"
          },
          "frostDays": {
            "type": "number",
            "example": 26.42,
            "description": "Number of frost days in month"
          },
          "seaSurfaceTemp": {
            "type": "number or null",
            "example": 0.85,
            "description": "Average sea surface temperature, null outside seas or coastal areas"
          }
        }
      }
    }
  }
}
Success

Daily climate

Temperature statistics of a given day in a location. The values are 15-day central moving averages of 30-year averages of daily values during 1991-2020.

Path Parameters

locationType: stringrequired

"Longitude,latitude" or location identifier (id) from the location endpoint

Query Parameters

monthdayType: stringrequired

"month-day" as two two-digit numbers, separated by a dash, e.g., 05-27 for May 27

tempunitType: string

Temperature unit: "C", "F" (default "C")

GET/api/v1/climate/daily/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/climate/daily/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "climate": [
    {
      "month": "01",
      "day": "12",
      "avgMinTemp": -4.53,
      "avgTemp": -2.77,
      "avgMaxTemp": -0.87
    }
  ]
}
{
  "type": "object",
  "properties": {
    "climate": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "month": {
            "type": "string",
            "example": "01",
            "description": "Month of year"
          },
          "day": {
            "type": "string",
            "example": "12",
            "description": "Day of the month"
          },
          "avgMinTemp": {
            "type": "number",
            "example": -4.53,
            "description": "Average minimum temperature of the day"
          },
          "avgTemp": {
            "type": "number",
            "example": -2.77,
            "description": "Average temperature of the day"
          },
          "avgMaxTemp": {
            "type": "number",
            "example": -0.87,
            "description": "Average maximum temperature of the day"
          }
        }
      }
    }
  }
}
Success

Weather History

Weather History API provides observational weather information from the past by showing measured weather parameters in a certain location at a specific date. The API delivers all the measured weather parameters as both daily summary values and hourly values. The queries can be made based on a given day and coordinate point.

The API will respond with observational data from the nearest relevant weather station or from weather forecast model data (augmented observation). Augmented observations are provided when the closest weather station with sufficient observations is too far away to give representative information.

History data is available from January 2009.

Weather History Operations

Point history

Path Parameters

your_endpoint_idType: stringrequired

path segment

Query Parameters

lonType: stringrequired

Longitude

latType: stringrequired

Latitude

dateType: stringrequired

Date in YYYYMMDD format

daysType: string

Feature: number of days returned, starting at "date" (default 1, maximum 14)

tempunitType: string

Temperature unit (F, C; default C)

windunitType: string

Wind unit (MS, KTS, KMH, MPH, BFT; default MS)

precunitType: string

Precipitation unit (MM, IN)

langType: string

Language (ISO 639-1 codes). Options: de, en, es, fr, it, pl, ru, fi, sv, nl, ko, pt, th, tr, zh, zh_TW (Chinese in Taiwan), zh_CN (Chinese in China). (default en)

optparamsType: string

Optional parameters to include in the response. Currently supported: "station" - includes the weather station name and coordinates from which the observations originate.

GET/{your_endpoint_id}/json.phpShell Curl
curl 'https://fhw.foreca.com/{your_endpoint_id}/json.php' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "station": {
    "name": "Tholen Wp",
    "lon": 4.2,
    "lat": 51.48
  },
  "hourly": {
    "date": {
      "pretty": "00:00 on January 23, 2016",
      "year": "2016",
      "month": "01",
      "day": "23",
      "hour": "00",
      "min": "00",
      "tz": "Europe/Amsterdam"
    },
    "utcdate": {
      "iso8601": "2016-01-22T23:00",
      "year": "2016",
      "month": "01",
      "day": "22",
      "hour": "23",
      "min": "00",
      "tz": "UTC"
    },
    "observations": [
      {
        "dt": {
          "pretty": "00:00 on January 23, 2016",
          "year": "2016",
          "month": "01",
          "day": "23",
          "hour": "00",
          "min": "00",
          "tz": "Europe/Amsterdam"
        },
        "dtu": {
          "iso8601": "2016-01-22T23:00",
          "year": "2016",
          "month": "01",
          "day": "22",
          "hour": "23",
          "min": "00",
          "tz": "UTC"
        },
        "t": "5.7",
        "d": "5.6",
        "rh": "99",
        "ws": "4",
        "gust": "4",
        "wd": "230",
        "wn": "southwest",
        "v": "400",
        "p": "1022.2",
        "tf": "3",
        "pr1": "",
        "sT": "Haze",
        "s": "600",
        "fog": "1",
        "rain": "0",
        "snow": "0",
        "hail": "0",
        "thunder": "0",
        "tornado": "0"
      }
    ]
  },
  "dailysummary": {
    "dt": {
      "pretty": "00:00 on January 23, 2016",
      "year": "2016",
      "month": "01",
      "day": "23",
      "hour": "00",
      "min": "00",
      "tz": "Europe/Amsterdam"
    },
    "fog": "1",
    "rain": "0",
    "snow": "0",
    "snowfall": "",
    "snowfallmonthtodate": "",
    "snowfallsincejul1": "",
    "snowdepth": "",
    "hail": "0",
    "thunder": "0",
    "tornado": "0",
    "ta": "6.2",
    "da": "5.6",
    "pa": "1029.7",
    "wsa": "3.5",
    "wna": "north",
    "wda": "219",
    "va": "4857",
    "rha": "96",
    "tx": "8",
    "tn": "4",
    "rhx": "100",
    "rhn": "87",
    "dx": "7",
    "dn": "4",
    "px": "1033.5",
    "pn": "1022.2",
    "wsx": "5",
    "wsn": "2",
    "vx": "10600",
    "vn": "390",
    "pr24": "",
    "prtype": "noprec"
  }
}
{
  "type": "object",
  "properties": {
    "station": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Tholen Wp"
        },
        "lon": {
          "type": "number",
          "example": 4.2
        },
        "lat": {
          "type": "number",
          "example": 51.48
        }
      },
      "description": "Weather station information (included when optparams=station). Contains name (string), lon (number) and lat (number)."
    },
    "hourly": {
      "type": "object",
      "properties": {
        "date": {
          "type": "object",
          "properties": {
            "pretty": {
              "type": "string",
              "example": "00:00 on January 23, 2016"
            },
            "year": {
              "type": "string",
              "example": "2016"
            },
            "month": {
              "type": "string",
              "example": "01"
            },
            "day": {
              "type": "string",
              "example": "23"
            },
            "hour": {
              "type": "string",
              "example": "00"
            },
            "min": {
              "type": "string",
              "example": "00"
            },
            "tz": {
              "type": "string",
              "example": "Europe/Amsterdam"
            }
          }
        },
        "utcdate": {
          "type": "object",
          "properties": {
            "iso8601": {
              "type": "string",
              "example": "2016-01-22T23:00"
            },
            "year": {
              "type": "string",
              "example": "2016"
            },
            "month": {
              "type": "string",
              "example": "01"
            },
            "day": {
              "type": "string",
              "example": "22"
            },
            "hour": {
              "type": "string",
              "example": "23"
            },
            "min": {
              "type": "string",
              "example": "00"
            },
            "tz": {
              "type": "string",
              "example": "UTC"
            }
          }
        },
        "observations": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "dt": {
                "type": "object",
                "properties": {
                  "pretty": {
                    "type": "string",
                    "example": "00:00 on January 23, 2016"
                  },
                  "year": {
                    "type": "string",
                    "example": "2016"
                  },
                  "month": {
                    "type": "string",
                    "example": "01"
                  },
                  "day": {
                    "type": "string",
                    "example": "23"
                  },
                  "hour": {
                    "type": "string",
                    "example": "00"
                  },
                  "min": {
                    "type": "string",
                    "example": "00"
                  },
                  "tz": {
                    "type": "string",
                    "example": "Europe/Amsterdam"
                  }
                }
              },
              "dtu": {
                "type": "object",
                "properties": {
                  "iso8601": {
                    "type": "string",
                    "example": "2016-01-22T23:00"
                  },
                  "year": {
                    "type": "string",
                    "example": "2016"
                  },
                  "month": {
                    "type": "string",
                    "example": "01"
                  },
                  "day": {
                    "type": "string",
                    "example": "22"
                  },
                  "hour": {
                    "type": "string",
                    "example": "23"
                  },
                  "min": {
                    "type": "string",
                    "example": "00"
                  },
                  "tz": {
                    "type": "string",
                    "example": "UTC"
                  }
                }
              },
              "t": {
                "type": "string",
                "example": "5.7",
                "description": "Temperature"
              },
              "d": {
                "type": "string",
                "example": "5.6",
                "description": "Dew point"
              },
              "rh": {
                "type": "string",
                "example": "99",
                "description": "Relative humidity (%)"
              },
              "ws": {
                "type": "string",
                "example": "4",
                "description": "Wind speed"
              },
              "gust": {
                "type": "string",
                "example": "4",
                "description": "Wind gust speed"
              },
              "wd": {
                "type": "string",
                "example": "230",
                "description": "Wind direction in degrees"
              },
              "wn": {
                "type": "string",
                "example": "southwest",
                "description": "Wind direction (N, NE, E, SE, S, SW, W, NW)"
              },
              "v": {
                "type": "string",
                "example": "400",
                "description": "visibility in meters, e.g. \"10000\" for 10 km"
              },
              "p": {
                "type": "string",
                "example": "1022.2",
                "description": "Atmospheric pressure normalized to sea level (hPa)"
              },
              "tf": {
                "type": "string",
                "example": "3",
                "description": "Feels like temperature"
              },
              "pr1": {
                "type": "string",
                "example": "",
                "description": "1 hour accumulated precipitation"
              },
              "sT": {
                "type": "string",
                "example": "Haze",
                "description": "symbol text"
              },
              "s": {
                "type": "string",
                "example": "600",
                "description": "Weather symbol code"
              },
              "fog": {
                "type": "string",
                "example": "1",
                "description": "Whether there was fog"
              },
              "rain": {
                "type": "string",
                "example": "0",
                "description": "Whether there was rain"
              },
              "snow": {
                "type": "string",
                "example": "0",
                "description": "Whether there was snow or sleet"
              },
              "hail": {
                "type": "string",
                "example": "0",
                "description": "Whether there was hail"
              },
              "thunder": {
                "type": "string",
                "example": "0",
                "description": "Whether there was thunder"
              },
              "tornado": {
                "type": "string",
                "example": "0",
                "description": "Whether there were tornadoes"
              }
            }
          }
        }
      }
    },
    "dailysummary": {
      "type": "object",
      "properties": {
        "dt": {
          "type": "object",
          "properties": {
            "pretty": {
              "type": "string",
              "example": "00:00 on January 23, 2016"
            },
            "year": {
              "type": "string",
              "example": "2016"
            },
            "month": {
              "type": "string",
              "example": "01"
            },
            "day": {
              "type": "string",
              "example": "23"
            },
            "hour": {
              "type": "string",
              "example": "00"
            },
            "min": {
              "type": "string",
              "example": "00"
            },
            "tz": {
              "type": "string",
              "example": "Europe/Amsterdam"
            }
          }
        },
        "fog": {
          "type": "string",
          "example": "1",
          "description": "Whether there was fog"
        },
        "rain": {
          "type": "string",
          "example": "0",
          "description": "Whether there was rain"
        },
        "snow": {
          "type": "string",
          "example": "0",
          "description": "Whether there was snow or sleet"
        },
        "snowfall": {
          "type": "string",
          "example": "",
          "description": "Accumulated snowfall (cm)"
        },
        "snowfallmonthtodate": {
          "type": "string",
          "example": "",
          "description": "Accumulated snowfall month-to-date"
        },
        "snowfallsincejul1": {
          "type": "string",
          "example": "",
          "description": "Accumulated snowfall since last July 1st"
        },
        "snowdepth": {
          "type": "string",
          "example": "",
          "description": "Snow depth (cm)"
        },
        "hail": {
          "type": "string",
          "example": "0",
          "description": "Whether there was hail"
        },
        "thunder": {
          "type": "string",
          "example": "0",
          "description": "Whether there was thunder"
        },
        "tornado": {
          "type": "string",
          "example": "0",
          "description": "Whether there were tornadoes"
        },
        "ta": {
          "type": "string",
          "example": "6.2",
          "description": "Average temperature"
        },
        "da": {
          "type": "string",
          "example": "5.6",
          "description": "Average dew point"
        },
        "pa": {
          "type": "string",
          "example": "1029.7",
          "description": "Average pressure (hPa)"
        },
        "wsa": {
          "type": "string",
          "example": "3.5",
          "description": "Average wind speed"
        },
        "wna": {
          "type": "string",
          "example": "north",
          "description": "Average wind direction name"
        },
        "wda": {
          "type": "string",
          "example": "219",
          "description": "Average wind direction (degrees)"
        },
        "va": {
          "type": "string",
          "example": "4857",
          "description": "Average visibility (meters)"
        },
        "rha": {
          "type": "string",
          "example": "96",
          "description": "Average relative humidity (%)"
        },
        "tx": {
          "type": "string",
          "example": "8",
          "description": "Maximum temperature"
        },
        "tn": {
          "type": "string",
          "example": "4",
          "description": "Minimum temperature"
        },
        "rhx": {
          "type": "string",
          "example": "100",
          "description": "Maximum relative humidity (%)"
        },
        "rhn": {
          "type": "string",
          "example": "87",
          "description": "Minimum relative humidity (%)"
        },
        "dx": {
          "type": "string",
          "example": "7",
          "description": "Maximum dew point"
        },
        "dn": {
          "type": "string",
          "example": "4",
          "description": "Minimum dew point"
        },
        "px": {
          "type": "string",
          "example": "1033.5",
          "description": "Maximum pressure (hPa)"
        },
        "pn": {
          "type": "string",
          "example": "1022.2",
          "description": "Minimum pressure (hPa)"
        },
        "wsx": {
          "type": "string",
          "example": "5",
          "description": "Maximum wind speed"
        },
        "wsn": {
          "type": "string",
          "example": "2",
          "description": "Minimum wind speed"
        },
        "vx": {
          "type": "string",
          "example": "10600",
          "description": "Maximum visibility (meters)"
        },
        "vn": {
          "type": "string",
          "example": "390",
          "description": "Minimum visibility (meters)"
        },
        "pr24": {
          "type": "string",
          "example": "",
          "description": "Accumulated precipitation from 24h"
        },
        "prtype": {
          "type": "string",
          "example": "noprec",
          "description": "Most occurred precipitation type (rain, hail, snow, mixed) or noprec if no precipitation during the time"
        }
      }
    }
  }
}
Success

Weather Warnings

Governmental severe weather warnings are currently delivered from: Argentina, Australia, Austria, Belarus, Belgium, Bosnia and Herzegovina, Brazil, Bulgaria, Canada, Chile, Colombia, Costa Rica, Croatia, Cyprus, Czech Republic, Denmark, Ecuador, Egypt, Estonia, Finland, France, Germany, Greece, Hong Kong, Hungary, Iceland, India, Indonesia, Iran, Republic of Ireland, Israel, Italy, Japan, South Korea, Latvia, Lithuania, Luxembourg, North Macedonia, Malaysia, Malta, Mexico, Moldova, Montenegro, Netherlands, New Zealand, Norway, Peru, Philippines, Poland, Portugal, Romania, Russia, Saudi Arabia, Serbia, Singapore, Slovakia, Slovenia, Spain, Sweden, Switzerland, South Africa, Taiwan, Thailand, Ukraine, United Kingdom and United States.

Point warnings

Path Parameters

locationType: stringrequired

"Longitude, latitude" or location identifier (id) from the location endpoint

Query Parameters

futureType: string

Whether to return warnings starting more than 24 hours from now (boolean: default 0)

datasetType: string

Variable set: "standard" or "full" (default "standard")

GET/api/v1/warning/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/warning/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "warnings": [
    {
      "type": "FO",
      "significance": "Y",
      "attribution": null,
      "validFrom": "2021-01-08T10:17:00Z",
      "validUntil": "2021-01-08T17:00:00Z",
      "description": [
        {
          "lang": "en",
          "text": "Dense Fog Advisory issued January 08 at 4:17AM CST until January 08 at 11:00AM CST by NWS Minneapolis&10;&10;Anoka; Benton; Blue Earth; Brown; Carver; Chippewa; Chisago; Douglas; Hennepin; Isanti; Kanabec; Kandiyohi; Lac Qui Parle; Le Sueur; Martin; McLeod; Meeker; Mille Lacs; Morrison; Nicollet; Pope; Ramsey; Redwood; Renville; Scott; Sherburne; Sibley; Stearns; Stevens; Swift; Todd; Watonwan; Wright; Yellow Medicine&10;&10;...DENSE FOG ADVISORY REMAINS IN EFFECT UNTIL 11 AM CST THIS&10;MORNING...&10;* WHAT...Visibility one quarter mile or less in dense fog.&10;* WHERE...Portions of central, east central, south central,&10;southwest and west central Minnesota.&10;* WHEN...Until 11 AM CST Friday.&10;* IMPACTS...Hazardous driving conditions due to low visibility.&10;* ADDITIONAL DETAILS...Slick spots on roads, overpasses, and&10;sidewalks are also possible as the fog freezes on exposed&10;surfaces.&10;&10;If driving, slow down, use your headlights, and leave plenty of&10;distance ahead of you."
        }
      ],
      "attributionUrl": null,
      "link": "https://alerts.weather.gov/cap/wwacapget.php?x=MN126188507444.DenseFogAdvisory.126188517F10MN.MPXNPWMPX.6f0fa4bac3937d8409b5648ff85e9eea",
      "sent": "2021-01-08T10:17:00Z",
      "name": "Fog",
      "significanceDescription": "Potentially dangerous"
    }
  ]
}
{
  "type": "object",
  "properties": {
    "warnings": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "FO",
            "description": "Warning ID"
          },
          "significance": {
            "type": "string",
            "example": "Y",
            "description": "One of: Y (yellow, moderate), O (orange, severe), R (red, extreme), P (purple, emergency), NP (not applicable, very minor)"
          },
          "attribution": {
            "type": "string",
            "nullable": true,
            "description": "Attribution: organization abbreviations"
          },
          "validFrom": {
            "type": "string",
            "example": "2021-01-08T10:17:00Z",
            "description": "ISO 8601 date and time"
          },
          "validUntil": {
            "type": "string",
            "example": "2021-01-08T17:00:00Z",
            "description": "ISO 8601 date and time"
          },
          "description": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "lang": {
                  "type": "string",
                  "example": "en",
                  "description": "Language of warning description (ISO 639-1 codes)"
                },
                "text": {
                  "type": "string",
                  "example": "Dense Fog Advisory issued January 08 at 4:17AM CST until January 08 at 11:00AM CST by NWS Minneapolis&10;&10;Anoka; Benton; Blue Earth; Brown; Carver; Chippewa; Chisago; Douglas; Hennepin; Isanti; Kanabec; Kandiyohi; Lac Qui Parle; Le Sueur; Martin; McLeod; Meeker; Mille Lacs; Morrison; Nicollet; Pope; Ramsey; Redwood; Renville; Scott; Sherburne; Sibley; Stearns; Stevens; Swift; Todd; Watonwan; Wright; Yellow Medicine&10;&10;...DENSE FOG ADVISORY REMAINS IN EFFECT UNTIL 11 AM CST THIS&10;MORNING...&10;* WHAT...Visibility one quarter mile or less in dense fog.&10;* WHERE...Portions of central, east central, south central,&10;southwest and west central Minnesota.&10;* WHEN...Until 11 AM CST Friday.&10;* IMPACTS...Hazardous driving conditions due to low visibility.&10;* ADDITIONAL DETAILS...Slick spots on roads, overpasses, and&10;sidewalks are also possible as the fog freezes on exposed&10;surfaces.&10;&10;If driving, slow down, use your headlights, and leave plenty of&10;distance ahead of you.",
                  "description": "Description of the particular warning in the associated language"
                }
              }
            }
          },
          "attributionUrl": {
            "type": "string",
            "nullable": true,
            "description": "Attribution URL"
          },
          "link": {
            "type": "string",
            "example": "https://alerts.weather.gov/cap/wwacapget.php?x=MN126188507444.DenseFogAdvisory.126188517F10MN.MPXNPWMPX.6f0fa4bac3937d8409b5648ff85e9eea",
            "description": "Link to warning description provided by source (if applicable)"
          },
          "sent": {
            "type": "string",
            "example": "2021-01-08T10:17:00Z",
            "description": "ISO 8601 date and time of warning sent"
          },
          "name": {
            "type": "string",
            "example": "Fog"
          },
          "significanceDescription": {
            "type": "string",
            "example": "Potentially dangerous",
            "description": "Description of significance level"
          }
        }
      }
    }
  }
}
Success

Warning type names

The full code-to-name mapping for every warning type, so you can label warnings in your own interface. Returns each two-letter type code with its display name. The same codes name the downloadable warning icons, combined with a severity suffix.

GET/api/v1/warning/typesShell Curl
curl 'https://weatherapi.foreca.net/api/v1/warning/types' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "AQ": {
    "name": "Air quality"
  },
  "AS": {
    "name": "Volcanic ashfall"
  },
  "AV": {
    "name": "Avalanche"
  },
  "CD": {
    "name": "Civil danger"
  },
  "CE": {
    "name": "Coastal event"
  }
}
{
  "type": "object",
  "properties": {
    "AQ": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Air quality",
          "description": "Name of warning type"
        }
      }
    },
    "AS": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Volcanic ashfall",
          "description": "Name of warning type"
        }
      }
    },
    "AV": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Avalanche",
          "description": "Name of warning type"
        }
      }
    },
    "CD": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Civil danger",
          "description": "Name of warning type"
        }
      }
    },
    "CE": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "example": "Coastal event",
          "description": "Name of warning type"
        }
      }
    }
  }
}
Success

Marine Weather

Marine forecasts of waves and sea temperatures.

Hourly

Hourly marine forecasts.

Path Parameters

locationType: stringrequired

"Longitude,latitude" or location identifier (id) from the location endpoint

Query Parameters

periodsType: string

Number of time steps (default 24, maximum 169)

tempunitType: string

Temperature unit: "C", "F" (default "C")

tzType: string

Time zone in response (IANA time zone database names)

historyType: string

History: whether to include past 24 hours (1 or 0, default 0)

GET/api/v1/marine/forecast/hourly/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/marine/forecast/hourly/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "forecast": [
    {
      "peak1DSpectraPeriod": 9.8,
      "seaTemp": 27,
      "sigSwellHeight": 1.13,
      "sigWaveHeight": 1.19,
      "swellDir": 178,
      "swellPeriod": 8.1,
      "swimTemp": 27,
      "time": "2025-11-04T17:00Z",
      "waveDir": 177,
      "wavePeriod": 7.5,
      "windWaveDir": 168,
      "windWavePeriod": 2.9,
      "windWaveSigHeight": 0.39
    }
  ]
}
{
  "type": "object",
  "properties": {
    "forecast": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "peak1DSpectraPeriod": {
            "type": "number",
            "example": 9.8,
            "description": "Peak wave period, of 1D spectra, in seconds, ≥ 0"
          },
          "seaTemp": {
            "type": "number",
            "example": 27,
            "description": "Sea temperature"
          },
          "sigSwellHeight": {
            "type": "number",
            "example": 1.13,
            "description": "Significant swell wave height, in metres, ≥ 0"
          },
          "sigWaveHeight": {
            "type": "number",
            "example": 1.19,
            "description": "Significant wave height, in metres"
          },
          "swellDir": {
            "type": "number",
            "example": 178,
            "description": "The direction where total swell is coming from, in degrees, 0...360° (0°: from north, 180°: from south)"
          },
          "swellPeriod": {
            "type": "number",
            "example": 8.1,
            "description": "Mean period of total swell, in seconds"
          },
          "swimTemp": {
            "type": "number",
            "example": 27,
            "description": "Sea temperature in swimming locations"
          },
          "time": {
            "type": "string",
            "example": "2025-11-04T17:00Z",
            "description": "ISO 8601 date and time"
          },
          "waveDir": {
            "type": "number",
            "example": 177,
            "description": "The mean direction where waves are coming from, in degrees"
          },
          "wavePeriod": {
            "type": "number",
            "example": 7.5,
            "description": "Mean wave period, in seconds"
          },
          "windWaveDir": {
            "type": "number",
            "example": 168,
            "description": "The mean direction where wind waves are coming from, in degrees"
          },
          "windWavePeriod": {
            "type": "number",
            "example": 2.9,
            "description": "Period of wind waves, in seconds"
          },
          "windWaveSigHeight": {
            "type": "number",
            "example": 0.39,
            "description": "Significant height of wind waves, in metres"
          }
        }
      }
    }
  }
}
Success

Daily

Daily marine forecasts.

Path Parameters

locationType: stringrequired

"Longitude,latitude" or location identifier (id) from the location endpoint

Query Parameters

periodsType: string

Number of time steps (default 7, maximum 15)

tempunitType: string

Temperature unit: "C", "F" (default "C")

GET/api/v1/marine/forecast/daily/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/marine/forecast/daily/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "forecast": [
    {
      "date": "2025-11-04",
      "maxPeak1DSpectraPeriod": 10.3,
      "maxSeaTemp": 27,
      "maxSigWaveHeight": 1.23,
      "maxSwellHeight": 1.17,
      "maxSwellPeriod": 8.3,
      "maxSwimTemp": 27,
      "maxWavePeriod": 7.7,
      "maxWindWavePeriod": 3.5,
      "maxWindWaveSigHeight": 0.6
    }
  ]
}
{
  "type": "object",
  "properties": {
    "forecast": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "example": "2025-11-04",
            "description": "ISO 8601 date"
          },
          "maxPeak1DSpectraPeriod": {
            "type": "number",
            "example": 10.3,
            "description": "Maximum peak wave period, of 1D spectra, in seconds, ≥ 0"
          },
          "maxSeaTemp": {
            "type": "number",
            "example": 27,
            "description": "Maximum sea temperature"
          },
          "maxSigWaveHeight": {
            "type": "number",
            "example": 1.23,
            "description": "Maximum significant wave height, in metres, ≥ 0"
          },
          "maxSwellHeight": {
            "type": "number",
            "example": 1.17,
            "description": "Maximum swell wave height, in metres"
          },
          "maxSwellPeriod": {
            "type": "number",
            "example": 8.3,
            "description": "Maximum period of total swell, in seconds"
          },
          "maxSwimTemp": {
            "type": "number",
            "example": 27,
            "description": "Maximum sea temperature in swimming locations"
          },
          "maxWavePeriod": {
            "type": "number",
            "example": 7.7,
            "description": "Maximum wave period, in seconds"
          },
          "maxWindWavePeriod": {
            "type": "number",
            "example": 3.5,
            "description": "Maximum period of wind waves, in seconds"
          },
          "maxWindWaveSigHeight": {
            "type": "number",
            "example": 0.6,
            "description": "Maximum significant height of wind waves, in metres"
          }
        }
      }
    }
  }
}
Success

Ski Resort

Ski resort weather conditions and site information.

Ski Resort Operations

Current

Ski resort conditions.

Path Parameters

locationType: stringrequired

"Longitude,latitude" or location identifier (id) from the location endpoint

Query Parameters

sitesType: string

Number of ski sites (default 1, maximum 5)

radiusType: string

Maximum distance to ski site (default 500 km)

GET/api/v1/ski/current/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/ski/current/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "locations": [
    {
      "name": "Lake Louise",
      "countryCode": "ca",
      "countryName": "Canada",
      "state": "Alberta",
      "city": "Lake Louise, AB",
      "postalCode": "T0L 1E0",
      "street": "Banff National Park",
      "houseNumber": null,
      "address": "Banff National Park, Lake Louise, AB, T0L 1E0",
      "longitude": -116.159228,
      "latitude": 51.439332,
      "openFrom": "08:30",
      "openUntil": "16:00",
      "isOpen": true,
      "altitudeBase": 1646,
      "altitudePeak": 2637,
      "primarySurfaceCondition": "Gripping snow",
      "liftsOpen": 2,
      "lifts": 7,
      "hasSkiing": true,
      "kmNordic": null,
      "kmPistes": 139,
      "kmOpen": 7,
      "hasValleyRun": true,
      "valleyRunOpen": "true",
      "hasTobogganRuns": false,
      "kmTobogganRuns": null,
      "lastSnowDate": "2020-11-01",
      "lastSnowAmount": null,
      "nightSkiing": false,
      "snowDepthPeak": 52,
      "snowDepthBase": 43,
      "hasFunPark": true,
      "funParkOpen": true,
      "updated": "2020-11-05T00:00:00Z"
    }
  ]
}
{
  "type": "object",
  "properties": {
    "locations": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Lake Louise",
            "description": "Site name"
          },
          "countryCode": {
            "type": "string",
            "example": "ca",
            "description": "Country code (ISO 3166-1 alpha-2)"
          },
          "countryName": {
            "type": "string",
            "example": "Canada",
            "description": "Country name"
          },
          "state": {
            "type": "string",
            "example": "Alberta",
            "description": "State (if applicable)"
          },
          "city": {
            "type": "string",
            "example": "Lake Louise, AB",
            "description": "City"
          },
          "postalCode": {
            "type": "string",
            "example": "T0L 1E0",
            "description": "Postal code"
          },
          "street": {
            "type": "string",
            "example": "Banff National Park",
            "description": "Street"
          },
          "houseNumber": {
            "type": "string",
            "nullable": true,
            "description": "House number"
          },
          "address": {
            "type": "string",
            "example": "Banff National Park, Lake Louise, AB, T0L 1E0",
            "description": "Address"
          },
          "longitude": {
            "type": "number",
            "example": -116.159228,
            "description": "longitude"
          },
          "latitude": {
            "type": "number",
            "example": 51.439332,
            "description": "latitude"
          },
          "openFrom": {
            "type": "string",
            "example": "08:30",
            "description": "Opening time (HH:MM)"
          },
          "openUntil": {
            "type": "string",
            "example": "16:00",
            "description": "Open until time of day (HH:MM)"
          },
          "isOpen": {
            "type": "boolean",
            "example": true,
            "description": "Open status"
          },
          "altitudeBase": {
            "type": "number",
            "example": 1646,
            "description": "Altitude at base"
          },
          "altitudePeak": {
            "type": "number",
            "example": 2637,
            "description": "Altitude at peak"
          },
          "primarySurfaceCondition": {
            "type": "string",
            "example": "Gripping snow",
            "description": "Surface condition description"
          },
          "liftsOpen": {
            "type": "number",
            "example": 2,
            "description": "Number of lifts open"
          },
          "lifts": {
            "type": "number",
            "example": 7,
            "description": "Total number of lifts"
          },
          "hasSkiing": {
            "type": "boolean",
            "example": true,
            "description": "Skiing available"
          },
          "kmNordic": {
            "type": "number",
            "nullable": true,
            "description": "Nordic skiing length (km)"
          },
          "kmPistes": {
            "type": "number",
            "example": 139,
            "description": "Pistes length (km)"
          },
          "kmOpen": {
            "type": "number",
            "example": 7,
            "description": "Total open (km)"
          },
          "hasValleyRun": {
            "type": "boolean",
            "example": true,
            "description": "Valley run available"
          },
          "valleyRunOpen": {
            "type": "string",
            "example": "true",
            "description": "Valley run status (\"true\", \"false\", \"conditional\")"
          },
          "hasTobogganRuns": {
            "type": "boolean",
            "example": false,
            "description": "Toboggan runs available"
          },
          "kmTobogganRuns": {
            "type": "number",
            "nullable": true,
            "description": "Length of toboggan runs"
          },
          "lastSnowDate": {
            "type": "string",
            "example": "2020-11-01",
            "description": "Date of last new snow"
          },
          "lastSnowAmount": {
            "type": "string",
            "nullable": true,
            "description": "Amount of new snow last time"
          },
          "nightSkiing": {
            "type": "boolean",
            "example": false,
            "description": "Night skiing available"
          },
          "snowDepthPeak": {
            "type": "number",
            "example": 52,
            "description": "Depth of snow at peak"
          },
          "snowDepthBase": {
            "type": "number",
            "example": 43,
            "description": "Depth of snow at base"
          },
          "hasFunPark": {
            "type": "boolean",
            "example": true,
            "description": "Fun park available"
          },
          "funParkOpen": {
            "type": "boolean",
            "example": true,
            "description": "Fun park open"
          },
          "updated": {
            "type": "string",
            "example": "2020-11-05T00:00:00Z",
            "description": "Date and time of last update (ISO 8601)"
          }
        }
      }
    }
  }
}
Success

Agriculture

Field-level parameters for growing decisions: reference evapotranspiration (ET0), vapour pressure deficit (VPD) and downward surface solar radiation (SSRD), plus lower and upper bound estimates for 24-hour and 7-day precipitation totals. Available hourly and daily.

Hourly

Hourly agricultural forecast parameters.

Path Parameters

locationType: stringrequired

"Longitude,latitude" or location identifier (id) from the location endpoint

Query Parameters

periodsType: string

Number of time steps (default 24, maximum 168)

tzType: string

Time zone in response (IANA time zone database names)

GET/api/v1/agriculture/forecast/hourly/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/agriculture/forecast/hourly/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "forecast": [
    {
      "time": "2022-02-03T10:00+02:00",
      "ET0": 0.1,
      "VPD": 0.27,
      "SSRD": 300
    }
  ]
}
{
  "type": "object",
  "properties": {
    "forecast": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "time": {
            "type": "string",
            "example": "2022-02-03T10:00+02:00",
            "description": "ISO 8601 date and time"
          },
          "ET0": {
            "type": "number",
            "example": 0.1,
            "description": "Reference evapotranspiration rate (mm/h)"
          },
          "VPD": {
            "type": "number",
            "example": 0.27,
            "description": "Vapor pressure deficit (kPa)"
          },
          "SSRD": {
            "type": "number",
            "example": 300,
            "description": "Surface solar radiation downwards, W/m² (watts per square meter)"
          }
        }
      }
    }
  }
}
Success

Daily

Daily agricultural forecast parameters.

Path Parameters

locationType: stringrequired

"Longitude,latitude" or location identifier (id) from the location endpoint

Query Parameters

periodsType: string

Number of time steps (default 7, maximum 14)

GET/api/v1/agriculture/forecast/daily/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/agriculture/forecast/daily/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "forecast": [
    {
      "date": "2022-02-03",
      "ET0": 1.18,
      "VPD_max": 0.5,
      "VPD_min": 0.05,
      "VPD": 0.18,
      "SSRD": 2424,
      "precipSum24q10": 0.11,
      "precipSum24q90": 0.21,
      "precipSum168q10": 7.4,
      "precipSum168q90": 20.73
    }
  ]
}
{
  "type": "object",
  "properties": {
    "forecast": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "example": "2022-02-03",
            "description": "ISO 8601 date"
          },
          "ET0": {
            "type": "number",
            "example": 1.18,
            "description": "Reference evapotranspiration (mm)"
          },
          "VPD_max": {
            "type": "number",
            "example": 0.5,
            "description": "Maximum vapor pressure deficit (kPa)"
          },
          "VPD_min": {
            "type": "number",
            "example": 0.05,
            "description": "Minimum vapor pressure deficit (kPa)"
          },
          "VPD": {
            "type": "number",
            "example": 0.18,
            "description": "Vapor pressure deficit average (kPa)"
          },
          "SSRD": {
            "type": "number",
            "example": 2424,
            "description": "Surface solar radiation downwards (24h sum, Wh/m²)"
          },
          "precipSum24q10": {
            "type": "number",
            "example": 0.11,
            "description": "Lower bound estimate for precipitation sum during the day (10th percentile, mm)"
          },
          "precipSum24q90": {
            "type": "number",
            "example": 0.21,
            "description": "Higher bound estimate for precipitation sum during the day (90th percentile, mm)"
          },
          "precipSum168q10": {
            "type": "number",
            "example": 7.4,
            "description": "Lower bound estimate for 7-day precipitation sum during the day and 6 following days (10th percentile, mm)"
          },
          "precipSum168q90": {
            "type": "number",
            "example": 20.73,
            "description": "Higher bound estimate for 7-day precipitation sum during the day and 6 following days (90th percentile, mm)"
          }
        }
      }
    }
  }
}
Success

Energy

Worldwide forecasts of the parameters that drive generation and demand — wind speed at turbine heights, solar radiation and temperature. Based on current observations combined with numerical weather prediction.

15-minutely

15-minute energy forecasts. Contains the same parameters as the hourly forecast, except for the surface solar radiation downwards (ssrd).

Path Parameters

locationType: stringrequired

"Longitude, latitude" or location identifier (id) from the location endpoint

Query Parameters

periodsType: string

Number of time steps (default 8, maximum 24)

tzType: string

Time zone in response (IANA time zone database names)

tempunitType: string

Temperature unit: "C", "F" (default "C")

GET/api/v1/energy/forecast/15minutely/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/energy/forecast/15minutely/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "forecast": [
    {
      "dewPoint": 1.75,
      "relHumidity": 87,
      "temperature": 3.76,
      "time": "2026-04-29T17:15+03:00",
      "windd_h100": 248,
      "windd_h150": 251.81,
      "windd_h200": 255.21,
      "winds_h100": 7.23,
      "winds_h150": 7.63,
      "winds_h200": 8.06
    }
  ]
}
{
  "type": "object",
  "properties": {
    "forecast": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "dewPoint": {
            "type": "number",
            "example": 1.75,
            "description": "Dew point, in °C (degree Celsius, or requested tempunit)"
          },
          "relHumidity": {
            "type": "number",
            "example": 87,
            "description": "Relative humidity at 2 m height, in % (percentage)"
          },
          "temperature": {
            "type": "number",
            "example": 3.76,
            "description": "Temperature at 2 m height, in °C (degree Celsius, or requested tempunit)"
          },
          "time": {
            "type": "string",
            "example": "2026-04-29T17:15+03:00"
          },
          "windd_h100": {
            "type": "number",
            "example": 248,
            "description": "Wind direction at 100 m height, in degrees, 0...360° (0°: from north, 180°: from south)"
          },
          "windd_h150": {
            "type": "number",
            "example": 251.81,
            "description": "Wind direction at 150 m height, in degrees (from windd_h100 and windd_h200)"
          },
          "windd_h200": {
            "type": "number",
            "example": 255.21,
            "description": "Wind direction at 200 m height, in degrees"
          },
          "winds_h100": {
            "type": "number",
            "example": 7.23,
            "description": "Wind speed at 100 m height, in m/s (meters per second)"
          },
          "winds_h150": {
            "type": "number",
            "example": 7.63,
            "description": "Wind speed at 150 m height, in m/s (from winds_h100 and winds_h200)"
          },
          "winds_h200": {
            "type": "number",
            "example": 8.06,
            "description": "Wind speed at 200 m height, in m/s"
          }
        }
      }
    }
  }
}
Success

Hourly

Hourly energy forecasts.

Path Parameters

locationType: stringrequired

"Longitude, latitude" or location identifier (id) from the location endpoint

Query Parameters

periodsType: string

Number of time steps (default 220, maximum 350, may contain 345...350 steps)

tzType: string

Time zone in response (IANA time zone database names)

tempunitType: string

Temperature unit: "C", "F" (default "C")

GET/api/v1/energy/forecast/hourly/{location}Shell Curl
curl 'https://weatherapi.foreca.net/api/v1/energy/forecast/hourly/{location}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "forecast": [
    {
      "dewPoint": 0.7,
      "relHumidity": 83,
      "ssrd": 351,
      "temperature": 3.32,
      "time": "2025-04-09T16:00+03:00",
      "windd_h100": 298.24,
      "windd_h150": 301.07,
      "windd_h200": 303.57,
      "winds_h100": 12.78,
      "winds_h150": 13.63,
      "winds_h200": 14.52
    }
  ]
}
{
  "type": "object",
  "properties": {
    "forecast": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "dewPoint": {
            "type": "number",
            "example": 0.7,
            "description": "Dew point, in °C (degree Celsius, or requested tempunit)"
          },
          "relHumidity": {
            "type": "number",
            "example": 83,
            "description": "Relative humidity at 2 m height, in % (percentage)"
          },
          "ssrd": {
            "type": "number",
            "example": 351,
            "description": "Surface short-wave (solar) radiation downwards, in W/m² (watts per square meter)"
          },
          "temperature": {
            "type": "number",
            "example": 3.32,
            "description": "Temperature at 2 m height, in °C (degree Celsius, or requested tempunit)"
          },
          "time": {
            "type": "string",
            "example": "2025-04-09T16:00+03:00"
          },
          "windd_h100": {
            "type": "number",
            "example": 298.24,
            "description": "Wind direction at 100 m height, in degrees, 0...360° (0°: from north, 180°: from south)"
          },
          "windd_h150": {
            "type": "number",
            "example": 301.07,
            "description": "Wind direction at 150 m height, in degrees (from windd_h100 and windd_h200)"
          },
          "windd_h200": {
            "type": "number",
            "example": 303.57,
            "description": "Wind direction at 200 m height, in degrees"
          },
          "winds_h100": {
            "type": "number",
            "example": 12.78,
            "description": "Wind speed at 100 m height, in m/s (meters per second)"
          },
          "winds_h150": {
            "type": "number",
            "example": 13.63,
            "description": "Wind speed at 150 m height, in m/s (from winds_h100 and winds_h200)"
          },
          "winds_h200": {
            "type": "number",
            "example": 14.52,
            "description": "Wind speed at 200 m height, in m/s"
          }
        }
      }
    }
  }
}
Success

Hurricane Forecasts

Comprehensive hurricane/cyclone/typhoon data from multiple global meteorological agencies including NOAA (US), JMA (Japan), Australian Bureau of Meteorology, Joint Typhoon Warning Center, RSMC La Réunion (Météo-France), MetService New Zealand, and Fiji Meteorological Service.

Data includes complete storm tracks, forecast points, uncertainty cones, wind speed and intensity classifications and detailed meteorological properties, in GeoJSON format. Real-time updates as bulletins are issued (typically every 3-6 hours during active storms).

Storm classifications and intensity scales vary between regions. See the "Storm Classifications" section for a complete list of possible values for stormType and shortLabel.

Current

Currently active storms. Returns tracking data with latest positions, intensities, and forecasts.

Query Parameters

limit_areaType: string

Limit results to specific geographic areas. Comma-separated list of area codes: "us" (Atlantic/Eastern and Central Pacific), "jp" (Western Pacific), "au" (South Pacific), "in" (North Indian Ocean), "re" (Southwest Indian Ocean/Reunion), "nz" (New Zealand), "fj" (Fiji)

limitType: string

Maximum number of storms to return (maximum 50)

GET/api/v1/hurricane/currentShell Curl
curl 'https://weatherapi.foreca.net/api/v1/hurricane/current' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "metadata": {
    "count": 1,
    "areas_available": [
      "us"
    ],
    "type": "current"
  },
  "data": [
    {
      "type": "FeatureCollection",
      "features": [
        {
          "properties": {
            "name": "ERIN",
            "nameLocal": "ERIN",
            "id": "al52025",
            "shortLabel": "Category",
            "attr": "NOAA",
            "label": "3",
            "date": "Aug 16, 2025",
            "timeLabel": "Sat 1pm +04",
            "timeISO8601": "2025-08-16T13:00:00+04:00",
            "issued": "2025-08-16 09:00:00",
            "dataType": "OBSERVATION",
            "advisory": 20,
            "stormType": "Hurricane",
            "title": "Hurricane ERIN",
            "category": 3,
            "direction": "West-northwest",
            "directionDEG": 285,
            "pressure": 955,
            "pressureIN": 28.2,
            "maxWind": 120.8,
            "maxWindKTS": 105,
            "maxWindKPH": 194.4,
            "maxWindMS": 54,
            "maxGust": 149.7,
            "maxGustKTS": 130.1,
            "maxGustKPH": 240.9,
            "maxGustMS": 66.9,
            "propagationSpeed": 20.1,
            "propagationSpeedKTS": 17.5,
            "propagationSpeedKPH": 32.3,
            "propagationSpeedMS": 9,
            "probabilityRadius": null,
            "source": "NOAA",
            "lastCategory": 3,
            "maxCategory": 5,
            "numberLocal": 5
          },
          "type": "Feature",
          "geometry": {
            "type": "Point",
            "coordinates": [
              -61.1
            ]
          }
        }
      ]
    }
  ]
}
{
  "type": "object",
  "properties": {
    "metadata": {
      "type": "object",
      "properties": {
        "count": {
          "type": "number",
          "example": 1,
          "description": "Number of storm feature collections returned"
        },
        "areas_available": {
          "type": "array",
          "items": {
            "type": "string",
            "example": "us"
          },
          "description": "Area codes that currently have data"
        },
        "type": {
          "type": "string",
          "example": "current",
          "description": "Always \"FeatureCollection\""
        }
      },
      "description": "Response metadata and available areas"
    },
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "FeatureCollection",
            "description": "Always \"FeatureCollection\""
          },
          "features": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "properties": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "example": "ERIN",
                      "description": "Storm name (e.g., \"PODUL\", \"BERYL\")"
                    },
                    "nameLocal": {
                      "type": "string",
                      "example": "ERIN",
                      "description": "Local language storm name if available"
                    },
                    "id": {
                      "type": "string",
                      "example": "al52025",
                      "description": "Unique storm identifier (e.g., \"wp152025\")"
                    },
                    "shortLabel": {
                      "type": "string",
                      "example": "Category",
                      "description": "Abbreviated storm label. Note: US hurricanes return \"Category\" and other US storm types return an empty string. Other regions return \"D\", \"S\", \"T\", \"1\", etc."
                    },
                    "attr": {
                      "type": "string",
                      "example": "NOAA",
                      "description": "Data attribution/source agency"
                    },
                    "label": {
                      "type": "string",
                      "example": "3",
                      "description": "Storm category label. Examples: \"3\" (US Cat 3), \"TD\" (Tropical Depression), \"T\" (Typhoon), \"Cat 3\" (Australia)."
                    },
                    "date": {
                      "type": "string",
                      "example": "Aug 16, 2025",
                      "description": "Date in human-readable format"
                    },
                    "timeLabel": {
                      "type": "string",
                      "example": "Sat 1pm +04",
                      "description": "Human-readable time label"
                    },
                    "timeISO8601": {
                      "type": "string",
                      "example": "2025-08-16T13:00:00+04:00",
                      "description": "Time of observation/forecast in ISO 8601 format"
                    },
                    "issued": {
                      "type": "string",
                      "example": "2025-08-16 09:00:00",
                      "description": "Time when bulletin was issued"
                    },
                    "dataType": {
                      "type": "string",
                      "example": "OBSERVATION",
                      "description": "Data type (\"OBSERVATION\", \"FORECAST\", \"CONE\")"
                    },
                    "advisory": {
                      "type": "number",
                      "example": 20,
                      "description": "Advisory number"
                    },
                    "stormType": {
                      "type": "string",
                      "example": "Hurricane",
                      "description": "Storm classification. Values vary by agency: \"Hurricane\", \"Typhoon\", \"Tropical storm\", \"Severe Tropical Storm\", \"Cyclonic Storm\", etc."
                    },
                    "title": {
                      "type": "string",
                      "example": "Hurricane ERIN",
                      "description": "Full storm title"
                    },
                    "category": {
                      "type": "string",
                      "example": 3,
                      "description": "Current storm category/intensity"
                    },
                    "direction": {
                      "type": "string",
                      "example": "West-northwest",
                      "description": "Storm movement direction"
                    },
                    "directionDEG": {
                      "type": "number",
                      "example": 285,
                      "description": "Storm movement direction (degrees)"
                    },
                    "pressure": {
                      "type": "number",
                      "example": 955,
                      "description": "Central pressure (hPa/mb)"
                    },
                    "pressureIN": {
                      "type": "number",
                      "example": 28.2,
                      "description": "Central pressure (inches of mercury)"
                    },
                    "maxWind": {
                      "type": "number",
                      "example": 120.8,
                      "description": "Maximum sustained winds (mph)"
                    },
                    "maxWindKTS": {
                      "type": "number",
                      "example": 105,
                      "description": "Maximum sustained winds (knots)"
                    },
                    "maxWindKPH": {
                      "type": "number",
                      "example": 194.4,
                      "description": "Maximum sustained winds (km/h)"
                    },
                    "maxWindMS": {
                      "type": "number",
                      "example": 54,
                      "description": "Maximum sustained winds (m/s)"
                    },
                    "maxGust": {
                      "type": "number",
                      "example": 149.7,
                      "description": "Maximum wind gusts (mph)"
                    },
                    "maxGustKTS": {
                      "type": "number",
                      "example": 130.1,
                      "description": "Maximum wind gusts (knots)"
                    },
                    "maxGustKPH": {
                      "type": "number",
                      "example": 240.9,
                      "description": "Maximum wind gusts (km/h)"
                    },
                    "maxGustMS": {
                      "type": "number",
                      "example": 66.9,
                      "description": "Maximum wind gusts (m/s)"
                    },
                    "propagationSpeed": {
                      "type": "number",
                      "example": 20.1,
                      "description": "Storm movement speed"
                    },
                    "propagationSpeedKTS": {
                      "type": "number",
                      "example": 17.5,
                      "description": "Storm movement speed (knots)"
                    },
                    "propagationSpeedKPH": {
                      "type": "number",
                      "example": 32.3,
                      "description": "Storm movement speed (km/h)"
                    },
                    "propagationSpeedMS": {
                      "type": "number",
                      "example": 9,
                      "description": "Storm movement speed (m/s)"
                    },
                    "probabilityRadius": {
                      "type": "string",
                      "nullable": true,
                      "description": "Probability radius information for uncertainty (km)"
                    },
                    "source": {
                      "type": "string",
                      "example": "NOAA",
                      "description": "Source/agency identifier (e.g. \"NOAA\", \"JMA\")"
                    },
                    "lastCategory": {
                      "type": "string",
                      "example": 3,
                      "description": "Most recent observed category"
                    },
                    "maxCategory": {
                      "type": "string",
                      "example": 5,
                      "description": "Maximum category reached during storm lifecycle"
                    },
                    "numberLocal": {
                      "type": "number",
                      "example": 5,
                      "description": "Local numbering system storm number"
                    }
                  }
                },
                "type": {
                  "type": "string",
                  "example": "Feature",
                  "description": "Always \"FeatureCollection\""
                },
                "geometry": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "example": "Point",
                      "description": "Always \"FeatureCollection\""
                    },
                    "coordinates": {
                      "type": "array",
                      "items": {
                        "type": "number",
                        "example": -61.1
                      },
                      "description": "GeoJSON coordinates array"
                    }
                  },
                  "description": "GeoJSON geometry (Point for positions, LineString for tracks, Polygon for cones)"
                }
              }
            },
            "description": "Array of GeoJSON features representing storm track, points, and cones"
          }
        }
      },
      "description": "Array of storm feature collections"
    }
  }
}
Success

History

Historical storm data. Returns past storms from 2020 onwards with complete lifecycle information including tracks, intensities, and forecasts. Excludes currently active storms. Each storm uses the same FeatureCollection / properties structure as the Current endpoint; the exact set of properties present varies by storm, issuing agency, and feature type (observation, forecast, cone).

Query Parameters

limitType: string

Maximum number of storms to return (default 100, maximum 1000)

yearType: string

Filter by specific year (2020 to current year)

limit_areaType: string

Limit results to specific geographic areas. Comma-separated list of area codes: "us" (Atlantic/Eastern and Central Pacific), "jp" (Western Pacific), "au" (South Pacific), "in" (North Indian Ocean), "re" (Southwest Indian Ocean/Reunion), "nz" (New Zealand), "fj" (Fiji)

GET/api/v1/hurricane/historyShell Curl
curl 'https://weatherapi.foreca.net/api/v1/hurricane/history' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "metadata": {
    "count": 1,
    "areas_available": [
      "us"
    ],
    "type": "historical",
    "limit_applied": 100
  },
  "data": [
    {
      "type": "FeatureCollection",
      "features": [
        {
          "geometry": {
            "coordinates": [
              131.6
            ],
            "type": "Point"
          },
          "type": "Feature",
          "properties": {
            "pressure": 910,
            "stormType": "Hurricane",
            "dataType": "OBSERVATION",
            "date": "Sep 18, 2022",
            "shortLabel": "T",
            "propagationSpeed": 11.2,
            "maxGustMS": 77.2,
            "direction": "North-northwest",
            "numberLocal": 14,
            "category": 6,
            "id": "wp182022",
            "name": "NANMADOL",
            "probabilityRadius": null,
            "timeISO8601": "2022-09-18T01:00:00+09:00",
            "maxWindMS": 54,
            "issued": "2022-09-17 16:40:00",
            "propagationSpeedMS": 5,
            "maxWind": 120.8,
            "timeLabel": "Sun 1am JST",
            "label": "VT",
            "title": "Violent typhoon NANMADOL",
            "maxGust": 172.6,
            "nameLocal": "ナンマドル",
            "advisory": 59
          }
        }
      ]
    }
  ]
}
{
  "type": "object",
  "properties": {
    "metadata": {
      "type": "object",
      "properties": {
        "count": {
          "type": "number",
          "example": 1
        },
        "areas_available": {
          "type": "array",
          "items": {
            "type": "string",
            "example": "us"
          }
        },
        "type": {
          "type": "string",
          "example": "historical"
        },
        "limit_applied": {
          "type": "number",
          "example": 100
        }
      }
    },
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "example": "FeatureCollection"
          },
          "features": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "geometry": {
                  "type": "object",
                  "properties": {
                    "coordinates": {
                      "type": "array",
                      "items": {
                        "type": "number",
                        "example": 131.6
                      }
                    },
                    "type": {
                      "type": "string",
                      "example": "Point"
                    }
                  }
                },
                "type": {
                  "type": "string",
                  "example": "Feature"
                },
                "properties": {
                  "type": "object",
                  "properties": {
                    "pressure": {
                      "type": "number",
                      "example": 910
                    },
                    "stormType": {
                      "type": "string",
                      "example": "Hurricane"
                    },
                    "dataType": {
                      "type": "string",
                      "example": "OBSERVATION"
                    },
                    "date": {
                      "type": "string",
                      "example": "Sep 18, 2022"
                    },
                    "shortLabel": {
                      "type": "string",
                      "example": "T"
                    },
                    "propagationSpeed": {
                      "type": "number",
                      "example": 11.2
                    },
                    "maxGustMS": {
                      "type": "number",
                      "example": 77.2
                    },
                    "direction": {
                      "type": "string",
                      "example": "North-northwest"
                    },
                    "numberLocal": {
                      "type": "number",
                      "example": 14
                    },
                    "category": {
                      "type": "number",
                      "example": 6
                    },
                    "id": {
                      "type": "string",
                      "example": "wp182022"
                    },
                    "name": {
                      "type": "string",
                      "example": "NANMADOL"
                    },
                    "probabilityRadius": {
                      "type": "string",
                      "nullable": true
                    },
                    "timeISO8601": {
                      "type": "string",
                      "example": "2022-09-18T01:00:00+09:00"
                    },
                    "maxWindMS": {
                      "type": "number",
                      "example": 54
                    },
                    "issued": {
                      "type": "string",
                      "example": "2022-09-17 16:40:00"
                    },
                    "propagationSpeedMS": {
                      "type": "number",
                      "example": 5
                    },
                    "maxWind": {
                      "type": "number",
                      "example": 120.8
                    },
                    "timeLabel": {
                      "type": "string",
                      "example": "Sun 1am JST"
                    },
                    "label": {
                      "type": "string",
                      "example": "VT"
                    },
                    "title": {
                      "type": "string",
                      "example": "Violent typhoon NANMADOL"
                    },
                    "maxGust": {
                      "type": "number",
                      "example": 172.6
                    },
                    "nameLocal": {
                      "type": "string",
                      "example": "ナンマドル"
                    },
                    "advisory": {
                      "type": "number",
                      "example": 59
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
Success

Authorization

API keys are created in My API after you sign up — no programmatic credentials are needed to create one. The endpoints below let you list and revoke your keys programmatically, authenticating with Authorization: Bearer <token> (the same key you use for data calls).

Note

To create a new API key, open My API. Keys are passed to all data API calls either in the header (Authorization: Bearer <token>) or as a ?token=<token> query parameter.

Keys

List your API keys (non-expiring tokens). Authenticate with your access token in the Authorization: Bearer <token> header.

POST/authorize/keyShell Curl
curl --request POST 'https://weatherapi.foreca.net/authorize/key' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "tokens": [
    {
      "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9mbnc2LmZvcmVjYS5jb21cL2F1dGhvcml6ZVwvdG9rZW4iLCJpYXQiOjE1MjYzMDAzODAsImV4cCI6MTUyNjMwMzk4MCwibmJmIjoxNTI2MzAwMzgwLCJqdGkiOiJxSXl3WVlQNjc1NkczejBEIiwic3ViIjoibFFHa1Y4Z2pIeGUyZU1ibndUUUs4NktqVTY3RXJlS2htenY1IiwicHJ2IjoiYWY3YTAzOThkZGNiNWE3YTUzN2Q3YzdkMjU2NWEyZjgxZGM4ZTQxNCJ9.V8xg6L9yrY9__VH-jdrL_CqXisEpgcfdUa0NoxlGz0k",
      "key": "23j98rfsnldkvf3w49hg",
      "label": "production server",
      "expires_at": null
    }
  ]
}
{
  "type": "object",
  "properties": {
    "tokens": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "access_token": {
            "type": "string",
            "example": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9mbnc2LmZvcmVjYS5jb21cL2F1dGhvcml6ZVwvdG9rZW4iLCJpYXQiOjE1MjYzMDAzODAsImV4cCI6MTUyNjMwMzk4MCwibmJmIjoxNTI2MzAwMzgwLCJqdGkiOiJxSXl3WVlQNjc1NkczejBEIiwic3ViIjoibFFHa1Y4Z2pIeGUyZU1ibndUUUs4NktqVTY3RXJlS2htenY1IiwicHJ2IjoiYWY3YTAzOThkZGNiNWE3YTUzN2Q3YzdkMjU2NWEyZjgxZGM4ZTQxNCJ9.V8xg6L9yrY9__VH-jdrL_CqXisEpgcfdUa0NoxlGz0k"
          },
          "key": {
            "type": "string",
            "example": "23j98rfsnldkvf3w49hg"
          },
          "label": {
            "type": "string",
            "example": "production server"
          },
          "expires_at": {
            "type": "string",
            "nullable": true
          }
        }
      }
    }
  }
}
Success

Delete Key

Revoke an API key using its key id (the key field returned by the list endpoint). Authenticate with your access token in the Authorization: Bearer <token> header.

Path Parameters

keyType: stringrequired

The key id of the API key to revoke (the key field from the list endpoint).

DELETE/authorize/key/{key}Shell Curl
curl --request DELETE 'https://weatherapi.foreca.net/authorize/key/{key}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
Empty response on success.

Usage

Query how many API requests your account has made over a given day or month. Authenticate with your access token in the Authorization: Bearer <token> header — the same token used for data calls.

Pass the optional group_by query parameter (one of endpoint or status_code) to additionally receive a breakdown array splitting the total across that dimension. Each breakdown entry is keyed by the dimension you grouped on plus its hits.

Month's usage

Total requests for a single month, with a per-day breakdown. Add group_by to also split the total by endpoint or status code.

Path Parameters

monthType: stringrequired

Month in YYYY-MM format (e.g. "2021-03").

Query Parameters

group_byType: string

Optional. Split the total into a breakdown array along one dimension. One of: endpoint, status_code.

GET/usage/month/{month}Shell Curl
curl 'https://weatherapi.foreca.net/usage/month/{month}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "apis": [
    {
      "name": "Weather API",
      "hits": 32529
    }
  ],
  "hits": 32529,
  "daily": [
    {
      "date": "2021-03-01",
      "apis": [
        {
          "name": "Weather API",
          "hits": 1042
        }
      ]
    }
  ],
  "breakdown": [
    {
      "endpoint": "point",
      "hits": 31044
    }
  ]
}
{
  "type": "object",
  "properties": {
    "apis": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Weather API"
          },
          "hits": {
            "type": "number",
            "example": 32529
          }
        }
      }
    },
    "hits": {
      "type": "number",
      "example": 32529
    },
    "daily": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "example": "2021-03-01"
          },
          "apis": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "example": "Weather API"
                },
                "hits": {
                  "type": "number",
                  "example": 1042
                }
              }
            }
          }
        }
      }
    },
    "breakdown": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "endpoint": {
            "type": "string",
            "example": "point"
          },
          "hits": {
            "type": "number",
            "example": 31044
          }
        }
      }
    }
  }
}
Success

Day's usage

Total requests for a single day. Add group_by to also split the total by endpoint or status code.

Path Parameters

dayType: stringrequired

Day in YYYY-MM-DD format (e.g. "2021-03-15").

Query Parameters

group_byType: string

Optional. Split the total into a breakdown array along one dimension. One of: endpoint, status_code.

GET/usage/day/{day}Shell Curl
curl 'https://weatherapi.foreca.net/usage/day/{day}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
200
{
  "apis": [
    {
      "name": "Weather API",
      "hits": 380
    }
  ],
  "hits": 380,
  "breakdown": [
    {
      "endpoint": "point",
      "hits": 365
    }
  ]
}
{
  "type": "object",
  "properties": {
    "apis": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Weather API"
          },
          "hits": {
            "type": "number",
            "example": 380
          }
        }
      }
    },
    "hits": {
      "type": "number",
      "example": 380
    },
    "breakdown": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "endpoint": {
            "type": "string",
            "example": "point"
          },
          "hits": {
            "type": "number",
            "example": 365
          }
        }
      }
    }
  }
}
Success