Discover/meteoblue API
live

meteoblue APImeteoblue.com

Search meteoblue locations and retrieve 14-day daily forecasts, current conditions, and 3-hourly breakdowns via two structured JSON endpoints.

Endpoint health
verified 2h ago
get_weather_forecast
search_locations
2/2 passing latest checkself-healing
Endpoints
2
Updated
3h ago

What is the meteoblue API?

The meteoblue API provides two endpoints — search_locations and get_weather_forecast — covering meteoblue's global location database and up to 14 days of daily forecast data per place. A single call to get_weather_forecast returns over 20 fields including max/min temperature, wind speed, precipitation range, sunshine hours, predictability scores, current conditions, and 3-hourly detail for any selected forecast day, all in metric units.

This call costs1 credit / call— charged only on success
Try it
1-based result page; each page holds 10 results.
Free-text place name to search for (city, town, airport). Partial names are matched.
api.parse.bot/scraper/410af4ea-a421-4e12-99b0-47abb05f63ce/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/410af4ea-a421-4e12-99b0-47abb05f63ce/search_locations?query=Chengdu' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace meteoblue-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: meteoblue Weather SDK — search locations, fetch forecasts."""
from parse_apis.meteoblue_com_api import Meteoblue, LocationNotFound

client = Meteoblue()

# Search for locations matching a city name; cap total results.
location = client.locations.search(query="Chengdu", limit=1).first()
if location is None:
    raise SystemExit("No locations found for query")

print(f"{location.name}, {location.admin1}, {location.country}")
print(f"  slug: {location.location_slug}  pop: {location.population}")

# Fetch the full 14-day forecast for the discovered location.
forecast = location.get_forecast()
print(f"\nCurrent: {forecast.current.temperature}{forecast.current.temperature_unit}, {forecast.current.condition}")
print(f"Units — temp: {forecast.units.temperature}, wind: {forecast.units.wind_speed}, precip: {forecast.units.precipitation}")

# Walk the daily outlook.
for day in forecast.daily[:5]:
    print(f"  {day.date} ({day.weekday}): {day.temperature_min}-{day.temperature_max}, "
          f"wind {day.wind_speed} {day.wind_direction}, precip {day.precipitation}, "
          f"sun {day.sunshine_hours}h, predictability {day.predictability}")

# Drill into 3-hourly detail for a specific day.
detail = location.get_forecast(day=3)
print(f"\n3-hourly for {detail.selected_date}:")
for hour in detail.three_hourly:
    print(f"  {hour.time}: {hour.temperature}° (feels {hour.felt_temperature}°), "
          f"{hour.condition}, precip prob {hour.precipitation_probability_pct}%")

# Point lookup by slug with error handling for an unknown location.
try:
    remote = client.location("nonexistent_nowhere_0").get_forecast()
except LocationNotFound:
    print("\nLocationNotFound raised for unknown slug — handled gracefully")

print("\nexercised: locations.search / get_forecast / LocationNotFound")
All endpoints · 2 totalmissing one? ·

Searches meteoblue's location database by place name and returns matching places ranked by the site's relevance ranking, 10 per page. Each result carries location_slug, the identifier consumed by get_weather_forecast, plus coordinates, altitude, IANA timezone, country and administrative region. Paginated via page (default 1); pages and total_count come from the site, has_more is true while further pages exist. A query with no matches returns an empty results array with total_count 0.

Input
ParamTypeDescription
pageinteger1-based result page; each page holds 10 results.
queryrequiredstringFree-text place name to search for (city, town, airport). Partial names are matched.
Response
{
  "type": "object",
  "fields": {
    "page": "integer, current page",
    "pages": "integer, total number of pages reported by the site",
    "query": "the search text as echoed by the site",
    "results": "array of location records: location_slug (string identifier for get_weather_forecast), location_id (integer), name, admin1 (region), country, country_code (ISO-2), latitude, longitude, altitude_m (metres above sea level), timezone (IANA), population, iata/icao (airport codes, null when none), feature_code (GeoNames feature code)",
    "has_more": "boolean, true when page < pages",
    "total_count": "integer, total matching locations reported by the site"
  },
  "sample": {
    "data": {
      "page": 2,
      "pages": 67,
      "query": "Yong'an",
      "results": [
        {
          "iata": null,
          "icao": null,
          "name": "Yong'an",
          "admin1": "Taipei",
          "country": "Taiwan",
          "latitude": 25.0781,
          "timezone": "Asia/Taipei",
          "longitude": 121.467,
          "altitude_m": 11,
          "population": 0,
          "location_id": 11700441,
          "country_code": "TW",
          "feature_code": "PPLA4",
          "location_slug": "yong%27an_taiwan_11700441"
        },
        {
          "iata": null,
          "icao": null,
          "name": "Yongan",
          "admin1": "Jeollabuk-do",
          "country": "South Korea",
          "latitude": 36.1196,
          "timezone": "Asia/Seoul",
          "longitude": 126.953,
          "altitude_m": 21,
          "population": 0,
          "location_id": 1832642,
          "country_code": "KR",
          "feature_code": "PPLA3",
          "location_slug": "yongan_south-korea_1832642"
        }
      ],
      "has_more": true,
      "total_count": 662
    },
    "status": "success"
  }
}

About the meteoblue API

Endpoints Overview

The API exposes two endpoints. search_locations accepts a free-text query (city name, town, or airport) and returns up to 10 matching places per page, ranked by meteoblue's relevance. Each result includes a location_slug — the identifier required by the second endpoint — alongside location_id, name, admin1 (region), country, coordinates, altitude, and IANA timezone. Pagination is handled via the page parameter; the response also returns total_count and has_more so callers can determine whether additional pages exist.

Forecast Data

get_weather_forecast takes a location_slug exactly as emitted by search_locations and returns a single structured response covering four data layers: location metadata (name, region, country, latitude, longitude, altitude in metres, timezone abbreviation), current conditions (temperature, condition text, local time at the location), a daily array of 14 records, and a three_hourly array for one selected day. Each daily record includes the date, weekday, daytime and nighttime condition labels, temperature max and min, wind speed, precipitation range, sunshine hours, and a predictability figure. Units for temperature, wind speed, and precipitation are named in a units object.

3-Hourly Detail

The optional day parameter (1–14) controls which day's 3-hourly breakdown is returned in three_hourly. Each 3-hourly record carries an ISO-8601 timestamp with UTC offset, condition label, temperature, felt temperature, and wind direction. If day is omitted, the response defaults to day 1 (today). The selected_day integer and selected_date ISO date fields in the response confirm which day the three_hourly data corresponds to.

Coverage and Units

All temperature values are in Celsius, wind speed in km/h, and precipitation in millimetres, as labelled in the units object. Location coverage follows meteoblue's global database; the search endpoint matches partial names, making it straightforward to resolve ambiguous place names before fetching a forecast.

Reliability & maintenanceVerified

The meteoblue API is a managed, monitored endpoint for meteoblue.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when meteoblue.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official meteoblue.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Displaying a 14-day daily weather outlook in a travel planning app using temperature_max, temperature_min, and condition_day fields
  • Building a wind and precipitation dashboard for outdoor event scheduling using wind_speed and precipitation range from the daily array
  • Resolving user-entered city names to precise meteoblue location_slugs before fetching forecasts via search_locations
  • Showing current local conditions (temperature, condition text, local time) on a location-aware widget using the current object
  • Rendering intraday 3-hourly forecasts for a selected date using felt_temperature, wind_direction, and condition from three_hourly
  • Comparing sunshine hours across multiple locations for solar energy planning using the sunshine_hours field in daily records
  • Alerting users to low forecast predictability scores before a trip using the predictability field in the 14-day daily array
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does meteoblue have an official developer API?+
Yes. meteoblue offers an official API at https://docs.meteoblue.com/en/apis/introduction, providing various weather data packages under commercial licensing. The Parse API targets the data shown on meteoblue's public 7-day weather pages and returns it in a single structured JSON response without requiring a meteoblue API subscription.
What does get_weather_forecast return beyond the basic forecast?+
In addition to 14 daily records (date, conditions, temperature range, wind speed, precipitation range, sunshine hours, predictability), the endpoint returns a current conditions object with temperature, condition text, and the location's local time, plus a three_hourly array for the selected day containing ISO-8601 timestamps, felt temperature, wind direction, and condition labels. Location metadata including altitude, coordinates, and timezone abbreviation is also included.
Does search_locations return coordinates and timezone for each result?+
Yes. Each result in the results array includes coordinates, altitude, IANA timezone, country, and admin1 (region), in addition to the name and location_slug needed for get_weather_forecast.
Does the API return hourly (every-hour) forecast data rather than 3-hourly?+
Not currently. The finest temporal resolution available is 3-hourly, returned in the three_hourly array for one selected day. The daily array covers up to 14 days. You can fork this API on Parse and revise it to add an endpoint targeting an hourly breakdown if meteoblue exposes that granularity on its public pages.
Is historical weather data available through this API?+
Not currently. Both endpoints cover current conditions and forward-looking forecasts only — up to 14 days. Historical records are not part of the current response shape. You can fork this API on Parse and revise it to add a historical weather endpoint if that data is accessible on meteoblue's public site.
Page content last updated . Spec covers 2 endpoints from meteoblue.com.
Related APIs in WeatherSee all →
weatherforecast.com API
Get detailed 12-day weather forecasts for any location worldwide, with temperature, wind, rain, humidity, and UV index data updated three times daily. Search locations and retrieve comprehensive weather information suitable for travel planning, research, and general forecasting needs.
weatherunderground.com API
Get real-time weather data and 10-day forecasts for any location, with access to current conditions like temperature, humidity, and wind speed. Search for locations and receive detailed weather narratives to plan your day or week ahead.
openweathermap.org API
Search for cities and retrieve live weather conditions and forecasts (current, minutely precipitation, hourly and daily) by coordinates or by city name.
metoffice.gov.uk API
Access detailed UK weather forecasts, real-time lightning tracking, and weather warnings from the Met Office. Search locations to retrieve hourly, daily, regional, and long-range predictions, and monitor storm activity with spot forecasts across any geographic area.
weatherspark.com API
Get historical weather data, current METAR reports, and monthly climate summaries for any location by searching WeatherSpark's comprehensive weather database. Access detailed weather insights including temperature trends, precipitation patterns, and atmospheric conditions to power weather-dependent applications and analysis.
meteo.pl API
Get detailed weather forecasts with temperature, pressure, wind, precipitation, and cloud data for any location using multiple weather models (UM, GFS) from Poland's Institute of Meteorology and Water Management. Search locations and access available forecasts to plan ahead with comprehensive meteorological information.
accuweather.com API
Get real-time weather conditions, multi-day forecasts, and health alerts for any location worldwide. Search cities and access detailed data including allergen information and air quality to plan your activities with confidence.
wetter.com API
Retrieve structured weather forecasts from wetter.com, including daily high and low temperatures in Celsius across a 16-day outlook. Supports location-based lookups for cities and regions.