openapi: 3.0.0
info:
title: MeteoNetwork API v3
description: >-
MeteoNetwork Weather Stations APIs
Before use these APIs, please read:
Prerequisites
You need a myMeteoNetwork account. Register here for free!
These APIs use the Bearer authentication scheme:
- Get a token by /login method
- To send a request to methods, include a HTTP Header
Authorization: Bearer <token>
Some bulk methods require a BULK type token. Read the documentation to request a BULK token type through the /login method (additional information is required about the activity you are going to perform).
NOTE: a v1/v2 token (MT**********) is not valid for v3 APIs!
Environments
Public: https://api.meteonetwork.it/v3 (example, https://api.meteonetwork.it/v3/login)
Changes
REV5 (18/05/2023)
- Added Interpolated Realtime Data method
REV4 (17/05/2023)
- Added subnet_exclude filter in stations method
REV3 (04/03/2023)
- Added subnets field in stations method
- Added region_name field in stations method
- Added place_name field in stations method
- Fixed inconsistent name field in stations method
- Added wind_direction_degree field in realtime method
- Added wind_direction_degree field in archive method
REV2 (22/06/2020)
- Added geocoding search (by lat, lon, range)
REV1 (21/06/2020)
version: REV5
termsOfService: "https://www.meteonetwork.it/informative/termini-e-condizioni-generali-duso-dei-servizi-meteonetwork/"
contact:
email: settore.tecnico@meteonetwork.it
license:
name: "CC-BY 4.0"
url: "https://creativecommons.org/licenses/by/4.0/deed.en"
servers:
- url: https://api.meteonetwork.it/v3
tags:
- name: User Login
description: Credentials (e-mail and password) of myMeteoNetwork
externalDocs:
description: Register to myMeteoNetwork
url: 'http://my.meteonetwork.it/'
- name: Realtime Data
description: Realtime weather stations data
- name: Daily Data
description: Daily weather stations data
paths:
/login:
post:
tags:
- User Login
summary: Login API
description: >-
With this method you obtain a token that never expires. Save/cache it because you can generate a new one in 1 hour. MeteoNetwork reserves the right to reject or revoke a token for activities that do not comply with the terms of service.
You can also request a BULK token type that allows access to bulk methods.
BULK token type is reserved to institutions, no-profit organizations or companies. To request a bulk token you need to provide additional information about your business (see properties).
security: []
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/Credentials'
description: The email and password of my.meteonetwork.it
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Login'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/stations/{station_code}:
get:
tags:
- Weather stations
summary: Access to single weather station attributes
description: Access to single weather station attributes.
security:
- bearerAuth: []
parameters:
- name: station_code
in: path
description: Weather station code
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: "array"
items:
$ref: '#/components/schemas/Station'
'204':
description: No results found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'405':
description: Method not allowed (token not authorized for bulk methods)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/stations:
get:
tags:
- Weather stations
summary: (Bulk method) Access to single weather station attributes
description: Access to single weather station attributes. This method requires a BULK token type
security:
- bearerAuth: []
parameters:
- name: subnet
in: query
description: Get only specific subnet weather stations
required: false
schema:
type: string
- name: subnet_exclude
in: query
description: Esclude all weather stations in specific subnets (comma-separated string, ex. "metno,mistral")
required: false
schema:
type: string
- name: data_quality
in: query
description: The sensors of the weather stations are constantly monitored to provide the best quality of the meteorological data. Set to false to ignore these checks (usually you shouldn't use this feature)
required: false
schema:
type: boolean
default: true
- name: country
in: query
description: ISO 3166-1 alpha-2 country code
required: false
example: IT
schema:
type: string
- name: region
in: query
description: Region/State of country
required: false
example: lombardia
schema:
type: string
- name: lat
in: query
description: Geocoding search - Latitude (required with lat, lon, range)
required: false
example: 45.5
schema:
type: string
- name: lon
in: query
description: Geocoding search - Longitude (required with lat, lon, range)
required: false
example: 9.3
schema:
type: string
- name: range
in: query
description: Geocoding search - Range (km) (required with lat, lon, range)
required: false
example: 100
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: "array"
items:
$ref: '#/components/schemas/Station'
'204':
description: No results found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'405':
description: Method not allowed (token not authorized for bulk methods)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/data-realtime/{station_code}:
get:
tags:
- Realtime Data
summary: Access to realtime weather data of single weather station
description: Access to realtime weather data. There is a throttling of 5 requests in 1 minute.
security:
- bearerAuth: []
parameters:
- name: station_code
in: path
description: Weather station code
required: true
schema:
type: string
- name: data_quality
in: query
description: The sensors of the weather stations are constantly monitored to provide the best quality of the meteorological data. Set to false to ignore these checks (usually you shouldn't use this feature)
required: false
schema:
type: boolean
default: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: "array"
items:
$ref: '#/components/schemas/Realtime'
'204':
description: No results found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'405':
description: Method not allowed (token not authorized for bulk methods)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/data-realtime:
get:
tags:
- Realtime Data
summary: (Bulk method) Access to realtime weather data
description: Access to last data from each weather station. This method requires a BULK token type
security:
- bearerAuth: []
parameters:
- name: subnet
in: query
description: Get only specific subnet weather stations
required: false
schema:
type: string
- name: data_quality
in: query
description: The sensors of the weather stations are constantly monitored to provide the best quality of the meteorological data. Set to false to ignore these checks (usually you shouldn't use this feature)
required: false
schema:
type: boolean
default: true
- name: country
in: query
description: ISO 3166-1 alpha-2 country code
required: false
example: IT
schema:
type: string
- name: region
in: query
description: Region/State of country
required: false
example: lombardia
schema:
type: string
- name: lat
in: query
description: Geocoding search - Latitude (required with lat, lon, range)
required: false
example: 45.5
schema:
type: string
- name: lon
in: query
description: Geocoding search - Longitude (required with lat, lon, range)
required: false
example: 9.3
schema:
type: string
- name: range
in: query
description: Geocoding search - Range (km) (required with lat, lon, range)
required: false
example: 100
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: "array"
items:
$ref: '#/components/schemas/Realtime'
'204':
description: No results found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'405':
description: Method not allowed (token not authorized for bulk methods)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/data-archive/{station_code}:
get:
tags:
- Archive Data
summary: (Bulk method) Access to archived raw weather data of a single weather station
description: Access to archived raw weather data of a single weather station. This method requires a BULK token type. There is a throttling of 20 requests in 10 minutes
security:
- bearerAuth: []
parameters:
- name: station_code
in: path
description: Weather station code
required: true
schema:
type: string
- name: observation_date
in: query
description: Date of observation date
required: false
schema:
type: string
format: date
example: "2020-01-01"
default: today
- name: data_quality
in: query
description: The sensors of the weather stations are constantly monitored to provide the best quality of the meteorological data. Set to false to ignore these checks (usually you shouldn't use this feature)
required: false
schema:
type: boolean
default: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: "array"
items:
$ref: '#/components/schemas/Archive'
'204':
description: No results found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'405':
description: Method not allowed (token not authorized for bulk methods)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/data-archive:
get:
tags:
- Archive Data
summary: (Reserved method) Access to archived raw weather data
description: Access to archived raw weather data. This method requires a RESERVED token type. Please contact settore.tecnico@meteonetwork.it
security:
- bearerAuth: []
parameters:
- name: observation_date
in: query
description: Date of observation date (from 00:00 to 23:59)
required: true
schema:
type: string
format: date
example: "2020-01-01"
default: today
- name: code
in: query
description: Get only specific station code (without throttling restrictions)
required: false
schema:
type: string
- name: subnet
in: query
description: Get only specific subnet weather stations
required: false
schema:
type: string
- name: data_quality
in: query
description: The sensors of the weather stations are constantly monitored to provide the best quality of the meteorological data. Set to false to ignore these checks (usually you shouldn't use this feature)
required: false
schema:
type: boolean
default: true
- name: country
in: query
description: ISO 3166-1 alpha-2 country code
required: false
example: IT
schema:
type: string
- name: region
in: query
description: Region/State of country
required: false
example: lombardia
schema:
type: string
- name: lat
in: query
description: Geocoding search - Latitude (required with lat, lon, range)
required: false
example: 45.5
schema:
type: string
- name: lon
in: query
description: Geocoding search - Longitude (required with lat, lon, range)
required: false
example: 9.3
schema:
type: string
- name: range
in: query
description: Geocoding search - Range (km) (required with lat, lon, range)
required: false
example: 100
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: "array"
items:
$ref: '#/components/schemas/Archive'
'204':
description: No results found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'405':
description: Method not allowed (token not authorized for bulk methods)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/data-daily/{station_code}:
get:
tags:
- Daily Data
summary: Access to daily weather data of a single weather station
description: Access to daily weather data. There is a throttling of 5 requests in 1 minute.
security:
- bearerAuth: []
parameters:
- name: station_code
in: path
description: Weather station code
required: true
schema:
type: string
- name: observation_date
in: query
description: Date of observation date
required: false
schema:
type: string
format: date
example: "2020-01-01"
default: today
- name: data_quality
in: query
description: The sensors of the weather stations are constantly monitored to provide the best quality of the meteorological data. Set to false to ignore these checks (usually you shouldn't use this feature)
required: false
schema:
type: boolean
default: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: "array"
items:
$ref: '#/components/schemas/Daily'
'204':
description: No results found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'405':
description: Method not allowed (token not authorized for bulk methods)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/data-daily:
get:
tags:
- Daily Data
summary: (Bulk method) Access to daily weather data
description: Access to daily weather data. This method requires a BULK token type
security:
- bearerAuth: []
parameters:
- name: observation_date
in: query
description: Date of observation date
required: false
schema:
type: string
format: date
example: "2020-01-01"
default: today
- name: subnet
in: query
description: Get only specific subnet weather stations
required: false
schema:
type: string
- name: data_quality
in: query
description: The sensors of the weather stations are constantly monitored to provide the best quality of the meteorological data. Set to false to ignore these checks (usually you shouldn't use this feature)
required: false
schema:
type: boolean
default: true
- name: country
in: query
description: ISO 3166-1 alpha-2 country code
required: false
example: IT
schema:
type: string
- name: region
in: query
description: Region/State of country
required: false
example: lombardia
schema:
type: string
- name: lat
in: query
description: Geocoding search - Latitude (required with lat, lon, range)
required: false
example: 45.5
schema:
type: string
- name: lon
in: query
description: Geocoding search - Longitude (required with lat, lon, range)
required: false
example: 9.3
schema:
type: string
- name: range
in: query
description: Geocoding search - Range (km) (required with lat, lon, range)
required: false
example: 100
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: "array"
items:
$ref: '#/components/schemas/Daily'
'204':
description: No results found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'405':
description: Method not allowed (token not authorized for bulk methods)
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/interpolated-realtime:
get:
tags:
- Interpolated Realtime Data
summary: (BETA) Access to interpolated realtime weather data
description: Access to MeteoNetwork interpolated data. The data provided does not come from weather stations but from a 2.5km x 2.5km grid of the MeteoNetwork interpolation system. Currently the coverage is only for the Italian territory. Useful if you need meteorological data not covered by a weather station and allow calculation error tolerance.
security:
- bearerAuth: []
parameters:
- name: lat
in: query
description: Geocoding search - Latitude (required with lat, lon, range)
required: false
example: 45.5
schema:
type: string
- name: lon
in: query
description: Geocoding search - Longitude (required with lat, lon, range)
required: false
example: 9.3
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: "array"
items:
$ref: '#/components/schemas/InterpolatedRealtime'
'204':
description: No results found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- bearerAuth: []
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
schemas:
Credentials:
type: object
required:
- email
- password
properties:
email:
type: string
password:
type: string
bulk:
type: boolean
description: Request a bulk token type
default: false
company:
type: string
description: ONLY for bulk token request. Your institution, non-profit organization or company name
description:
type: string
description: ONLY for bulk token request. Describe your activity and what are you doing with MeteoNetwork APIs
contribution:
type: string
enum: [service, donation]
description: >
ONLY for bulk token request. Bulks are resource-intensive requests: we are a non-profit association and the entire IT infrastructure is maintained thanks to the valuable contribution of Members, Donors and Collaborations. So we ask for your help.
What can you do for MeteoNetwork and collaborators?
* `service` - Yes, I want to collaborate by offering our service
* `donation` - Yes, I want to contribute with a donation
You will be contacted by our team for the contribution you have chosen. Remember: we are a non-profit association that lives with your help!.
If you don't reply to our team, your token will be disabled.
Login:
type: object
properties:
status_code:
type: number
description: Response code
example: 200
access_token:
type: string
example: 1|12345678900abcdefghikEkskksksks
token_type:
type: string
description: Type of the token
example: Bearer
Error:
type: object
properties:
error:
type: boolean
status_code:
type: number
example: 401
message:
type: string
example: "Error in login"
Realtime:
type: object
properties:
observation_time_local:
type: string
title: Date and time of observation time in local time
example: '2020-06-22 10:29:00'
observation_time_utc:
type: string
title: Date and time of observation time in UTC time
example: '2020-06-22 08:29:00'
name:
type: string
title: Weather station name
example: 'Mantova - Borgochiesanuova'
station_code:
type: string
title: Station Code
example: lmb015
place:
type: string
title: Place
example: Mantova
area:
type: string
title: Area (neighborhood)
example: 'Borgochiesanuova'
latitude:
type: string
title: Latitude
example: '40.14553'
longitude:
type: string
title: Longitude
example: '18.12654'
altitude:
type: integer
title: Sea level altitude (m)
default: 0
example: 99
country:
type: string
title: ISO 3166-1 alpha-2 country code
example: IT
region_name:
type: string
title: Region/State
example: Puglia
temperature:
type: string
title: Temperature (°C)
example: '25.9'
daily_rain:
type: string
title: Daily rain from 00:00 (mm)
example: '0.0'
rad:
type: string
title: Radiation (index)
example: '694'
rh:
type: string
title: Relative Humidity (%)
example: '50'
wind_speed:
type: string
title: Wind Speed (km/h)
example: '8.21'
smlp:
type: string
title: Sea level pressure (hPa)
example: '1011.9'
wind_direction:
type: string
title: Wind Direction (cardinals)
example: S
wind_direction_degree:
type: string
title: Wind Direction (degree)
example: 44.5
wind_gust:
type: string
title: Wind gust (km/h) - if recorded by weather station
example: '15.29'
rain_rate:
type: string
title: Rain rate (mm/h)
example: '0.0'
dew_point:
type: string
title: Dew Point
example: '14.6'
uv:
type: string
title: UV (W/m2)
example: '4'
current_tmin:
type: string
title: Current daily low temperature
example: '17.7'
current_tmed:
type: string
title: Current daily average temperature
example: '21.6'
current_tmax:
type: string
title: Current daily high temperature
example: '24.5'
current_rhmin:
type: string
title: Current daily low relative humidity
example: '49'
current_rhmed:
type: string
title: Current daily average relative humidity
example: '60'
current_rhmax:
type: string
title: Current daily high relative humidity
example: '71'
current_wgustmax:
type: string
title: Current daily max wind gust (km/h) - if recorded by weather station
example: '28.8'
current_wspeedmax:
type: string
title: Current daily max wind speed (km/h)
example: '16.9'
current_wspeedmed:
type: string
title: Current daily average wind speed (km/h)
example: '7.2'
current_uvmed:
type: string
title: Current daily average UV (W/m2)
example: '3'
current_uvmax:
type: string
title: Current daily high UV (W/m2)
example: '6'
current_radmed:
type: string
title: Current daily average radiation (index)
example: '484'
current_radmax:
type: string
title: Current daily high radiation (index)
example: '966'
InterpolatedRealtime:
type: object
properties:
latitude:
type: string
title: Latitude
example: '40.14553'
longitude:
type: string
title: Longitude
example: '18.12654'
temperature:
type: string
title: Temperature (°C)
example: '25.9'
daily_rain:
type: string
title: Daily rain from 00:00 (mm)
example: '0.0'
rh:
type: string
title: Relative Humidity (%)
example: '50'
wind_speed:
type: string
title: Wind Speed (km/h)
example: '8.21'
smlp:
type: string
title: Sea level pressure (hPa)
example: '1011.9'
wind_direction:
type: string
title: Wind Direction (degree)
example: S
wind_direction_cardinal:
type: string
title: Wind Direction (cardinals)
example: 44.5
dew_point:
type: string
title: Dew Point
example: '14.6'
distance:
type: string
title: Distance in km from nearest grid point
example: '0.8'
Daily:
type: object
properties:
observation_date:
type: string
title: Date of observation (yyyy-mm-dd)
example: "2020-01-01"
station_code:
type: string
title: Station Code
example: lmb015
station_name:
type: string
title: Weather station name
example: Mantova
area:
type: string
title: Area (neighborhood)
example: 'Borgochiesanuova'
latitude:
type: string
title: Latitude
example: '40.14553'
longitude:
type: string
title: Longitude
example: '18.12654'
altitude:
type: integer
title: Sea level altitude (m)
default: 0
example: 99
country:
type: string
title: ISO 3166-1 alpha-2 country code
example: IT
region_name:
type: string
title: Region/State
example: Puglia
t_min:
type: string
title: Low Temperature (°C)
example: '25.9'
t_med:
type: string
title: Average Temperature (°C)
example: '25.9'
t_max:
type: string
title: High Temperature (°C)
example: '25.9'
rh_min:
type: string
title: Low Relative Humidity (%)
example: '50'
rh_med:
type: string
title: Average Relative Humidity (%)
example: '50'
rh_max:
type: string
title: High Relative Humidity (%)
example: '50'
rain:
type: string
title: Daily rain from 00:00 (mm)
example: '0.0'
slpres:
type: string
title: Average Sea level pressure (hPa)
example: '1011.9'
w_max:
type: string
title: Max Wind Speed (km/h)
example: '8.21'
w_med:
type: string
title: Average Wind Speed (km/h)
example: '8.21'
w_dir:
type: string
title: Average Wind Direction (cardinals)
example: S
rad_med:
type: string
title: Average Radiation (index)
example: '694'
rad_max:
type: string
title: Average Radiation (index)
example: '694'
uv_med:
type: string
title: Average UV (W/m2)
example: '1.1'
uv_max:
type: string
title: High UV (W/m2)
example: '1.5'
Station:
type: object
properties:
code:
type: string
title: Code of weather station
example: "lmb015"
latitude:
type: string
title: Latitude
example: '40.14553'
longitude:
type: string
title: Longitude
example: '18.12654'
is_valid:
type: string
title: Current status of weather station (Y is active weather station)
example: Y
insertion_date:
type: string
title: Insertion of weather station (yyyy-mm-dd)
example: "2020-01-01"
name:
type: string
title: Name of weather station
example: Mantova - Borgochiesanuova
place_name:
type: string
title: Place name (italian comune or city) of weather station
example: Mantova
area:
type: string
title: Area (neighborhood)
example: 'Borgochiesanuova'
country:
type: string
title: ISO 3166-1 alpha-2 country code
example: IT
region_name:
type: string
title: Region/State
example: Puglia
altitude:
type: integer
title: Sea level altitude (m)
example: 99
strumentation:
type: string
title: Description of weather station manufacturer
example: "Davis Vantage Vue"
soil_height:
type: integer
title: Height of weather station sensors from soil (m)
example: 220
shielding:
type: string
title: Shielding
example: 'P'
enum: ['X','C','P','W']
description: >
* `X` - No shield
* `C` - Meteorological shield
* `P` - Naturally ventilated radiation shield
* `W` - Forced ventilated radiation shield
shielding_type:
type: string
title: Shielding type
example: 'S'
enum: ['U','S','E']
description: >
* `S` - Standard
* `A` - Self-made
shielding_tested:
type: string
title: MeteoNetwork checks the type of shield (by selected manufacturer or by comparison)
example: 'N'
tipology:
type: string
title: Location tipology
example: 'U'
enum: ['U','S','E']
description: >
* `U` - Urban
* `S` - Semi-urban
* `E` - Extra-urban
buildings_distance:
type: integer
title: Distance from the nearest building (m)
example: 5
solar_range_summer_begin:
type: string
title: When sunlight begins to illuminate the weather station (summer)
example: "05:30:00"
solar_range_summer_end:
type: string
title: When sunlight stops illuminate the weather station (summer)
example: "21:00:00"
solar_range_winter_begin:
type: string
title: When sunlight begins to illuminate the weather station (winter)
example: "08:00:00"
solar_range_winter_end:
type: string
title: When sunlight stops illuminate the weather station (winter)
example: "16:30:00"
webcam:
type: string
title: Webcam URL
station_link:
type: string
title: Personal website of weather station owner
software:
type: string
title: Code of weather station management software
example: 'WL'
removal_date:
type: string
title: Date of weather station removal
default: null
time_zone_name:
type: string
title: Weather station Time Zone
example: 'Europe/Berlin'
climate_zone:
type: string
title: Type of climate zone
example: 'TCt'
images:
type: array
items:
type: string
example: "http://my.meteonetwork.it/image.jpg"
title: Array of weather station photos (URL)
subnets:
type: array
items:
type: string
example: "mistral"
title: Array of subnets
Archive:
type: object
properties:
observation_time_local:
type: string
title: Date and time of observation time in local time
example: '2020-06-22 10:29:00'
observation_time_utc:
type: string
title: Date and time of observation time in UTC time
example: '2020-06-22 08:29:00'
station_code:
type: string
title: Station Code
example: lmb015
temperature:
type: string
title: Temperature (°C)
example: '25.9'
smlp:
type: string
title: Sea level pressure (hPa)
example: '1011.9'
rh:
type: string
title: Relative Humidity (%)
example: '50'
wind_speed:
type: string
title: Wind Speed (km/h)
example: '8.21'
wind_direction:
type: string
title: Wind Direction (cardinals)
example: S
wind_direction_degree:
type: string
title: Wind Direction (degree)
example: 44.5
wind_gust:
type: string
title: Wind gust (km/h) - if recorded by weather station
example: '15.29'
rain_rate:
type: string
title: Rain rate (mm/h)
example: '0.0'
daily_rain:
type: string
title: Daily rain from 00:00 (mm)
example: '0.0'
dew_point:
type: string
title: Dew Point
example: '14.6'
rad:
type: string
title: Radiation (index)
example: '694'
uv:
type: string
title: UV (W/m2)
example: '4'