Open-Meteo · Schema

Open-Meteo Weather Response

Common response schema for Open-Meteo weather forecast and historical weather APIs

WeatherForecastHistorical WeatherAir QualityMarineClimateOpen-SourceFree

Properties

Name Type Description
latitude number WGS84 latitude of the returned data point
longitude number WGS84 longitude of the returned data point
generationtime_ms number Time in milliseconds required to generate the response
utc_offset_seconds integer Applied timezone offset from the timezone parameter
timezone string Timezone identifier (e.g. America/New_York)
timezone_abbreviation string Abbreviated timezone name (e.g. EST)
elevation number Elevation in metres of the data point above sea level
hourly_units object Units for each hourly variable
hourly object Hourly weather data
daily_units object Units for each daily variable
daily object Daily weather aggregates
View JSON Schema on GitHub

JSON Schema

open-meteo-weather-response.json Raw ↑
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/open-meteo/main/json-schema/open-meteo-weather-response.json",
  "title": "Open-Meteo Weather Response",
  "description": "Common response schema for Open-Meteo weather forecast and historical weather APIs",
  "type": "object",
  "properties": {
    "latitude": {
      "type": "number",
      "description": "WGS84 latitude of the returned data point"
    },
    "longitude": {
      "type": "number",
      "description": "WGS84 longitude of the returned data point"
    },
    "generationtime_ms": {
      "type": "number",
      "description": "Time in milliseconds required to generate the response"
    },
    "utc_offset_seconds": {
      "type": "integer",
      "description": "Applied timezone offset from the timezone parameter"
    },
    "timezone": {
      "type": "string",
      "description": "Timezone identifier (e.g. America/New_York)"
    },
    "timezone_abbreviation": {
      "type": "string",
      "description": "Abbreviated timezone name (e.g. EST)"
    },
    "elevation": {
      "type": "number",
      "description": "Elevation in metres of the data point above sea level"
    },
    "hourly_units": {
      "type": "object",
      "description": "Units for each hourly variable",
      "additionalProperties": {
        "type": "string"
      }
    },
    "hourly": {
      "type": "object",
      "description": "Hourly weather data",
      "properties": {
        "time": {
          "type": "array",
          "items": { "type": "string" },
          "description": "ISO 8601 timestamps for each hourly data point"
        },
        "temperature_2m": {
          "type": "array",
          "items": { "type": "number" },
          "description": "Air temperature at 2 metres"
        },
        "relative_humidity_2m": {
          "type": "array",
          "items": { "type": "number" },
          "description": "Relative humidity at 2 metres (%)"
        },
        "precipitation": {
          "type": "array",
          "items": { "type": "number" },
          "description": "Total precipitation (rain + showers + snow)"
        },
        "wind_speed_10m": {
          "type": "array",
          "items": { "type": "number" },
          "description": "Wind speed at 10 metres"
        },
        "wind_direction_10m": {
          "type": "array",
          "items": { "type": "number" },
          "description": "Wind direction at 10 metres (degrees)"
        },
        "weather_code": {
          "type": "array",
          "items": { "type": "integer" },
          "description": "WMO weather interpretation code"
        }
      },
      "additionalProperties": {
        "type": "array",
        "items": {}
      }
    },
    "daily_units": {
      "type": "object",
      "description": "Units for each daily variable",
      "additionalProperties": {
        "type": "string"
      }
    },
    "daily": {
      "type": "object",
      "description": "Daily weather aggregates",
      "properties": {
        "time": {
          "type": "array",
          "items": { "type": "string" },
          "description": "ISO 8601 date strings for each daily data point"
        },
        "temperature_2m_max": {
          "type": "array",
          "items": { "type": "number" },
          "description": "Daily maximum temperature at 2 metres"
        },
        "temperature_2m_min": {
          "type": "array",
          "items": { "type": "number" },
          "description": "Daily minimum temperature at 2 metres"
        },
        "precipitation_sum": {
          "type": "array",
          "items": { "type": "number" },
          "description": "Sum of daily precipitation"
        },
        "weather_code": {
          "type": "array",
          "items": { "type": "integer" },
          "description": "WMO weather interpretation code for the day"
        }
      },
      "additionalProperties": {
        "type": "array",
        "items": {}
      }
    }
  },
  "required": ["latitude", "longitude", "generationtime_ms", "utc_offset_seconds", "timezone", "timezone_abbreviation", "elevation"]
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/open-meteo-weather-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.