openapi: 3.1.0
info:
title: OpenWeather and Air Pollution One Call API
version: 1.0.0
description: Programmatic access to the OpenWeather One Call API for current, minute, hourly, and daily forecasts plus government weather alerts, and the OpenWeather Air Pollution API for current, forecast, and historical air quality data including the Air Quality Index and pollutant concentrations.
contact:
name: OpenWeather
url: https://openweathermap.org/api
license:
name: Creative Commons Attribution-ShareAlike 4.0 International
url: https://creativecommons.org/licenses/by-sa/4.0/
servers:
- url: https://api.openweathermap.org/data/3.0
description: One Call API base URL
- url: https://api.openweathermap.org/data/2.5
description: Air Pollution API base URL
security:
- appid: []
tags:
- name: One Call
description: Combined current weather, forecast, and historical weather data.
paths:
/onecall:
get:
operationId: getOneCall
summary: Current and forecast weather data for a coordinate
description: Returns current weather, minute-by-minute forecast for one hour, hourly forecast for 48 hours, daily forecast for 8 days, and any government weather alerts for the supplied latitude and longitude.
tags:
- One Call
parameters:
- name: lat
in: query
required: true
description: Latitude in decimal degrees, range -90 to 90.
schema:
type: number
format: float
- name: lon
in: query
required: true
description: Longitude in decimal degrees, range -180 to 180.
schema:
type: number
format: float
- name: exclude
in: query
required: false
description: Comma-separated list of forecast blocks to omit from the response. Allowed values are current, minutely, hourly, daily, and alerts.
schema:
type: string
- name: units
in: query
required: false
description: Units of measurement. One of standard, metric, or imperial. Default is standard (Kelvin, m/s).
schema:
type: string
enum:
- standard
- metric
- imperial
- name: lang
in: query
required: false
description: ISO language code for localized response text.
schema:
type: string
- name: appid
in: query
required: true
description: OpenWeather API key.
schema:
type: string
responses:
'200':
description: Successful response with combined weather data.
content:
application/json:
schema:
$ref: '#/components/schemas/OneCallResponse'
'400':
description: Invalid request parameters.
'401':
description: Unauthorized. Missing or invalid API key.
'429':
description: Too many requests. Rate or quota limit exceeded.
/onecall/timemachine:
get:
operationId: getOneCallTimemachine
summary: Historical weather data for a coordinate and timestamp
description: Returns historical weather data for the supplied latitude, longitude, and Unix UTC timestamp. Data depth depends on the subscription plan.
tags:
- One Call
parameters:
- name: lat
in: query
required: true
description: Latitude in decimal degrees.
schema:
type: number
format: float
- name: lon
in: query
required: true
description: Longitude in decimal degrees.
schema:
type: number
format: float
- name: dt
in: query
required: true
description: Unix UTC timestamp for the requested historical reading.
schema:
type: integer
format: int64
- name: units
in: query
required: false
schema:
type: string
enum:
- standard
- metric
- imperial
- name: lang
in: query
required: false
schema:
type: string
- name: appid
in: query
required: true
schema:
type: string
responses:
'200':
description: Historical weather data response.
content:
application/json:
schema:
type: object
'400':
description: Invalid request parameters.
'401':
description: Unauthorized.
'429':
description: Too many requests.
components:
schemas:
OneCallResponse:
type: object
properties:
lat:
type: number
format: float
lon:
type: number
format: float
timezone:
type: string
timezone_offset:
type: integer
current:
type: object
minutely:
type: array
items:
type: object
hourly:
type: array
items:
type: object
daily:
type: array
items:
type: object
alerts:
type: array
items:
type: object
securitySchemes:
appid:
type: apiKey
in: query
name: appid