Skip to content

September 23, 2026 · 11 min read

Open-Meteo Weather Scraper: $5.00 per 1,000 results (2026)

By Crawlerbros Engineering Team

This scraper extracts global weather data directly from Open-Meteo, including forecasts up to 16 days, air quality indices, ocean waves, and historical weather records back to 1940 without requiring an API key. With 14 input controls, you can specify exact geographic coordinates, target cities, timezones, and particular hourly or daily variables. This tool is designed for developers, researchers, and data analysts who need structured meteorological data for application integrations, climate studies, or travel planning. It is not suitable for users seeking real-time radar images or hyper-local storm tracking alerts.

What does a Open-Meteo Weather Scraper run cost?

Each result costs $0.005 on the free tier, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.01 per GB of Actor memory.

Apify plan Per result Per 1,000 results
FREE $0.005 $5.00
BRONZE $0.00433 $4.33
SILVER $0.00367 $3.67
GOLD $0.003 $3.00
PLATINUM $0.003 $3.00
DIAMOND $0.003 $3.00

Data costs are $0.005 per result on the free tier, which amounts to $5.00 per 1,000 results. The most significant factor influencing your bill is the range between your startDate and endDate in historical mode, alongside the number of variables requested. To minimize costs, always execute a test run using geocode mode first to verify your target coordinates before pulling decades of historical records.

How do you run Open-Meteo Weather Scraper from the API?

The schema marks 1 of its 14 controls as required: mode. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for Open-Meteo Weather Scraper, so the request works once your token is in place.

Call the synchronous endpoint to start a run and receive dataset items in one request:

curl -X POST "https://api.apify.com/v2/acts/crawlerbros~open-meteo-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode":"forecast","location":"Berlin","timezone":"auto","forecastDays":7,"climateModel":"EC_Earth3P_HR","maxItems":100}'

The same run from Python, using the official client:

from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")

run_input = {
  "mode": "forecast",
  "location": "Berlin",
  "timezone": "auto",
  "forecastDays": 7,
  "climateModel": "EC_Earth3P_HR",
  "maxItems": 100
}

run = client.actor("crawlerbros~open-meteo-scraper").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

And from Node.js:

import { ApifyClient } from 'apify-client'

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })

const input = {
  "mode": "forecast",
  "location": "Berlin",
  "timezone": "auto",
  "forecastDays": 7,
  "climateModel": "EC_Earth3P_HR",
  "maxItems": 100
}

const run = await client.actor('crawlerbros~open-meteo-scraper').call(input)
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)

Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.

Which Open-Meteo Weather Scraper inputs matter, and which can you skip?

The input schema exposes 14 controls with only 1 required option. The mode parameter is the essential control that defines the structure of your output, switching the scraper between forecast, historical, air quality, marine, climate, and geocoding runs. For your initial runs, leave complex options like climateModel on their default values and focus on specifying your location.

  • mode (string): What weather data to fetch. Default: "forecast".
  • location (string): City name to look up automatically (e.g. 'Berlin', 'New York', 'Tokyo'). If provided, geocoding is performed automatically. Ignored if latitude/longitude are set.
  • latitude (number): Geographic latitude (-90 to 90). Overrides location field if provided.
  • longitude (number): Geographic longitude (-180 to 180). Overrides location field if provided.
  • timezone (string): Timezone for returned data. Use 'auto' to detect automatically from coordinates. Default: "auto".
  • forecastDays (integer): Number of days to forecast (1-16). Defaults to 7. Default: 7.
  • startDate (string): Start date for historical data in YYYY-MM-DD format (e.g. '2023-01-01'). Required for historical mode.
  • endDate (string): End date for historical data in YYYY-MM-DD format (e.g. '2023-12-31'). Required for historical mode.
  • hourlyVars (array): Hourly weather variables to include (forecast and historical modes).
  • dailyVars (array): Daily weather summary variables to include.
  • cityName (string): City name to search for coordinates. Required for geocode mode.
  • country (string): Optional country to narrow geocode search (e.g. 'US', 'Germany').
  • climateModel (string): Climate model for projections. EC_Earth3P_HR is high-resolution. Use startDate/endDate to limit the range (default: 1990-2050). Default: "EC_Earth3P_HR".
  • maxItems (integer): Maximum number of records to return. Default: 100.

Fixed-choice controls: mode accepts forecast, historical, airQuality, marine, climateData, geocode; timezone accepts auto, UTC, America/New_York, America/Chicago, America/Denver, America/Los_Angeles; climateModel accepts EC_Earth3P_HR, CMCC_CM2_VHR4, MPI_ESM1_2_XR, NICAM16_8S.

Move one control per run. Compare each new sample against the previous one and keep the accepted, uncertain, and excluded counts side by side. A control that increases volume without improving decision quality still bills at $0.005 per result.

What does Open-Meteo Weather Scraper return?

The returned datasets provide structured JSON records that contain key metrics like temperature, precipitation, wind speed, and wave heights depending on your active mode. It is ideal for importing directly into analytical models or database backends. Note that the output does not contain radar imagery, weather map files, or proprietary localized forecast narratives.

The Actor does not publish a per-field output list, so treat the first run as the specification: collect a small sample and record which fields are present before anything downstream depends on them.

How do you build the workflow end to end?

Open Open-Meteo Weather Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

  1. Run a fast test run with mode set to geocode and cityName set to your target location to verify the exact coordinates.
  2. Verify the output contains the correct latitude and longitude values before starting a larger query.
  3. Configure the mode to forecast or historical depending on your analysis timeframe.
  4. Explicitly declare the coordinates using latitude and longitude to skip automated geocoding steps.
  5. Select the required metrics in hourlyVars and dailyVars to avoid bloating your output payload.
  6. Set the timezone parameter to auto to ensure matching local times for the target coordinates.
  7. Set maxItems to a small number like 10 on your first run to check the schema of the returned dataset.
  8. Export the successful run output to your local storage or integration endpoint.

How do you apply it? Three worked playbooks

These are Open-Meteo Weather Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

Use case 1: Travel planning

Outcome: Get forecasts for upcoming trips to any city worldwide

Configure: Set mode to forecast, location to your destination city, and forecastDays to the length of the trip.

Working method: Run the Actor for the target destination using automatic geocoding first. Verify that the elevationMeters and timezone match the actual destination details before automating multiple locations.

Deliverable: A dataset of daily forecast records including temperatureMax, temperatureMin, and weatherDescription.

Stop condition: The returned coordinates in latitude and longitude point to the wrong continent due to an ambiguous city name.

Use case 2: Agriculture

Outcome: Historical precipitation and temperature trends for farming decisions

Configure: Set mode to historical, latitude and longitude to the farm coordinates, and populate startDate and endDate with past planting seasons.

Working method: Execute a historical run for a specific season. Examine the temperatureMax and precipitation fields to verify complete daily Coverage for the date range.

Deliverable: A series of daily historical weather records containing precipitation, temperature, and windspeed details.

Stop condition: The output contains null values for essential metrics like precipitation over key seasonal dates.

Use case 3: Research

Outcome: Long historical climate datasets going back to 1940

Configure: Set mode to historical, latitude and longitude to the target study area, and populate startDate and endDate with your historical window.

Working method: Query a small date range first to verify the layout of dailyVars. Once verified, expand the startDate and endDate to cover the multi-year study period.

Deliverable: A long-term series of daily weather records spanning the specified historical timeframe.

Stop condition: The output collection terminates early or hits the maxItems threshold before reaching the specified endDate.

What breaks, and how do you design around it?

  • Test a small, representative input against your acceptance criteria before increasing scope.

The scraper is bound by the source API coverage, meaning marine data runs will fail if inland coordinates are passed. If you need coastal data, perform a geocode run first to ensure your coordinates fall within marine boundaries. When retrieving decades of historical data, split your requests into annual chunks to avoid timeout limits on extremely large date ranges.

When should you not use Open-Meteo Weather Scraper?

Do not use this Actor if you require real-time, minute-by-minute emergency weather warnings or localized radar images. For those critical use cases, official government meteorological service APIs like the National Weather Service in the US or Copernicus in Europe are superior alternatives. They offer native, low-latency push notifications and live vector radar feeds that this scraper cannot replicate. Additionally, if your application requires hyper-local municipal weather alerts rather than global grid models, using a dedicated commercial weather API with active warning endpoints is a safer and faster choice.

What should you check before trusting the output?

  • Verify that coordinates such as latitude and longitude are returned and are not null.
  • Check that records contain valid daily or hourly timestamps in the timezone requested.
  • Ensure elevationMeters contains a valid numeric value rather than a null or zero placeholder in high-elevation areas.
  • Confirm that the recordType matches the requested mode parameter.

None of this proves a record is correct. It gives a scheduled Open-Meteo Weather Scraper run defined points where it should stop instead of quietly passing bad data downstream.

Frequently asked questions

Is an API key required to run this weather scraper?

No. The scraper utilizes Open-Meteo, which is free and open-source for non-commercial use. No registration or API token is required to start extracting weather records.

How much does it cost to run the Open-Meteo scraper?

The data is priced at $0.005 per result on the free tier, which translates directly to $5.00 per 1,000 results. You can optimize costs by limiting the forecast days or the historical date range.

How far back does the historical weather data go?

You can retrieve historical weather records going back as far as 1940 for most global locations, provided you supply the correct startDate and endDate.

Why does my marine weather query return empty results?

Marine data is only available for ocean and coastal coordinates. If you pass inland coordinates, the query will fail because there is no wave or swell data for landlocked points.

Can I retrieve hourly weather forecasts with this scraper?

Yes. You can select specific variables in the hourlyVars array parameter to return hourly granular details instead of daily summaries.

Where to go next

Start with the Open-Meteo Weather Scraper Actor page for the current input schema, pricing tier, and run history.

If you are comparing approaches rather than committing to one Actor, these category pages list every option we publish:

Readers running Open-Meteo Weather Scraper commonly pair it with:

  • ResearchGate Academic Scraper Scrape ResearchGate for academic publications and researcher profiles.
  • AllTrails Scraper Scrape AllTrails, the world's largest hiking, biking, and running trail database.
  • FlashScore Live Sports Scraper Scrape live matches from FlashScore for football, basketball, tennis, hockey, baseball and 11 other sports.
  • Yahoo Finance Scraper Pull live and historical stock data from Yahoo Finance with quote, OHLCV history, financials, dividends, splits, news, recommendations, institutional holders.
  • Fuel Prices Scraper Daily US fuel prices (regular, mid-grade, premium, diesel) at national, state, and metro level.
  • Stack Exchange Scraper Scrape questions, answers, users, and tags from Stack Overflow and 170+ Stack Exchange communities.
  • Letterboxd Scraper Scrape Letterboxd, the cinephile community's film database.
  • NGC Coin Census Population Report Scraper Scrape the NGC (Numismatic Guaranty Corporation) Coin Census Population Report - the numismatic industry's most comprehensive graded coin database.

Related guides:

Resources

  • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-23.

  • Actor last updated by its maintainers on 2026-06-11.

  • Run outcome figures cover the 30 day public window ending 2026-09-23.

  • Open-Meteo Weather Scraper on Apify

● Featured actors

Open-Meteo Weather Scraper

Scrape Open-Meteo, free open-source weather API with global forecasts, historical weather, air quality, marine conditions, and climate data. No API key required.

Run on Apify ↗