Open-Meteo Weather Scraper
Get current weather or a multi-day forecast for any city by name from the free Open-Meteo API. Temperature, wind, humidity, precipitation. No API key.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
mode,places,latitude(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Inputs
| Field | What it does | Type |
|---|---|---|
mode | What to return: "current" = current conditions per place, "forecast" = one row per day (up to Forecast days), "geocode" = just resolve place names to coordinate | string |
places | List of place names to look up (e.g. ["Berlin", "Tokyo", "New York"]). Each is geocoded to its top match. Leave empty if you provide Latitude + Longitude direct | array |
latitude | Optional. Use exact coordinates instead of a place name. Only used when Places is empty. Must be paired with Longitude. Example: 52.52. | string |
longitude | Optional. Use exact coordinates instead of a place name. Only used when Places is empty. Must be paired with Latitude. Example: 13.41. | string |
forecastDays | Number of days to return in forecast mode (1-16). Ignored in current / geocode modes. | integer |
maxItems | Maximum total output rows across all places. Caps forecast rows too (each forecast day is one row). | integer |
notionConnector | Optional. Write each item as a page into your Notion when the run finishes. Authorize a Notion connector once in Settings → API & Integrations → MCP connectors, | string |
notionParentId | Optional. The Notion data source ID of the database to write into (only used if a Notion connector is set). Leave empty to create the pages privately in your wo | string |
What you get
A structured dataset — each result includes fields like:
apparentTemperaturedatehumiditylatitudelongitudeplaceprecipitationprecipitationSumtempMaxtempMintemperaturetimetimezoneweatherExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
2 ready-to-run use cases
Current Weather for Multiple Cities, No API Key
Current temperature, humidity, and wind for a list of cities from Open-Meteo, no API key required. City-level weather data for dashboards and apps.
7-Day Weather Forecast by City, Daily Highs & Lows
One row per day for the week ahead: highs, lows, wind, and precipitation from Open-Meteo. Forecast mode lets you set how many days to pull.
Open-Meteo Weather Scraper
Look up current weather or a multi-day forecast for any place on Earth — by name or by coordinates — using the free Open-Meteo API. No API key, no login, no sign-up.
Give it a list of place names (["Berlin", "Tokyo", "New York"]) and it geocodes each to its top match, then returns clean, structured weather rows with a human-readable description (e.g. Partly cloudy, Slight rain, Thunderstorm) instead of a raw WMO code.
Modes
current— current conditions per place: temperature, feels-like, humidity, precipitation, wind, weather text.forecast— one row per day (up to Forecast days, max 16): daily high/low, precipitation total, max wind, weather text.geocode— just resolve place names to coordinates + metadata (country, region, timezone, population). No weather call.
What you get per row
geocode: place, name, latitude, longitude, country, admin1 (region/state), timezone, population.
current: place, latitude, longitude, time, temperature, apparentTemperature, humidity, precipitation, windSpeed, weatherCode, weather (text), timezone.
forecast (one row per day): place, latitude, longitude, date, tempMax, tempMin, precipitationSum, windSpeedMax, weatherCode, weather (text).
Units are Open-Meteo defaults: temperatures in °C, wind in km/h, precipitation in mm.
Input
| Field | Notes |
|---|---|
mode | current (default), forecast, or geocode. |
places | List of place names. Each is geocoded to its top match. |
latitude / longitude | Optional exact coordinates, used only when places is empty. |
forecastDays | Days for forecast mode, 1–16 (default 7). |
maxItems | Caps total output rows across all places (default 100). |
You must provide either places or both latitude and longitude.
Output
One dataset row per place (geocode/current) or per day (forecast). Pricing is pay-per-result: you are only charged for genuine result rows (ok: true). Rows we couldn't deliver are never charged — this includes:
- empty/invalid input (a single
ok: falserow witherrorCode: "BAD_INPUT"— e.g. no place and no coordinates, or an unknown mode), - a place that couldn't be geocoded / produced no data (
NO_RESULTS), - rate limits or network errors (
RATE_LIMITED/NETWORK).
When some places resolve and others don't, the unresolved ones are listed under unresolved on the run log; the resolved rows are still returned and charged.
Proxy
Open-Meteo is a public, no-auth JSON API with no anti-bot, so no proxy is required and the default runs without one (saving proxy credits). Only enable Apify Proxy if you hit IP rate limits at very high volume.
Troubleshooting
- Getting a
BAD_INPUTrow? Provideplaces, or bothlatitudeandlongitude, and a validmode. - A place came back as
NO_RESULTS? Try a more specific name (add the country, e.g."Springfield, US"), or use direct coordinates.
Example
{ "mode": "forecast", "places": ["Paris", "Madrid"], "forecastDays": 5 }
Notes
Weather codes follow the WMO interpretation table and are mapped to short English text in the weather field; the raw number is kept in weatherCode. Data and geocoding come from Open-Meteo — please review their terms for attribution and fair-use limits at high volume.