Foreca Weather API
Premium global weather data, delivered as one REST API.
Quickstart
- 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.
- Make your first request to one of the endpoints. Pass the key as a Bearer token in the
Authorizationheader (Authorization: Bearer YOUR_KEY), or as a?token=YOUR_KEYquery 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: stringrequiredSearch query
Query Parameters
langType: stringLanguage (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: stringLimit search to a given country (ISO 3166-1 alpha-2 codes)
scriptType: stringWriting script for the location name, e.g. "latin"
/api/v1/location/search/{query}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/location/search/{query}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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"
}
}
}
}
}
}Location info
Location metadata.
Path Parameters
locationType: stringrequired"Longitude,latitude" or location identifier (id) from the location endpoint
Query Parameters
langType: stringLanguage (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)
/api/v1/location/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/location/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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"
}
}
}Observations
Observations from nearby representative weather stations.
Path Parameters
locationType: stringrequired"Longitude,latitude" or location identifier (id) from the location endpoint
Query Parameters
tzType: stringTime zone in response (an IANA time zone database name, default is the time zone of the location)
stationsType: stringAmount of stations (default 3, maximum 6)
precType: stringInclude precipitation? 1 for yes, 0 for no (default 0).
tempunitType: stringTemperature unit: "C", "F" (default "C")
windunitType: stringWind unit: "MS" (m/s), "KTS" (knots), "KMH" (km/h), or "MPH" (mph) (default m/s)
roundingType: stringRounding of some variables to nearest integer: 0 or 1 (default 1 for no decimals)
/api/v1/observation/latest/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/observation/latest/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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)"
}
}
}
}
}
}Current
Current weather estimate.
Path Parameters
locationType: stringrequired"Longitude,latitude" or location identifier (id) from the location endpoint
Query Parameters
altType: stringAltitude in meters
tempunitType: stringTemperature unit
windunitType: stringWind unit: "MS" (m/s), "KTS" (knots), "KMH" (km/h), or "MPH" (mph) (default m/s)
tzType: stringTime zone in response (IANA time zone database names)
langType: stringLanguage (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: stringRounding of some variables to nearest integer: 0 or 1 (default 1 for no decimals)
/api/v1/current/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/current/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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)"
}
}
}
}
}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: stringNumber of time steps (up to 60, default 60)
tzType: stringTime zone in response (IANA time zone database names)
/api/v1/forecast/minutely/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/forecast/minutely/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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)."
}
}
}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: stringNumber of time steps (default 8, maximum 12)
altType: stringAltitude in meters
tempunitType: stringTemperature unit: "C", "F" (default "C")
windunitType: stringWind unit: "MS" (m/s), "KTS" (knots), "KMH" (km/h), or "MPH" (mph) (default m/s)
tzType: stringTime zone in response (IANA time zone database names)
datasetType: stringVariable set: "standard" or "full" (default "standard")
langType: stringLanguage (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: stringRounding of some variables to nearest integer: 0 or 1 (default 1 for no decimals)
/api/v1/forecast/15minutely/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/forecast/15minutely/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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)"
}
}
}
}
}
}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: stringNumber of time steps (default 24, maximum 169)
altType: stringAltitude in meters
tempunitType: stringTemperature unit: "C", "F" (default "C")
windunitType: stringWind unit: "MS" (m/s), "KTS" (knots), "KMH" (km/h), or "MPH" (mph) (default m/s)
tzType: stringTime zone in response (IANA time zone database names)
datasetType: stringVariable set: "standard" or "full" (default "standard")
historyType: stringHistory: whether to include past 24 hours (1 or 0, default 0)
langType: stringLanguage (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: stringRounding of some variables to nearest integer: 0 or 1 (default 1 for no decimals)
/api/v1/forecast/hourly/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/forecast/hourly/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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)"
}
}
}
}
}
}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: stringNumber of time steps (default 21, maximum 113)
altType: stringAltitude in meters
tempunitType: stringTemperature unit: "C", "F" (default "C")
windunitType: stringWind unit: "MS" (m/s), "KTS" (knots), "KMH" (km/h), or "MPH" (mph) (default m/s)
tzType: stringTime zone in response (IANA time zone database names)
datasetType: stringVariable set: "standard" or "full" (default "standard")
historyType: stringHistory: whether to include past 24 hours (1 or 0, default 0)
langType: stringLanguage (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: stringRounding of some variables to nearest integer: 0 or 1 (default 1 for no decimals)
/api/v1/forecast/3hourly/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/forecast/3hourly/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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)"
}
}
}
}
}
}Daily
Daily forecasts, up to 14 days.
Path Parameters
locationType: stringrequired"Longitude,latitude" or location identifier (id) from the location endpoint
Query Parameters
periodsType: stringNumber of time steps (default 7, maximum 15)
altType: stringAltitude in meters
tempunitType: stringTemperature unit: "C", "F" (default "C")
windunitType: stringWind unit: "MS" (m/s), "KTS" (knots), "KMH" (km/h), or "MPH" (mph) (default m/s)
datasetType: stringVariable set: "standard" or "full" (default "standard")
langType: stringLanguage (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: stringRounding of some variables to nearest integer: 0 or 1 (default 1 for no decimals, value 0 is recommended with dataset=full)
offset_hoursType: stringInclude past data up to -48 hours
/api/v1/forecast/daily/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/forecast/daily/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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)"
}
}
}
}
}
}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: stringrequiredAccess token as provided by authorization endpoint
/api/v1/capabilitiesShell Curlcurl 'https://weatherapi.foreca.net/api/v1/capabilities' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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
}
}
}
}
}
}
}
}Tile
Tile endpoint is used to obtain weather map tiles (size 256x256) for the given layer and color scheme.
Example response

Path Parameters
idType: stringrequiredLayer id
xType: stringrequiredX index of the requested tile
yType: stringrequiredY index of the requested tile
zType: stringrequiredZoom level of the requested tile
timeType: stringrequiredUTC timestamp value for the data to retrieve in ISO 8601 format. Must appear in the available times list
Query Parameters
tokenType: stringrequiredAccess token as provided by authorization endpoint
colorschemeType: stringLayer color scheme. Must appear in the color scheme list returned by capabilities endpoint
updatedType: stringInclude the updated timestamp as an optional query parameter when requesting rapidly updating layers to prevent fetching tiles from outdated analyses.
analysesType: stringInclude the analyses timestamps as an optional query parameter when requesting rapidly updating radar layers to prevent fetching tiles from outdated analyses
windunitType: stringWind speed unit on the wind symbol map layer. Supported values: ms (m/s, the default), knots, kmh (km/hour), or mph (miles/hour).
/api/v1/image/tile/{z}/{x}/{y}/{time}/{id}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/image/tile/{z}/{x}/{y}/{time}/{id}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'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: stringrequiredOne 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: stringrequiredX index of the requested JSON tile
yType: stringrequiredY index of the requested JSON tile
zType: stringrequiredZoom level of the requested JSON tile. Valid range: 3..12
unitsType: stringUse units=C for Celsius or units=F for Fahrenheit. Default: units=C
wrapType: stringUse 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
/api/v1/symbol/{mode}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/symbol/{mode}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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)"
}
}
}
}
}
}Legend
Legend endpoint is used to obtain legend image for a color scheme
Example response

Path Parameters
colorschemeType: stringrequiredColor scheme id. Must appear in the color scheme list returned by capabilities endpoint
idType: stringrequiredLayer id
Query Parameters
tokenType: stringrequiredAccess token as provided by authorization endpoint
/api/v1/legend/{colorscheme}/{id}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/legend/{colorscheme}/{id}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'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: stringNumber of time steps (default 24, maximum 85)
tzType: stringTime zone in response (IANA time zone database names)
langType: stringLanguage (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)
/api/v1/air-quality/forecast/hourly/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/air-quality/forecast/hourly/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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)"
}
}
}
}
}
}Daily
Daily air quality forecasts.
Path Parameters
locationType: stringrequired"Longitude, latitude" or location identifier (id) from the location endpoint
Query Parameters
periodsType: stringNumber of time steps (default 3, maximum 4)
langType: stringLanguage (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)
/api/v1/air-quality/forecast/daily/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/air-quality/forecast/daily/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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)"
}
}
}
}
}
}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.

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: stringNumber of time steps (default 24, maximum 85)
tzType: stringTime zone in response (IANA time zone database names)
/api/v1/pollen/forecast/hourly/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/pollen/forecast/hourly/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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
}
}
}
}
}
}Daily
Daily pollen forecasts.
Path Parameters
locationType: stringrequired"Longitude, latitude" or location identifier (id) from the location endpoint
Query Parameters
periodsType: stringNumber of time steps (default 3, maximum 4)
/api/v1/pollen/forecast/daily/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/pollen/forecast/daily/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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
}
}
}
}
}
}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: stringTemperature unit: "C", "F" (default "C")
/api/v1/climate/monthly/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/climate/monthly/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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"
}
}
}
}
}
}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: stringTemperature unit: "C", "F" (default "C")
/api/v1/climate/daily/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/climate/daily/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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"
}
}
}
}
}
}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.
Point history
Path Parameters
your_endpoint_idType: stringrequiredpath segment
Query Parameters
lonType: stringrequiredLongitude
latType: stringrequiredLatitude
dateType: stringrequiredDate in YYYYMMDD format
daysType: stringFeature: number of days returned, starting at "date" (default 1, maximum 14)
tempunitType: stringTemperature unit (F, C; default C)
windunitType: stringWind unit (MS, KTS, KMH, MPH, BFT; default MS)
precunitType: stringPrecipitation unit (MM, IN)
langType: stringLanguage (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: stringOptional parameters to include in the response. Currently supported: "station" - includes the weather station name and coordinates from which the observations originate.
/{your_endpoint_id}/json.phpShell Curlcurl 'https://fhw.foreca.com/{your_endpoint_id}/json.php' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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"
}
}
}
}
}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: stringWhether to return warnings starting more than 24 hours from now (boolean: default 0)
datasetType: stringVariable set: "standard" or "full" (default "standard")
/api/v1/warning/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/warning/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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"
}
}
}
}
}
}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.
/api/v1/warning/typesShell Curlcurl 'https://weatherapi.foreca.net/api/v1/warning/types' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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"
}
}
}
}
}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: stringNumber of time steps (default 24, maximum 169)
tempunitType: stringTemperature unit: "C", "F" (default "C")
tzType: stringTime zone in response (IANA time zone database names)
historyType: stringHistory: whether to include past 24 hours (1 or 0, default 0)
/api/v1/marine/forecast/hourly/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/marine/forecast/hourly/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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"
}
}
}
}
}
}Daily
Daily marine forecasts.
Path Parameters
locationType: stringrequired"Longitude,latitude" or location identifier (id) from the location endpoint
Query Parameters
periodsType: stringNumber of time steps (default 7, maximum 15)
tempunitType: stringTemperature unit: "C", "F" (default "C")
/api/v1/marine/forecast/daily/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/marine/forecast/daily/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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"
}
}
}
}
}
}Ski Resort
Ski resort weather conditions and site information.
Current
Ski resort conditions.
Path Parameters
locationType: stringrequired"Longitude,latitude" or location identifier (id) from the location endpoint
Query Parameters
sitesType: stringNumber of ski sites (default 1, maximum 5)
radiusType: stringMaximum distance to ski site (default 500 km)
/api/v1/ski/current/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/ski/current/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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)"
}
}
}
}
}
}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: stringNumber of time steps (default 24, maximum 168)
tzType: stringTime zone in response (IANA time zone database names)
/api/v1/agriculture/forecast/hourly/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/agriculture/forecast/hourly/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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)"
}
}
}
}
}
}Daily
Daily agricultural forecast parameters.
Path Parameters
locationType: stringrequired"Longitude,latitude" or location identifier (id) from the location endpoint
Query Parameters
periodsType: stringNumber of time steps (default 7, maximum 14)
/api/v1/agriculture/forecast/daily/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/agriculture/forecast/daily/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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)"
}
}
}
}
}
}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: stringNumber of time steps (default 8, maximum 24)
tzType: stringTime zone in response (IANA time zone database names)
tempunitType: stringTemperature unit: "C", "F" (default "C")
/api/v1/energy/forecast/15minutely/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/energy/forecast/15minutely/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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"
}
}
}
}
}
}Hourly
Hourly energy forecasts.
Path Parameters
locationType: stringrequired"Longitude, latitude" or location identifier (id) from the location endpoint
Query Parameters
periodsType: stringNumber of time steps (default 220, maximum 350, may contain 345...350 steps)
tzType: stringTime zone in response (IANA time zone database names)
tempunitType: stringTemperature unit: "C", "F" (default "C")
/api/v1/energy/forecast/hourly/{location}Shell Curlcurl 'https://weatherapi.foreca.net/api/v1/energy/forecast/hourly/{location}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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"
}
}
}
}
}
}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: stringLimit 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: stringMaximum number of storms to return (maximum 50)
/api/v1/hurricane/currentShell Curlcurl 'https://weatherapi.foreca.net/api/v1/hurricane/current' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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"
}
}
}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: stringMaximum number of storms to return (default 100, maximum 1000)
yearType: stringFilter by specific year (2020 to current year)
limit_areaType: stringLimit 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)
/api/v1/hurricane/historyShell Curlcurl 'https://weatherapi.foreca.net/api/v1/hurricane/history' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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
}
}
}
}
}
}
}
}
}
}
}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.
/authorize/keyShell Curlcurl --request POST 'https://weatherapi.foreca.net/authorize/key' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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
}
}
}
}
}
}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: stringrequiredThe key id of the API key to revoke (the key field from the list endpoint).
/authorize/key/{key}Shell Curlcurl --request DELETE 'https://weatherapi.foreca.net/authorize/key/{key}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'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: stringrequiredMonth in YYYY-MM format (e.g. "2021-03").
Query Parameters
group_byType: stringOptional. Split the total into a breakdown array along one dimension. One of: endpoint, status_code.
/usage/month/{month}Shell Curlcurl 'https://weatherapi.foreca.net/usage/month/{month}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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
}
}
}
}
}
}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: stringrequiredDay in YYYY-MM-DD format (e.g. "2021-03-15").
Query Parameters
group_byType: stringOptional. Split the total into a breakdown array along one dimension. One of: endpoint, status_code.
/usage/day/{day}Shell Curlcurl 'https://weatherapi.foreca.net/usage/day/{day}' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN'{
"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
}
}
}
}
}
}