Weather Data — Multi-Location Forecasts (Open-Meteo)
Pricing
from $0.33 / 1,000 weather data rows
Weather Data — Multi-Location Forecasts (Open-Meteo)
Current conditions, hourly and daily forecasts, and air quality for one or many cities or GPS coordinates in a single run, from Open-Meteo (free, no API key). Bulk multi-location queries with built-in geocoding; one clean JSON row per location per period slice.
Pricing
from $0.33 / 1,000 weather data rows
Rating
0.0
(0)
Developer
Leonardo Santos
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Current conditions, hourly and daily forecasts, and air quality for one city or
a hundred — in a single run. Give it place names (Berlin, Sao Paulo) or GPS
coordinates (52.52, 13.41); it geocodes them, fetches every requested period
slice from Open-Meteo (a free public API — no API key, no upstream cost),
and returns one clean JSON row per location per slice, with explicit units and
null-safe optional variables.
Why this actor?
- Bulk multi-location in one run — the wedge: geocoding + forecast + air quality for up to 100 locations in a single call, one bill.
- Free upstream, no key — you pay only for the convenience of a typed, unified, agent-ready dataset.
- Null-safe rows — unavailable variables are explicit
null, never dropped rows or crashes. - Flat, typed output — every row carries location identity, source, period, timestamp, and units, so downstream pipelines (dashboards, LLM/MCP agents) can merge locations without re-resolving anything.
- Predictable billing — one charge per delivered row, charged only after the row lands in your dataset; errors are free.
Input
{"locations": [{ "query": "Berlin" },{ "query": "Paris" },{ "lat": 40.7128, "lon": -74.006 }],"current": true,"hourly": ["temperature_2m", "precipitation", "wind_speed_10m"],"daily": ["temperature_2m_max", "precipitation_sum"],"air_quality": ["us_aqi"],"forecast_days": 1,"units": "metric","max_locations": 100}
locations is required. Every other field has a sensible default: current
conditions on, 1 forecast day, metric units, auto timezone, up to 100
locations (a hard, locally enforced cap).
Output
One row per location per requested period slice:
{"location": { "query": "Berlin", "lat": 52.52, "lon": 13.41, "resolved_name": "Berlin, Germany" },"source": "open-meteo","period": "current","timestamp": "2026-08-07T12:15:00.000Z","temperature_2m": 24.1,"relative_humidity_2m": 58,"wind_speed_10m": 11.2,"units": { "temperature_2m": "°C", "wind_speed_10m": "km/h" }}
Hourly and daily rows carry period: "hourly" / "daily" and one timestamp per
hour or day; air-quality rows carry period: "air_quality" with variables like
us_aqi, pm2_5, pm10. Dataset views split the periods for you.
Pricing
Pricing
Pay per event, and the platform usage is on us — the price you see is the price you pay, with no compute bill on top.
| Event | Price | What one charge buys |
|---|---|---|
| Weather data row | $0.0005 | Charged once per delivered weather row — one location per requested period slice (current, hourly, daily, or air quality). Rows are charged only after they are pushed to the dataset; unresolvable locations, empty results, and upstream failures are free error items and never charged. |
| Actor Start | $0.002 | One run, whatever it returns. |
Higher Apify subscription tiers pay less on every event (Silver −20%, Gold −35%).
Use cases
- Multi-city current conditions — dashboards and ops boards with one run per refresh instead of N curls.
- Hourly forecast feeds — energy, logistics, or agriculture pipelines that need hour-by-hour temperature/precipitation/wind.
- Air-quality monitoring — US/EU AQI plus particulate and gas concentrations for a list of cities.
- LLM/MCP tooling — clean, typed JSON with units on every row; no scraping, no parsing of a free API yourself.
FAQ
Does this actor need an API key? No. Open-Meteo is a free public API — there is no upstream cost, ever. (A future OpenWeatherMap secondary source would use a user-supplied free-tier key.)
How many locations can I query? Up to max_locations (default 100, hard
cap 100). The cap is enforced locally before any request — the upstream would
accept more, we never fetch or bill more.
What is a "row" for billing? One location × one period slice: a current block is one row, an hourly slice is one row per hour, a daily slice is one row per day, an air-quality block is one row. A 10-city current-conditions run is 10 rows.
What happens when a city can't be resolved? It becomes a free error item
with the message in the error field — the rest of your locations still
return. Empty results and upstream failures are free too; nothing is charged
that isn't delivered.
This Actor is an independent tool and is not affiliated with Open-Meteo.
Weather data is provided by the free Open-Meteo API (api.open-meteo.com,
geocoding-api.open-meteo.com, air-quality-api.open-meteo.com).