Weather Forecast Search
Get weather forecasts for any location worldwide using the free Open-Meteo API. Returns current conditions, daily and hourly forecasts with temperature, precipitation, wind, UV index, and more. No API key needed.
Maintenance Pulse
91/100Documentation
Get current weather conditions and multi-day forecasts for any location worldwide using the free Open-Meteo API. Search by city name (auto-geocoded) or direct latitude/longitude coordinates. Returns current conditions, daily forecasts up to 16 days, and optional hourly breakdowns -- all structured as clean JSON with no API key required.
Weather Forecast Search is an Apify actor that connects to the Open-Meteo weather API to fetch real-time conditions and forecast data for any point on Earth. Enter a city name like "London" or "Tokyo" and the actor automatically resolves it to coordinates through built-in geocoding. Alternatively, provide exact latitude and longitude values for precise targeting at remote sites, farms, airports, or offshore locations. Every numeric WMO weather code in the response is translated into a human-readable description -- from "Clear sky" and "Partly cloudy" all the way to "Thunderstorm with heavy hail" -- covering 33 distinct weather conditions. Output includes temperature, feels-like temperature, humidity, wind speed, wind gusts, wind direction, precipitation, UV index, sunrise/sunset times, cloud cover, and more. All data is returned as structured JSON, ready for dashboards, alerting pipelines, travel planning, agricultural monitoring, or any downstream integration.
Why use Weather Forecast Search?
- No API key or registration -- Open-Meteo is a free, open-source weather API. This actor wraps it with zero authentication overhead so you can start collecting weather data immediately.
- Cloud execution with scheduling -- Run weather data collection on Apify's platform without maintaining your own servers, cron jobs, or infrastructure. Schedule recurring runs for continuous monitoring.
- Built-in geocoding -- Just type a city name and the actor resolves it to coordinates automatically using the Open-Meteo geocoding service. No manual coordinate lookup needed.
- Structured dataset output -- Results are stored in Apify datasets with one-click export to JSON, CSV, Excel, or Google Sheets. Daily forecast arrays export cleanly for spreadsheet analysis.
- Automation-ready -- Combine with Apify webhooks, integrations, and schedules to build weather monitoring pipelines that run on autopilot. Trigger alerts when conditions cross thresholds.
- Extremely low cost -- Each run makes only two HTTP calls and completes in under 10 seconds with minimal memory, keeping platform credits near zero.
Key features
- Current weather conditions -- 11 variables including temperature, feels-like temperature, humidity, precipitation, weather description, wind speed, wind direction, wind gusts, cloud cover, and day/night indicator.
- Daily forecast up to 16 days -- 15 fields per day covering high/low temperatures, feels-like range, sunrise, sunset, UV index max, precipitation sum, rain sum, max wind speed, max wind gusts, and dominant wind direction.
- Optional hourly breakdown -- 7 fields per hour including temperature, humidity, precipitation, weather code, wind speed, and wind direction for granular planning.
- Automatic city geocoding -- Enter any city name worldwide and the actor resolves it to latitude and longitude coordinates via the Open-Meteo geocoding API.
- Direct coordinate input -- Bypass geocoding by providing exact latitude (-90 to 90) and longitude (-180 to 180) for precise location targeting.
- WMO weather code translation -- All 33 numeric WMO weather codes are automatically converted to plain-English descriptions like "Moderate rain", "Heavy snow", or "Thunderstorm with slight hail".
- Celsius or Fahrenheit -- Choose your preferred temperature unit and all temperature values in the output adjust accordingly.
- Configurable timezone -- Set a specific IANA timezone like "America/New_York" or "Europe/London", or use "auto" for automatic detection based on location.
- Lightweight and fast -- Completes in under 10 seconds with minimal memory usage, making it one of the most cost-effective actors on the Apify Store.
How to use Weather Forecast Search
Using the Apify Console
- Navigate to the Weather Forecast Search actor on the Apify Store.
- Click Try for free to open the actor in Apify Console.
- Enter a Location (city name such as "London", "Tokyo", or "San Francisco") or provide Latitude and Longitude values directly.
- Set the number of Forecast Days (1 to 16, default is 7).
- Optionally enable Include Hourly Forecast for hour-by-hour weather data.
- Choose your preferred Temperature Unit (Celsius or Fahrenheit).
- Set a Timezone or leave it as "auto" for automatic detection.
- Click Start to run the actor.
- When the run finishes, view or download results from the Dataset tab in JSON, CSV, or Excel format.
Using the Apify API
curl -X POST "https://api.apify.com/v2/acts/TpfQHy4R1EZT3ZqOp/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"location": "Tokyo",
"forecastDays": 5,
"includeHourly": true,
"temperatureUnit": "celsius",
"timezone": "auto"
}'
Using the Apify CLI
apify call ryanclinton/weather-forecast-search -i '{
"location": "Berlin",
"forecastDays": 3,
"temperatureUnit": "celsius"
}'
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location | String | No* | "New York" | City name to search for. Automatically geocoded to coordinates. Ignored if both latitude and longitude are provided. |
latitude | Number | No* | -- | Direct latitude coordinate (-90 to 90). Overrides location when both latitude and longitude are set. |
longitude | Number | No* | -- | Direct longitude coordinate (-180 to 180). Overrides location when both latitude and longitude are set. |
forecastDays | Integer | No | 7 | Number of forecast days to retrieve (1 to 16). |
includeHourly | Boolean | No | false | Include hourly weather breakdown in the output. |
temperatureUnit | String | No | "celsius" | Temperature unit: "celsius" or "fahrenheit". |
timezone | String | No | "auto" | Timezone for forecast timestamps (e.g., "America/New_York", "Europe/London"). Use "auto" for automatic detection. |
*You must provide either location or both latitude and longitude.
Input example
{
"location": "Paris",
"forecastDays": 10,
"includeHourly": true,
"temperatureUnit": "celsius",
"timezone": "Europe/Paris"
}
Tips
- Use specific city names -- "San Francisco" works better than "SF". For ambiguous names shared across countries (e.g., "Springfield"), use direct coordinates instead.
- Forecasts beyond 7 to 10 days become progressively less accurate. Use shorter ranges for actionable decisions and longer ranges for trend analysis.
- Hourly data generates up to 384 data points for a 16-day request. Only enable it when you need hour-by-hour granularity.
Output
The actor outputs a single structured JSON object to the default dataset.
Output example
{
"location": {
"name": "London",
"country": "United Kingdom",
"latitude": 51.5085,
"longitude": -0.1257,
"elevation": 25.0,
"timezone": "Europe/London"
},
"current": {
"temperature": 14.2,
"feelsLike": 12.8,
"humidity": 72,
"precipitation": 0.0,
"weatherCode": 2,
"weatherDescription": "Partly cloudy",
"windSpeed": 15.3,
"windDirection": 230,
"windGusts": 28.1,
"cloudCover": 45,
"isDay": true
},
"daily": [
{
"date": "2025-04-15",
"weatherCode": 3,
"weatherDescription": "Overcast",
"tempMax": 16.4,
"tempMin": 9.1,
"feelsLikeMax": 14.8,
"feelsLikeMin": 6.7,
"sunrise": "2025-04-15T06:12",
"sunset": "2025-04-15T19:58",
"uvIndexMax": 4.3,
"precipitationSum": 1.2,
"rainSum": 1.2,
"windSpeedMax": 22.6,
"windGustsMax": 38.5,
"windDirection": 215
}
],
"hourly": [
{
"time": "2025-04-15T00:00",
"temperature": 10.3,
"humidity": 81,
"precipitation": 0.0,
"weatherCode": 2,
"windSpeed": 11.2,
"windDirection": 210
}
],
"extractedAt": "2025-04-15T12:34:56.789Z"
}
Output fields
| Field | Type | Description |
|---|---|---|
location | Object | Resolved location with name, country, latitude, longitude, elevation, and timezone |
current.temperature | Number | Current temperature in selected unit |
current.feelsLike | Number | Apparent temperature accounting for wind chill and humidity |
current.humidity | Number | Relative humidity percentage |
current.precipitation | Number | Current precipitation in mm |
current.weatherCode | Number | WMO weather condition code |
current.weatherDescription | String | Human-readable description translated from WMO code |
current.windSpeed | Number | Wind speed at 10m height (km/h) |
current.windDirection | Number | Wind direction in degrees |
current.windGusts | Number | Wind gust speed (km/h) |
current.cloudCover | Number | Cloud cover percentage |
current.isDay | Boolean | Whether it is currently daytime |
daily[] | Array | Daily forecasts with date, weather, temps, sunrise/sunset, UV, precipitation, wind |
hourly[] | Array | Hourly forecasts with time, temperature, humidity, precipitation, weather, wind (optional) |
extractedAt | String | ISO 8601 timestamp of when the data was collected |
Use cases
- Daily weather briefings -- Schedule the actor to run every morning and push forecast summaries to Slack, email, or a team dashboard for daily planning.
- Travel planning -- Check weather conditions at your destination for the next 1 to 16 days before booking flights, packing, or planning outdoor activities.
- Agricultural monitoring -- Track temperature extremes, precipitation totals, UV index, and wind conditions to make data-driven decisions about planting, irrigation, and harvesting.
- Event planning -- Monitor weather forecasts leading up to outdoor events, weddings, festivals, or construction schedules to identify weather risks early.
- Supply chain optimization -- Factor weather conditions into logistics planning, delivery scheduling, and inventory management for weather-sensitive goods.
- Real estate and property management -- Monitor weather patterns around properties for insurance assessments, maintenance scheduling, and tenant communications.
- Energy demand forecasting -- Correlate temperature forecasts with energy consumption patterns for heating and cooling demand predictions.
- Sports and fitness -- Check current conditions and forecasts for outdoor training, game scheduling, or race preparation.
- Weather data pipelines -- Feed structured weather JSON into data warehouses, BI tools, or machine learning models as a feature input for weather-dependent predictions.
- Education and research -- Collect weather data for classroom projects, climate trend analysis, or environmental research datasets.
API & integrations
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run_input = {
"location": "New York",
"forecastDays": 7,
"includeHourly": False,
"temperatureUnit": "fahrenheit",
"timezone": "America/New_York",
}
run = client.actor("TpfQHy4R1EZT3ZqOp").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
current = item["current"]
print(f"Temperature: {current['temperature']}F, {current['weatherDescription']}")
for day in item["daily"]:
print(f" {day['date']}: {day['tempMin']}F - {day['tempMax']}F, {day['weatherDescription']}")
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const input = {
location: "Sydney",
forecastDays: 5,
includeHourly: true,
temperatureUnit: "celsius",
timezone: "Australia/Sydney",
};
const run = await client.actor("TpfQHy4R1EZT3ZqOp").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
console.log(`${item.location.name}: ${item.current.temperature}C`);
item.daily.forEach((day) => {
console.log(` ${day.date}: ${day.tempMin}C - ${day.tempMax}C`);
});
}
cURL
# Start the actor run
curl -X POST "https://api.apify.com/v2/acts/TpfQHy4R1EZT3ZqOp/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"location": "Berlin", "forecastDays": 3}'
# Fetch results from the dataset (replace DATASET_ID with actual ID from run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN"
Integrations
Weather Forecast Search works with all native Apify integrations:
- Google Sheets -- Export weather data directly to a spreadsheet for tracking, charting, and collaborative analysis.
- Slack -- Send weather alerts or daily briefings to team channels via webhooks.
- Zapier -- Connect weather data to thousands of downstream applications. Trigger workflows based on weather thresholds.
- Make (Integromat) -- Build multi-step automations that react to weather conditions or scheduled forecast deliveries.
- REST API and Webhooks -- Access weather results programmatically via the Apify dataset API or push data to any HTTP endpoint.
How it works
Weather Forecast Search follows a straightforward pipeline to resolve locations and fetch forecast data:
- Input validation -- The actor checks whether a city name or latitude/longitude coordinates were provided. At least one method must be specified.
- Geocoding (if needed) -- When a city name is provided, the actor calls the Open-Meteo geocoding API (
geocoding-api.open-meteo.com/v1/search) to resolve it to latitude, longitude, country, elevation, and timezone. - Coordinate override -- If both latitude and longitude are provided, they take priority over the city name and geocoding is skipped entirely.
- Forecast request -- The actor builds a request to the Open-Meteo forecast API (
api.open-meteo.com/v1/forecast) with the resolved coordinates, specifying current, daily, and optionally hourly weather variables. - WMO code translation -- Every numeric weather code in the response is mapped to a human-readable description using a built-in lookup table covering 33 WMO standard conditions.
- Output assembly -- The actor structures the response into a clean JSON object with location info, current conditions, daily forecasts, optional hourly data, and an extraction timestamp.
- Dataset storage -- The structured output is pushed to the Apify default dataset for download, export, or API access.
Input --> Geocoding (if city name) --> Coordinates
|
v
Open-Meteo Forecast API --> WMO Code Translation --> Apify Dataset
Performance & cost
| Metric | Value |
|---|---|
| Average run time | 3 to 8 seconds |
| Memory usage | 256 MB (minimum) |
| API calls per run | 2 (geocoding + forecast) or 1 (forecast only with coordinates) |
| Platform cost per run | ~$0.001 to $0.005 |
| External API cost | Free (no API key required) |
| Hourly schedule (1 location, 30 days) | ~$0.03 to $0.15 per month |
| Daily schedule (10 locations, 30 days) | ~$0.30 to $1.50 per month |
| Max forecast range | 16 days |
| Max hourly data points | 384 (16 days x 24 hours) |
Limitations
- Single location per run -- Each run fetches weather data for one location. To monitor multiple locations, trigger separate runs via the API or set up multiple scheduled tasks.
- No historical data -- This actor retrieves current conditions and future forecasts only (up to 16 days ahead). Historical weather data requires the Open-Meteo Historical Weather API, which is not included.
- Forecast accuracy degrades over time -- Short-range forecasts (1 to 3 days) are highly accurate. Accuracy decreases for longer ranges, with data beyond 10 days best suited for general trend analysis.
- Geocoding precision -- City name geocoding returns the top result for the given name. Ambiguous names shared across countries (e.g., "Springfield", "Richmond") may resolve to an unintended location. Use direct coordinates for precision.
- Open-Meteo rate limits -- The free Open-Meteo API has rate limits for non-commercial use. Extremely high-frequency calls may be throttled. For commercial use, refer to Open-Meteo's terms.
- No real-time alerts -- This actor provides forecast snapshots, not streaming real-time weather alerts. For severe weather warnings, pair it with the NOAA Weather Alert Monitor actor.
- Weather variables are fixed -- The set of returned weather variables (temperature, humidity, wind, precipitation, UV, etc.) is predefined and cannot be customized per run.
Responsible use
- Respect Open-Meteo terms of service -- Open-Meteo provides free weather data for non-commercial and limited commercial use. Review their licensing terms if you plan to use this data commercially at scale.
- Do not use for safety-critical decisions alone -- Weather forecast data should supplement, not replace, official warnings from national meteorological agencies for severe weather events, evacuations, or emergency planning.
- Rate limit your requests -- Avoid scheduling runs at excessively high frequencies. Collecting weather data once per hour or a few times per day is sufficient for most monitoring use cases.
- Attribute the data source -- When republishing or displaying weather data obtained through this actor, credit Open-Meteo as the data provider in accordance with their attribution requirements.
- Communicate forecast uncertainty -- When sharing forecast data with end users, note that accuracy decreases for longer forecast ranges and that all weather predictions carry inherent uncertainty.
FAQ
Q: Does this actor require an API key? A: No. Weather Forecast Search uses the Open-Meteo API, which is free and open-source. No API key, registration, or billing setup is needed. The actor works out of the box.
Q: How accurate is the weather forecast data? A: Open-Meteo aggregates data from leading national weather services including NOAA GFS, DWD ICON, and Meteo France models. Forecasts for 1 to 3 days ahead are highly accurate. Accuracy decreases gradually for longer ranges, with data beyond 10 days best used for trend analysis.
Q: Can I get weather data for multiple locations in one run? A: Each run fetches data for a single location. To monitor multiple locations, run the actor multiple times with different inputs via the Apify API, or set up multiple scheduled tasks.
Q: What are the 33 WMO weather codes? A: The actor translates all standard WMO weather interpretation codes into descriptions: Clear sky, Mainly clear, Partly cloudy, Overcast, Fog, Rime fog, Light/Moderate/Dense drizzle, Light/Dense freezing drizzle, Slight/Moderate/Heavy rain, Light/Heavy freezing rain, Slight/Moderate/Heavy snow, Snow grains, Slight/Moderate/Violent showers, Slight/Heavy snow showers, Thunderstorm, Thunderstorm with slight hail, and Thunderstorm with heavy hail.
Q: Can I get historical weather data? A: No. This actor retrieves current conditions and future forecasts only, covering up to 16 days ahead. For historical weather data, you would need to use the Open-Meteo Historical Weather API through a separate integration.
Q: How does geocoding work? A: When you provide a city name, the actor calls the Open-Meteo geocoding API to find the best matching location. It returns the top result with name, country, latitude, longitude, elevation, and timezone. If both latitude and longitude are provided in the input, geocoding is skipped entirely.
Q: What temperature units are supported?
A: Celsius and Fahrenheit. Set the temperatureUnit input parameter to "celsius" or "fahrenheit". All temperature values in the output (current, daily, and hourly) will use the selected unit.
Q: How many hourly data points are returned?
A: Hourly data is only included when includeHourly is set to true. The number of data points equals the forecast days multiplied by 24 hours. A 7-day forecast returns 168 hourly records. A 16-day forecast returns 384 hourly records.
Q: Can I set a custom timezone?
A: Yes. Provide any valid IANA timezone string (e.g., "America/New_York", "Europe/London", "Asia/Tokyo"). The default value "auto" automatically detects the timezone based on the queried location's coordinates.
Q: How often should I schedule runs? A: For most use cases, once every 1 to 6 hours provides a good balance of freshness and cost. Weather forecasts do not change minute by minute, so sub-hourly polling is rarely necessary.
Q: What happens if the city name is not found? A: The actor throws an error with a descriptive message suggesting you try a different city name or provide latitude/longitude directly. Check the spelling and use the full city name for best results.
Q: Is the Open-Meteo API really free? A: Yes. Open-Meteo offers free access for non-commercial use and limited commercial use. For high-volume commercial applications, they offer paid plans with higher rate limits and dedicated support. Review their terms at open-meteo.com.
Related actors
| Actor | Description |
|---|---|
| Nominatim Geocoder | Convert addresses and place names to geographic coordinates, or reverse geocode coordinates to addresses using OpenStreetMap data. |
| NOAA Weather Alert Monitor | Monitor active severe weather alerts and warnings issued by NOAA for United States locations. |
| Sunrise Sunset Search | Get detailed sunrise, sunset, and twilight phase data for any location worldwide. |
| Open Charge Map EV Stations | Search for electric vehicle charging stations worldwide with availability, connector types, and network details. |
| OpenStreetMap POI Search | Search for points of interest, businesses, and landmarks using OpenStreetMap data with geographic filtering. |
How it works
Configure
Set your parameters in the Apify Console or pass them via API.
Run
Click Start, trigger via API, webhook, or set up a schedule.
Get results
Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.
Use cases
Sales Teams
Build targeted lead lists with verified contact data.
Marketing
Research competitors and identify outreach opportunities.
Data Teams
Automate data collection pipelines with scheduled runs.
Developers
Integrate via REST API or use as an MCP tool in AI workflows.
Related actors
GitHub Repository Search
Search GitHub repositories by keyword, language, topic, stars, forks. Sort by stars, forks, or recently updated. Returns metadata, topics, license, owner info, URLs. Free API, optional token for higher limits.
EUIPO EU Trademark Search
Search EU trademarks via official EUIPO database. Find registered and pending trademarks by name, Nice class, applicant, or status. Returns full trademark details and filing history.
Nominatim Address Geocoder
Geocode addresses to GPS coordinates and reverse geocode coordinates to addresses using OpenStreetMap Nominatim. Batch geocoding with rate limiting. Free, no API key needed.
Congressional Stock Trade Tracker
Track stock trades by US Congress members. Search House and Senate financial disclosures by member name, ticker symbol, or transaction type. Returns trade details and filing dates.
Ready to try Weather Forecast Search?
Start for free on Apify. No credit card required.
Open on Apify Store