Weather Forecast Scraper avatar

Weather Forecast Scraper

Pricing

from $6.80 / 1,000 results

Go to Apify Store
Weather Forecast Scraper

Weather Forecast Scraper

Scrape a daily weather forecast for any latitude and longitude: max and min temperature, precipitation and peak wind speed per day. Export to JSON, CSV or Excel.

Pricing

from $6.80 / 1,000 results

Rating

5.0

(1)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

12 hours ago

Last modified

Share

Open-Meteo Weather Forecast Scraper

Open-Meteo Weather Forecast Scraper

Here is one real result, with every field the actor returns:

{
"latitude": 52.52,
"longitude": 13.419998,
"date": "2026-08-10",
"tempMax": 30.4,
"tempMin": 19.5,
"precipitation": 0.9,
"windMax": 19,
"weatherCode": 95,
"condition": "Thunderstorm",
"apparentTempMax": 28.4,
"apparentTempMin": 19.3,
"precipitationProbabilityMax": 43,
"precipitationHours": 2,
"windGustsMax": 48.2,
"windDirectionDominant": 302,
"uvIndexMax": 5.55,
"sunrise": "2026-08-10T05:40",
"sunset": "2026-08-10T20:42",
"daylightDurationSec": 54110.51,
"sunshineDurationSec": 36936.12,
"elevation": 38,
"currentTemp": 26.8,
"currentWindSpeed": 18.7,
"currentWindDirection": 341,
"currentWeatherCode": 3,
"currentCondition": "Overcast",
"isDay": true,
"timezone": "Europe/Berlin",
"source": "Open-Meteo",
"observedAt": "2026-08-10T14:41:30.850Z"
}

The most complete Open-Meteo weather forecast scraper available. It returns every daily forecast field the Open-Meteo dataset exposes for a location, plus a decoded human-readable condition and the current conditions block, and gives you latitude, longitude and a day count to target exactly the forecast you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor takes a latitude and longitude, requests the Open-Meteo forecast for that point, and writes one normalized record per forecast day to the run's dataset. Each daily record carries the raw Open-Meteo daily metrics (temperature, precipitation, wind, UV, sun times) plus a decoded condition string for the WMO weather code and a block of current conditions at run time. Temperatures are in degrees Celsius, wind in km/h, and times in the location's local timezone.

Coverage is global: any latitude and longitude on Earth is supported.

Quickstart

Open the actor, paste this into the input, and press Run. It returns a 10-day forecast for Berlin.

{
"maxDays": 10,
"latitude": "52.52",
"longitude": "13.41"
}

Every input field is optional; with an empty input the actor returns the forecast for the default coordinates (Berlin).

Input reference

FieldTypeRequiredDefaultDescription
latitudestringno52.52Latitude of the location in decimal degrees, for example 52.52 for Berlin.
longitudestringno13.41Longitude of the location in decimal degrees, for example 13.41 for Berlin.
maxDaysintegerno10Maximum number of forecast days to collect. Open-Meteo provides up to 16 days of daily forecast.

Output reference

One dataset item per forecast day. Types: number, integer, boolean, or string.

FieldTypeDescription
latitudenumberLatitude of the forecast grid point.
longitudenumberLongitude of the forecast grid point.
datestringForecast date (YYYY-MM-DD).
tempMaxnumberMaximum air temperature (C).
tempMinnumberMinimum air temperature (C).
precipitationnumberTotal precipitation (mm).
windMaxnumberMaximum wind speed (km/h).
weatherCodeintegerWMO weather interpretation code for the day.
conditionstringDecoded human-readable condition for weatherCode, for example Thunderstorm.
apparentTempMaxnumberMaximum apparent ("feels like") temperature (C).
apparentTempMinnumberMinimum apparent temperature (C).
precipitationProbabilityMaxintegerMaximum precipitation probability for the day (%).
precipitationHoursnumberHours with precipitation during the day.
windGustsMaxnumberMaximum wind gusts (km/h).
windDirectionDominantintegerDominant wind direction (degrees).
uvIndexMaxnumberMaximum UV index for the day.
sunrisestringLocal sunrise time (ISO 8601).
sunsetstringLocal sunset time (ISO 8601).
daylightDurationSecnumberDaylight duration (seconds).
sunshineDurationSecnumberSunshine duration (seconds).
elevationnumberElevation of the grid point (meters).
currentTempnumberCurrent air temperature at run time (C).
currentWindSpeednumberCurrent wind speed (km/h).
currentWindDirectionintegerCurrent wind direction (degrees).
currentWeatherCodeintegerCurrent WMO weather code.
currentConditionstringDecoded current condition, for example Overcast.
isDaybooleantrue when it is currently daytime at the location.
timezonestringIANA timezone of the location, for example Europe/Berlin.
sourcestringData source name. Always Open-Meteo.
observedAtstringISO 8601 timestamp of when the record was collected.

On a failed run, a single item with a populated error field (plus source and observedAt) is written instead.

Example output record

Real record from a live run (input {"latitude":"52.52","longitude":"13.41","maxDays":10}), the first forecast day for Berlin:

{
"latitude": 52.52,
"longitude": 13.419998,
"date": "2026-08-10",
"tempMax": 30.4,
"tempMin": 19.5,
"precipitation": 0.9,
"windMax": 19,
"weatherCode": 95,
"condition": "Thunderstorm",
"precipitationProbabilityMax": 43,
"windGustsMax": 48.2,
"uvIndexMax": 5.55,
"sunrise": "2026-08-10T05:40",
"sunset": "2026-08-10T20:42",
"currentTemp": 26.8,
"currentCondition": "Overcast",
"isDay": true,
"timezone": "Europe/Berlin",
"source": "Open-Meteo",
"observedAt": "2026-08-10T14:41:30.850Z"
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~open-meteo-weather-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"latitude":"40.71","longitude":"-74.01","maxDays":7}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~open-meteo-weather-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"latitude":"-34.60","longitude":"-58.38","maxDays":16}'

Apify CLI:

apify call scrapers_lat/open-meteo-weather-scraper \
--input '{"latitude":"51.51","longitude":"-0.13"}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per forecast day returned (result event). See the pricing tab for the current per-result price.
  • No charge on failure. If the forecast request fails, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run. Upgrade for higher maxDays.
  • Forecast horizon. Open-Meteo provides up to 16 days of daily forecast; values above that return the maximum available.

FAQ and troubleshooting

What coordinates should I use? Any latitude and longitude in decimal degrees. For example, Berlin is 52.52 / 13.41, New York is 40.71 / -74.01, Buenos Aires is -34.60 / -58.38.

What units are the values in? Temperatures in degrees Celsius, wind in km/h, precipitation in mm, durations in seconds, and times in the location's local timezone.

What does weatherCode mean? It is the WMO weather interpretation code. The actor decodes it into a readable condition string (and currentCondition for the current block) so you do not have to map codes yourself.

How many days can I get? Up to 16 daily forecast records per location, one dataset item each. Set maxDays to control how many.

Is this an official Open-Meteo tool? No. This actor is independent and has no affiliation with Open-Meteo. It reads the free Open-Meteo forecast data. Use it in accordance with the Open-Meteo terms of use.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with Open-Meteo. Reads the free Open-Meteo forecast data. Use in accordance with the Open-Meteo terms of use.