Skip to content

Instantly share code, notes, and snippets.

@ilhamgusti
Last active July 1, 2023 12:57
Show Gist options
  • Save ilhamgusti/41ca2b5678b53c3c57cd3f796d891623 to your computer and use it in GitHub Desktop.
Save ilhamgusti/41ca2b5678b53c3c57cd3f796d891623 to your computer and use it in GitHub Desktop.
openapi - open meteo
openapi: 3.0.0
info:
title: Open-Meteo APIs
description: 'Open-Meteo offers free weather forecast APIs for open-source developers and non-commercial use. No API key is required.'
version: '1.0'
contact:
name: Open-Meteo
url: https://open-meteo.com
email: info@open-meteo.com
license:
name: Attribution 4.0 International (CC BY 4.0)
url: https://creativecommons.org/licenses/by/4.0/
termsOfService: https://open-meteo.com/en/features#terms
servers:
- url: https://api.open-meteo.com
description: Unofficial Open Meteo JSON interface
paths:
/v1/forecast:
servers:
- url: https://api.open-meteo.com
get:
tags:
- Weather Forecast APIs
summary: 7 day weather forecast for coordinates
description: 7 day weather variables in hourly and daily resolution for given WGS84 latitude and longitude coordinates. Available worldwide.
parameters:
- name: hourly
in: query
explode: false
schema:
type: array
items:
type: string
enum:
- temperature_2m
- relativehumidity_2m
- dewpoint_2m
- apparent_temperature
- pressure_msl
- cloudcover
- cloudcover_low
- cloudcover_mid
- cloudcover_high
- windspeed_10m
- windspeed_80m
- windspeed_120m
- windspeed_180m
- winddirection_10m
- winddirection_80m
- winddirection_120m
- winddirection_180m
- windgusts_10m
- shortwave_radiation
- direct_radiation
- direct_normal_irradiance
- diffuse_radiation
- vapor_pressure_deficit
- evapotranspiration
- precipitation
- weathercode
- snow_height
- freezinglevel_height
- soil_temperature_0cm
- soil_temperature_6cm
- soil_temperature_18cm
- soil_temperature_54cm
- soil_moisture_0_1cm
- soil_moisture_1_3cm
- soil_moisture_3_9cm
- soil_moisture_9_27cm
- soil_moisture_27_81cm
- name: daily
in: query
schema:
type: array
items:
type: string
enum:
- temperature_2m_max
- temperature_2m_min
- apparent_temperature_max
- apparent_temperature_min
- precipitation_sum
- precipitation_hours
- weathercode
- sunrise
- sunset
- windspeed_10m_max
- windgusts_10m_max
- winddirection_10m_dominant
- shortwave_radiation_sum
- uv_index_max
- uv_index_clear_sky_max
- et0_fao_evapotranspiration
- name: latitude
in: query
required: true
description: "WGS84 coordinate"
schema:
type: number
format: float
- name: longitude
in: query
required: true
description: "WGS84 coordinate"
schema:
type: number
format: float
- name: current_weather
in: query
schema:
type: boolean
- name: temperature_unit
in: query
schema:
type: string
default: celsius
enum:
- celsius
- fahrenheit
- name: windspeed_unit
in: query
schema:
type: string
default: kmh
enum:
- kmh
- ms
- mph
- kn
- name: timeformat
in: query
description: If format `unixtime` is selected, all time values are returned in UNIX epoch time in seconds. Please not that all time is then in GMT+0! For daily values with unix timestamp, please apply `utc_offset_seconds` again to get the correct date.
schema:
type: string
default: iso8601
enum:
- iso8601
- unixtime
- name: timezone
in: query
description: If `timezone` is set, all timestamps are returned as local-time and data is returned starting at 0:00 local-time. Any time zone name from the [time zone database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) is supported.
schema:
type: string
- name: past_days
in: query
description: If `past_days` is set, yesterdays or the day before yesterdays data are also returned.
schema:
type: integer
enum:
- 1
- 2
responses:
200:
description: OK
content:
application/json:
schema:
type: object
properties:
latitude:
type: number
example: 52.52
description: WGS84 of the center of the weather grid-cell which was used to generate this forecast. This coordinate might be up to 5 km away.
longitude:
type: number
example: 13.419.52
description: WGS84 of the center of the weather grid-cell which was used to generate this forecast. This coordinate might be up to 5 km away.
elevation:
type: number
example: 44.812
description: The elevation in meters of the selected weather grid-cell. In mountain terrain it might differ from the location you would expect.
generationtime_ms:
type: number
example: 2.2119
description: Generation time of the weather forecast in milli seconds. This is mainly used for performance monitoring and improvements.
utc_offset_seconds:
type: integer
example: 3600
description: Applied timezone offset from the &timezone= parameter.
hourly:
type: object
description: For each selected weather variable, data will be returned as a floating point array. Additionally a `time` array will be returned with ISO8601 timestamps.
hourly_units:
type: object
description: For each selected weather variable, the unit will be listed here.
daily:
type: object
description: For each selected daily weather variable, data will be returned as a floating point array. Additionally a `time` array will be returned with ISO8601 timestamps.
daily_units:
type: object
description: For each selected daily weather variable, the unit will be listed here.
current_weather:
type: object
description: "Current weather conditions with the attributes: time, temperature, windspeed, winddirection and weathercode"
400:
description: Bad Request
content:
application/json:
schema:
type: object
properties:
error:
type: boolean
description: Always set true for errors
reason:
type: string
description: Description of the error
example: "Latitude must be in range of -90 to 90°. Given: 300"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment