Back to top

In-situ data hub

In-situ data hub is a collection of various free to use data APIs

  • In every API request you are expected to pass the following headers parameters.
    • key: You can obtain this authentication key from draxis
    • X-Consumer-Groups: standard

Air Quality: Sensors

Air Quality is a simple API allowing consumers to view various Air Quality measurements from different sources

Sensors

Sensors is a collection of low cost sensors around the world. This API retrieves the basic info of them. We have added various query URI template parameters

Get the collection
GET/airquality/sensors{?limit_records,sensor_state,access_key,bbox}

Example URI

GET /airquality/sensors?limit_records=&sensor_state=&access_key=&bbox=
URI Parameters
HideShow
limit_records
number (optional) Default: unlimited 

The maximum number of results to return.

sensor_state
text (optional) Default: "active" 

Select active / inactive or all sensors.

access_key
string (optional) Default: none 

unique string with identifier of a sensor.

bbox
array (optional) Default: "No bounding box" 

bounding box in left,bottom,right,top defines the area where the sensors are located.

Request  Sensors
HideShow
Headers
Accept: application/json
Response  200
HideShow
Headers
Content-Type: application/json
X-My-Message-Header: 42
Body
{
  "status": "success",
  "message": "",
  "data": [
    {
      "id": 2,
      "access_key": "3133443bea0d7f71171706ceb7541a97",
      "name": "DriveIt Sensor 1",
      "project": "driveit-sensor",
      "created_at": "2019-07-26 13:10:57",
      "updated_at": "2019-07-26 13:10:57",
      "deleted_at": null,
      "lng": "22.894333",
      "lat": "40.655102"
    },
    {
      "id": 10,
      "access_key": "test-1002",
      "name": "Test sensor",
      "project": "sympnia-sensor",
      "created_at": "2019-08-30 11:32:22",
      "updated_at": "2019-08-30 11:35:48",
      "deleted_at": "2019-08-30 11:35:48",
      "lng": "23.727539",
      "lat": "37.98381"
    },
    {
      "id": 13,
      "access_key": "83ee72848e5be03a9c78cdfa91b5aa9e",
      "name": "Aek",
      "project": "sympnia-sensor",
      "created_at": "2019-08-30 14:09:37",
      "updated_at": "2019-08-30 14:09:54",
      "deleted_at": "2019-08-30 14:09:54",
      "lng": "18.798452489848",
      "lat": "25.968551630399"
    }
  ]
}

Last measurements

Gets the last measurements of the low cost sensors. We have added various query URI template parameters

Get the last measurements
GET/airquality/sensors/last_measurements{?limit_records,sensor_state,limit_days_old,measurement_types,access_key,bbox,summarize,measurement_types_required}

Example URI

GET /airquality/sensors/last_measurements?limit_records=&sensor_state=&limit_days_old=&measurement_types=&access_key=&bbox=&summarize=&measurement_types_required=
URI Parameters
HideShow
limit_records
number (optional) Default: "unlimited" 

The maximum number of results to return.

sensor_state
text (optional) Default: "active" 

Select active / inactive or all sensors

limit_days_old
number (optional) Default: none 

Do not show measurements older than that many days

measurement_types
string (optional) Default: none 

Type of measurements from the sensor eg. NO2, PM10 etc.

access_key
string (optional) Default: none 

unique string with identifier of a sensor.

bbox
array (optional) Default: "No bounding box" 

bounding box in left,bottom,right,top defines the area where the sensors are located.

summarize
string (optional) Default: none 

Summarize hourly and daily the sensor measurements.

measurement_types_required
number (optional) Default: none 

It will return only the measurements that has all the (requested) measurement_types. Otherwise it will return null values

Request  Sensors
HideShow
Headers
Accept: application/json
Response  200
HideShow
Headers
Content-Type: application/json
X-My-Message-Header: 42
Body
{
  "status": "success",
  "message": "",
  "data": [
    {
      "id": 15424,
      "access_key": "LUF30010-14-SDS011",
      "name": "SDS011 - Nova Fitness",
      "project": "luftdaten-sensor",
      "last_measurement_at": "2020-02-27 09:34:15",
      "lng": "8.112",
      "lat": "53.564",
      "aq_index": "30",
      "euro_aq_index": "19.97",
      "CO": null,
      "CO2": null,
      "NO": null,
      "NO2": null,
      "O3": null,
      "PM1": null,
      "PM10": "19.97",
      "PM25": "9.29",
      "SO2": null,
      "TEMP": null,
      "HUM": null,
      "envi_index": 1
    },
    {
      "id": 11303,
      "access_key": "LUF22250-14-SDS011",
      "name": "SDS011 - Nova Fitness",
      "project": "luftdaten-sensor",
      "last_measurement_at": "2020-02-27 09:33:15",
      "lng": "5.772",
      "lat": "52.184",
      "aq_index": "41",
      "euro_aq_index": "26.71",
      "CO": null,
      "CO2": null,
      "NO": null,
      "NO2": null,
      "O3": null,
      "PM1": null,
      "PM10": "26.71",
      "PM25": "12.5",
      "SO2": null,
      "TEMP": null,
      "HUM": null,
      "envi_index": 1
    },
    {
      "id": 3488,
      "access_key": "LUF7545-14-SDS011",
      "name": "SDS011 - Nova Fitness",
      "project": "luftdaten-sensor",
      "last_measurement_at": "2020-02-27 09:34:26",
      "lng": "12.616",
      "lat": "51.454",
      "aq_index": "131",
      "euro_aq_index": "25.98",
      "CO": null,
      "CO2": null,
      "NO": null,
      "NO2": null,
      "O3": null,
      "PM1": null,
      "PM10": "25.98",
      "PM25": "24.64",
      "SO2": null,
      "TEMP": null,
      "HUM": null,
      "envi_index": 1
    }
  ]
}

Sensor Details

Gets all details for a specific sensor.

GET sensor details
GET/airquality/sensors/{id}{?sensor_state,access_key,bbox}

Example URI

GET /airquality/sensors/1?sensor_state=&access_key=&bbox=
URI Parameters
HideShow
id
number (required) Example: 1

A unique identifier of the sensor.

sensor_state
text (optional) Default: "active" 

Select active / inactive or all sensors

access_key
string (optional) Default: none 

unique string with identifier of a sensor.

bbox
array (optional) Default: "No bounding box" 

bounding box in left,bottom,right,top defines the area where the sensors are located.

Request  Sensors
HideShow
Headers
Accept: application/json
Response  200
HideShow
Headers
Content-Type: application/json
X-My-Message-Header: 42
Body
{
  "status": "success",
  "message": "",
  "data": [
    {
      "id": 1,
      "access_key": "SYMDC4F2266CC34_OLD34",
      "name": "Sympnia sensor",
      "project": "sympnia-sensor",
      "created_at": "2019-07-26 13:09:30",
      "updated_at": "2020-01-20 10:06:22",
      "deleted_at": "2020-01-27 14:58:00",
      "lng": "23.6782178",
      "lat": "37.9431788"
    }
  ]
}

Last Measurements of a Sensor

Gets last measurements for a specific sensor.

GET last measurements of a sensor
GET/airquality/sensors/{id}/last_measurements{?sensor_state,access_key,limit_records,bbox}

Example URI

GET /airquality/sensors/44/last_measurements?sensor_state=&access_key=&limit_records=&bbox=
URI Parameters
HideShow
id
number (required) Example: 44

A unique identifier of the sensor.

sensor_state
text (optional) Default: "active" 

Select active / inactive or all sensors

access_key
string (optional) Default: none 

unique string with identifier of a sensor.

limit_records
number (optional) Default: "unlimited" 

The maximum number of results to return.

bbox
array (optional) Default: "No bounding box" 

bounding box in left,bottom,right,top defines the area where the sensors are located.

Request  Sensors
HideShow
Headers
Accept: application/json
Response  200
HideShow
Headers
Content-Type: application/json
X-My-Message-Header: 42
Body
{
  "status": "success",
  "message": "",
  "data": [
    {
      "id": 44,
      "access_key": "PUR84F3EB7BC99F",
      "name": "Δημαρχείο",
      "project": "purpleair-sensor",
      "last_measurement_at": "2020-03-05 07:38:38",
      "lng": "21.7664616",
      "lat": "39.5530845",
      "aq_index": "13",
      "euro_aq_index": "4.17",
      "CO": null,
      "CO2": null,
      "NO": null,
      "NO2": null,
      "O3": null,
      "PM1": "2.53",
      "PM10": "4.17",
      "PM25": "4",
      "SO2": null,
      "TEMP": "16.666666666667",
      "HUM": "42",
      "envi_index": 1
    }
  ]
}

Historical measurements

Gets all measurements for a specific sensor.

Get the historical measurements of a sensor
GET/airquality/sensors/{id}/measurements{?sensor_state,measurement_types,start_date,end_date,summarize,measurement_types_required}

Example URI

GET /airquality/sensors/44/measurements?sensor_state=&measurement_types=&start_date=&end_date=&summarize=&measurement_types_required=
URI Parameters
HideShow
id
number (required) Example: 44

A unique identifier of the sensor.

sensor_state
text (optional) Default: "active" 

Select active / inactive or all sensors

measurement_types
string (optional) Default: none 

Type of measurements from the sensor eg. NO2, PM10 etc.

start_date
date (optional) Default: none 

Start date for a sensor which measurements are available. Also combine with end date for range results.

end_date
date (optional) Default: none 

End date for a sensor which measurements are available. Also combine with start date for range results.

summarize
string (optional) Default: none 

Summarize hourly and daily the sensor measurements.

measurement_types_required
number (optional) Default: none 

It will return only the measurements that has all the (requested) measurement_types. Otherwise it will return null values

Request  Sensors
HideShow
Headers
Accept: application/json
Response  200
HideShow
Headers
Content-Type: application/json
X-My-Message-Header: 42
Body
{
  "status": "success",
  "message": "",
  "data": [
    {
      "t": "2019-11-06 09:01:13",
      "PM1": "18.94",
      "PM10": "29.96",
      "PM25": "28.16",
      "TEMP": null,
      "HUM": null
    },
    {
      "t": "2019-11-06 10:01:15",
      "PM1": "15.17",
      "PM10": "24.58",
      "PM25": "22.91",
      "TEMP": null,
      "HUM": null
    },
    {
      "t": "2019-11-06 11:01:12",
      "PM1": "13.74",
      "PM10": "21.97",
      "PM25": "20.68",
      "TEMP": null,
      "HUM": null
    }
  ]
}

Capabilities

Gets the capabilities of a certain sensor based on the known measurements

Get the capabilities of a sensor
GET/airquality/sensors/{id}/capabilities

Example URI

GET /airquality/sensors/44/capabilities
URI Parameters
HideShow
id
number (required) Example: 44

A unique identifier of the sensor.

Request  Sensors
HideShow
Headers
Accept: application/json
Response  200
HideShow
Headers
Content-Type: application/json
X-My-Message-Header: 42
Body
{
  "status": "success",
  "message": "",
  "data": [
    {
      "capability": "HUM"
    },
    {
      "capability": "PM1"
    },
    {
      "capability": "PM10"
    },
    {
      "capability": "PM25"
    },
    {
      "capability": "TEMP"
    }
  ]
}

Air Quality: Stations

Stations

Stations is a collection of accurate sensors around the world. This API retrieves the basic info of them. We have added various query URI template parameters

Get the stations collection
GET/airquality/stations{?limit_records,bbox,name}

Example URI

GET /airquality/stations?limit_records=&bbox=&name=
URI Parameters
HideShow
limit_records
number (optional) Default: unlimited 

The maximum number of results to return.

bbox
array (optional) Default: "No bounding box" 

bounding box in left,bottom,right,top defines the area where the sensors are located.

name
string (optional) Default: none 

The name of the station where the sesnor located.

Request  GET
HideShow
Headers
Accept: application/json
Response  200
HideShow
Headers
Content-Type: application/json
X-My-Message-Header: 42
Body
{
  "status": "success",
  "message": "",
  "data": [
    {
      "id": 10674,
      "key": "68f48170-5e42-11ea-8c09-03510b3f7710",
      "is_forecast": true,
      "lng": "-80.03071",
      "lat": "33.183018",
      "region_name": "BERKELEY",
      "name": "Moncks Corner",
      "refresh_interval": "daily",
      "country": "",
      "station_source": "test",
      "created_at": "2020-03-04 18:03:10",
      "updated_at": "2020-03-04 18:03:10"
    },
    {
      "id": 10673,
      "key": "4943e4d0-5e42-11ea-8530-25e77f503311",
      "is_forecast": true,
      "lng": "-82.81067",
      "lat": "34.63596",
      "region_name": "ANDERSON",
      "name": "Garrison Arena",
      "refresh_interval": "daily",
      "country": "",
      "station_source": "test",
      "created_at": "2020-03-04 18:02:17",
      "updated_at": "2020-03-04 21:02:21"
    },
    {
      "id": 10672,
      "key": "ff363070-5dcc-11ea-b185-9d87bfa90fbd",
      "is_forecast": true,
      "lng": "-123.19847",
      "lat": "39.11239",
      "region_name": "CA8 - ARB",
      "name": "MMCA81037",
      "refresh_interval": "daily",
      "country": "",
      "station_source": "test",
      "created_at": "2020-03-04 04:02:42",
      "updated_at": "2020-03-04 22:03:35"
    }
  ]
}

station details

Gets all details for a specific station.

Get the details of a station
GET/airquality/stations/{id}

Example URI

GET /airquality/stations/1
URI Parameters
HideShow
id
number (required) Example: 1

A unique identifier of the station.

Request  GET
HideShow
Headers
Accept: application/json
Response  200
HideShow
Headers
Content-Type: application/json
X-My-Message-Header: 42
Body
{
  "status": "success",
  "message": "",
  "data": [
    {
      "id": 1,
      "key": "915a6ef0-a8d9-4bfb-b719-78e31249d962",
      "is_forecast": true,
      "lng": "22.954063",
      "lat": "40.623742",
      "region_name": "Thessaloniki",
      "name": "New City Hall",
      "refresh_interval": "daily",
      "country": "Greece",
      "station_source": null,
      "created_at": null,
      "updated_at": "2020-02-07 10:30:02"
    }
  ]
}

Last measurements of stations

Gets the last measurements of the stations. We have added various query URI template parameters

Get the last measurements of stations
GET/airquality/stations/last_measurements{?limit_records,bbox,name,measurement_types_required,measurement_types,limit_days_old}

Example URI

GET /airquality/stations/last_measurements?limit_records=&bbox=&name=&measurement_types_required=&measurement_types=&limit_days_old=
URI Parameters
HideShow
limit_records
number (optional) Default: none 

The maximum number of results to return.

bbox
array (optional) Default: "No bounding box" 

bounding box in left,bottom,right,top defines the area where the sensors are located.

name
string (optional) Default: none 

The name of the station where the sesnor located.

measurement_types_required
number (optional) Default: none 

It will return only the measurements that has all the (requested) measurement_types. Otherwise it will return null values

measurement_types
string (optional) Default: none 

Type of measurements from the sensor eg. NO2, PM10 etc.

limit_days_old
number (optional) Default: none 

Do not show measurements older than that many days

Request  GET
HideShow
Headers
Accept: application/json
Response  200
HideShow
Headers
Content-Type: application/json
X-My-Message-Header: 42
Body
{
  "status": "success",
  "message": "",
  "data": [
    {
      "id": 10674,
      "key": "68f48170-5e42-11ea-8c09-03510b3f7710",
      "is_forecast": true,
      "lng": "-80.03071",
      "lat": "33.183018",
      "region_name": "BERKELEY",
      "name": "Moncks Corner",
      "refresh_interval": "daily",
      "country": "",
      "station_source": "test",
      "created_at": "2020-03-04 18:03:10",
      "last_measurement_at": "2020-03-05 08:07:16",
      "aq_index": null,
      "euro_aq_index": "52.92",
      "CO": null,
      "CO2": null,
      "NO": null,
      "NO2": null,
      "O3": "52.92",
      "PM1": null,
      "PM10": null,
      "PM25": null,
      "SO2": null,
      "TEMP": null,
      "HUM": null,
      "envi_index": 1
    },
    {
      "id": 10673,
      "key": "4943e4d0-5e42-11ea-8530-25e77f503311",
      "is_forecast": true,
      "lng": "-82.81067",
      "lat": "34.63596",
      "region_name": "ANDERSON",
      "name": "Garrison Arena",
      "refresh_interval": "daily",
      "country": "",
      "station_source": "test",
      "created_at": "2020-03-04 18:02:17",
      "last_measurement_at": "2020-03-05 08:07:01",
      "aq_index": null,
      "euro_aq_index": "37.24",
      "CO": null,
      "CO2": null,
      "NO": null,
      "NO2": null,
      "O3": "37.24",
      "PM1": null,
      "PM10": null,
      "PM25": null,
      "SO2": null,
      "TEMP": null,
      "HUM": null,
      "envi_index": 1
    },
    {
      "id": 10672,
      "key": "ff363070-5dcc-11ea-b185-9d87bfa90fbd",
      "is_forecast": true,
      "lng": "-123.19847",
      "lat": "39.11239",
      "region_name": "CA8 - ARB",
      "name": "MMCA81037",
      "refresh_interval": "daily",
      "country": "",
      "station_source": "test",
      "created_at": "2020-03-04 04:02:42",
      "last_measurement_at": "2020-03-05 08:07:13",
      "aq_index": "13",
      "euro_aq_index": "4.2",
      "CO": null,
      "CO2": null,
      "NO": null,
      "NO2": null,
      "O3": null,
      "PM1": null,
      "PM10": null,
      "PM25": "4.2",
      "SO2": null,
      "TEMP": null,
      "HUM": null,
      "envi_index": 1
    }
  ]
}

Last measurements of a station

Gets the last measurements of a station.

Get the last measurements of a station
GET/airquality/stations/{id}/last_measurements{?limit_records,bbox,name}

Gets the last measurements of a station.

Example URI

GET /airquality/stations/1/last_measurements?limit_records=&bbox=&name=
URI Parameters
HideShow
id
number (required) Example: 1

A unique identifier of the station.

limit_records
number (optional) Default: none 

The maximum number of results to return.

bbox
array (optional) Default: "No bounding box" 

bounding box in left,bottom,right,top defines the area where the sensors are located.

name
string (optional) Default: none 

The name of the station where the sesnor located.

Request  GET
HideShow
Headers
Accept: application/json
Response  200
HideShow
Headers
Content-Type: application/json
X-My-Message-Header: 42
Body
{
  "status": "success",
  "message": "",
  "data": [
    {
      "id": 1,
      "key": "915a6ef0-a8d9-4bfb-b719-78e31249d962",
      "is_forecast": true,
      "lng": "22.954063",
      "lat": "40.623742",
      "region_name": "Thessaloniki",
      "name": "New City Hall",
      "refresh_interval": "daily",
      "country": "Greece",
      "station_source": null,
      "created_at": null,
      "last_measurement_at": "2020-03-05 10:30:03",
      "aq_index": "11",
      "euro_aq_index": "45",
      "CO": null,
      "CO2": null,
      "NO": null,
      "NO2": "28",
      "O3": "45",
      "PM1": null,
      "PM10": "12",
      "PM25": null,
      "SO2": null,
      "TEMP": null,
      "HUM": null,
      "envi_index": 1
    }
  ]
}

Historical measurements

Gets all historical measurements of a station.

Get the historical measurements of a station
GET/airquality/stations/{id}/measurements{?limit_records,measurement_types,start_date,end_date,summarize,measurement_types_required}

Example URI

GET /airquality/stations/44/measurements?limit_records=&measurement_types=&start_date=&end_date=&summarize=&measurement_types_required=
URI Parameters
HideShow
id
number (required) Example: 44

A unique identifier of the station.

limit_records
number (optional) Default: none 

The maximum number of results to return.

measurement_types
string (optional) Default: none 

Type of measurements from the sensor eg. NO2, PM10 etc.

start_date
date (optional) Default: none 

Start date for a station which measurements are available. Also combine with end date for range results.

end_date
date (optional) Default: none 

End date for a station which measurements are available. Also combine with start date for range results.

summarize
string (optional) Default: none 

Summarize hourly and daily the sensor measurements.

measurement_types_required
number (optional) Default: none 

It will return only the measurements that has all the (requested) measurement_types. Otherwise it will return null values

Request  measurements
HideShow
Headers
Accept: application/json
Response  200
HideShow
Headers
Content-Type: application/json
X-My-Message-Header: 42
Body
{
  "status": "success",
  "message": "",
  "data": [
    {
      "t": "2019-08-02 09:30:02",
      "CO": null,
      "NO2": "45.8344",
      "O3": "50.9796",
      "PM10": "42",
      "PM25": null,
      "SO2": null
    },
    {
      "t": "2019-09-09 09:30:20",
      "CO": null,
      "NO2": "47.8272",
      "O3": "72.9708",
      "PM10": null,
      "PM25": null,
      "SO2": null
    },
    {
      "t": "2019-09-30 09:30:03",
      "CO": null,
      "NO2": "51.8128",
      "O3": "9.996",
      "PM10": null,
      "PM25": null,
      "SO2": null
    }
  ]
}

Capabilities

Gets the capabilities of a certain station based on the known measurements

Get the capabilities of a station
GET/airquality/stations/{id}/capabilities

Example URI

GET /airquality/stations/1/capabilities
URI Parameters
HideShow
id
number (required) Example: 1

A unique identifier of the station.

Request  GET
HideShow
Headers
Accept: application/json
Response  200
HideShow
Headers
Content-Type: application/json
X-My-Message-Header: 42
Body
{
  "status": "success",
  "message": "",
  "data": [
    {
      "capability": "CO"
    },
    {
      "capability": "NO2"
    },
    {
      "capability": "O3"
    },
    {
      "capability": "PM10"
    },
    {
      "capability": "PM25"
    },
    {
      "capability": "SO2"
    }
  ]
}

Air Quality: CAMS Forecast

CAMS stand for Copernicus Atmosphere Monitoring Service. Provides current, historical and forecast measurements.

Get the latest CAMS current measurements

Gets the current measurement from CAMS.

Get the latest CAMS current measurements
GET/airquality/cams/current{?lat,lon,vars}

Example URI

GET /airquality/cams/current?lat=22.9594982&lon=40.57&vars=pm25, no2, pm10, so2, o3
URI Parameters
HideShow
lat
number (required) Example: 22.9594982

Latitude coordinates.

lon
number (required) Example: 40.57

Longitudes coordinates.

vars
string (required) Example: pm25, no2, pm10, so2, o3

Variables for air quality.

Request  GET
HideShow
Headers
Accept: application/json
Response  200
HideShow
Headers
Content-Type: application/json
X-My-Message-Header: 42
Body
{
  "current": {
    "pm25": {
      "value": "12.08",
      "measured_at": "2020-03-06",
      "unit": "µg/m³"
    },
    "no2": {
      "value": "0.15",
      "measured_at": "2020-03-06",
      "unit": "µg/m³"
    },
    "pm10": {
      "value": "34.22",
      "measured_at": "2020-03-06",
      "unit": "µg/m³"
    },
    "so2": {
      "value": "0.61",
      "measured_at": "2020-03-06",
      "unit": "µg/m³"
    },
    "o3": {
      "value": "83.95",
      "measured_at": "2020-03-06",
      "unit": "µg/m³"
    }
  },
  "unit": "µg/m³"
}

Get the latest CAMS historical measurements

Gets the historical measurements from CAMS.

Get the latest CAMS history measurements
GET/airquality/cams/history{?lat,lon,vars}

Example URI

GET /airquality/cams/history?lat=22.9594982&lon=40.57&vars=pm25, no2, pm10, so2, o3
URI Parameters
HideShow
lat
number (required) Example: 22.9594982

Latitude coordinates.

lon
number (required) Example: 40.57

Longitudes coordinates.

vars
string (required) Example: pm25, no2, pm10, so2, o3

Variables for air quality.

Request  GET
HideShow
Headers
Accept: application/json
Response  200
HideShow
Headers
Content-Type: application/json
X-My-Message-Header: 42
Body
{
  "history": {
    "pm25": [
      {
        "value": "9.25467524837131",
        "measured_at": "2020-03-04"
      },
      {
        "value": "21.4013020638504",
        "measured_at": "2020-03-05"
      }
    ],
    "no2": [
      {
        "value": "0.125466304012889",
        "measured_at": "2020-03-04"
      },
      {
        "value": "0.194009697196407",
        "measured_at": "2020-03-05"
      }
    ],
    "pm10": [
      {
        "value": "55.5666161972113",
        "measured_at": "2020-03-04"
      },
      {
        "value": "112.387965600647",
        "measured_at": "2020-03-05"
      }
    ],
    "so2": [
      {
        "value": "0.887887097178464",
        "measured_at": "2020-03-04"
      },
      {
        "value": "1.52807899667096",
        "measured_at": "2020-03-05"
      }
    ],
    "o3": [
      {
        "value": "97.3002016735336",
        "measured_at": "2020-03-04"
      },
      {
        "value": "95.8062571498886",
        "measured_at": "2020-03-05"
      }
    ]
  },
  "unit": "µg/m³"
}

Get the latest CAMS forecast measurements

Gets the next three days forecast measurements from CAMS.

Get the latest CAMS forecast measurements
GET/airquality/cams/forecast{?lat,lon,vars}

Example URI

GET /airquality/cams/forecast?lat=22.9594982&lon=40.57&vars=pm25, no2, pm10, so2, o3
URI Parameters
HideShow
lat
number (required) Example: 22.9594982

Latitude coordinates.

lon
number (required) Example: 40.57

Longitudes coordinates.

vars
string (required) Example: pm25, no2, pm10, so2, o3

Variables for air quality.

Request  GET
HideShow
Headers
Accept: application/json
Response  200
HideShow
Headers
Content-Type: application/json
X-My-Message-Header: 42
Body
{
  "forecast": {
    "pm25": [
      {
        "value": "24.81",
        "measured_at": "2020-03-07"
      },
      {
        "value": "39.78",
        "measured_at": "2020-03-08"
      },
      {
        "value": "26.56",
        "measured_at": "2020-03-09"
      }
    ],
    "no2": [
      {
        "value": "0.22",
        "measured_at": "2020-03-07"
      },
      {
        "value": "0.15",
        "measured_at": "2020-03-08"
      },
      {
        "value": "0.16",
        "measured_at": "2020-03-09"
      }
    ],
    "pm10": [
      {
        "value": "150.58",
        "measured_at": "2020-03-07"
      },
      {
        "value": "103.91",
        "measured_at": "2020-03-08"
      },
      {
        "value": "97.14",
        "measured_at": "2020-03-09"
      }
    ],
    "so2": [
      {
        "value": "1.47",
        "measured_at": "2020-03-07"
      },
      {
        "value": "2.06",
        "measured_at": "2020-03-08"
      },
      {
        "value": "1.96",
        "measured_at": "2020-03-09"
      }
    ],
    "o3": [
      {
        "value": "100.67",
        "measured_at": "2020-03-07"
      },
      {
        "value": "114.02",
        "measured_at": "2020-03-08"
      },
      {
        "value": "113.73",
        "measured_at": "2020-03-09"
      }
    ]
  },
  "unit": "µg/m³"
}

Weather

Resources to weather forecast and observations.

Resolutions

Resolutions
GET/weather/meteo/resolutions

Get the available resolutions of the weather datasets.

Example URI

GET /weather/meteo/resolutions
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  "6km",
  "6kmobserved",
  "2km",
  "18km",
  "18kmobserved",
  "2kmobserved"
]

Variables

Variables
GET/weather/meteo/variables

Get the available variables for a given resolution.

Example URI

GET /weather/meteo/variables
URI Parameters
HideShow
resolution
string (optional) 

A resolution as retrieved from the /resolutions endpoint. If the resolution is not provided then the API will return the union of all available variables from all available resolutions.

Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  "precipitation",
  "rh2m",
  "surfacepressure",
  "surfacesolarradiation",
  "temperature2m",
  "windspeed10m",
  "totalcloudines",
  "reference_et",
  "temperature2m_min",
  "temperature2m_max"
]

Hourly Data

Hourly Data
GET/weather/meteo/hourly

Get hourly data at a given location and a specified period.

Example URI

GET /weather/meteo/hourly
URI Parameters
HideShow
lat
number (required) 

The location latitude (-90 to 90).

lon
number (required) 

The location longitude (from -180 to 180).

from_date
string (required) 

The period start. Format yyyy-mm-dd or yyyy-mm-ddThh (e.g. 2019-01-25T05).

to_date
string (required) 

The period end. Format yyyy-mm-dd or yyyy-mm-ddThh (e.g. 2019-01-25T05).

at_date
string (optional) 

Alternative to the from-to date parameters. The at_date parameter is a convenient way of retrieving the weather for a single day or a single hour. The format is the same as above.

resolution
string (optional) 

A resolution as retrieved from the /resolutions endpoint. If not provided then the default resolution will be used.

variables
string (optional) 

The required variables as retrieved from the /variables endpoint in comma separated form (e.g. temperature2m,rh2m).

timezone
string (optional) 

If a timezone string is provided (e.g. Europe/Athens) then the given dates will be considered as belonging to that timezone and the returned timestamps will also include the timezone offset. If the timezone is not provided then the default timezone will be used which is Etc/Utc.

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "temperature2m": {
    "data": {
      "2019-10-02T10:00:00+0000": 27.7229375,
      "2019-10-02T11:00:00+0000": 28.5099375,
      "2019-10-02T12:00:00+0000": 28.4596875
    },
    "unit": "C",
    "description": "Temperature [C]"
  },
  "rh2m": {
    "data": {
      "2019-10-02T10:00:00+0000": 40.4184521484375,
      "2019-10-02T11:00:00+0000": 36.6426025390625,
      "2019-10-02T12:00:00+0000": 38.4315234375
    },
    "unit": "%",
    "description": "Relative humidity [%]"
  }
}

Hourly Events

Hourly Events
GET/weather/meteo/hourly/events

Get the severe weather events identified in the datasets for a given period.

Example URI

GET /weather/meteo/hourly/events
URI Parameters
HideShow
lat
number (required) 

The location latitude (-90 to 90).

lon
number (required) 

The location longitude (from -180 to 180).

from_date
string (required) 

The period start. Format yyyy-mm-dd or yyyy-mm-ddThh (e.g. 2019-01-25T05).

to_date
string (required) 

The period end. Format yyyy-mm-dd or yyyy-mm-ddThh (e.g. 2019-01-25T05).

at_date
string (optional) 

Alternative to the from-to date parameters. The at_date parameter is a convenient way of retrieving the weather for a single day or a single hour. The format is the same as above.

resolution
string (optional) 

A resolution as retrieved from the /resolutions endpoint. If not provided then the default resolution will be used.

timezone
string (optional) 

If a timezone string is provided (e.g. Europe/Athens) then the given dates will be considered as belonging to that timezone and the returned timestamps will also include the timezone offset. If the timezone is not provided then the default timezone will be used which is Etc/Utc.

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "events": {
    "data": {
      "2019-10-05T00:00:00+0300": [
        {
          "frost": 1
        }
      ],
      "2019-10-05T01:00:00+0300": [
        {
          "frost": 1
        }
      ],
      "2019-10-05T02:00:00+0300": [
        {
          "frost": 1
        }
      ]
    },
    "description": "Severe weather events"
  }
}

Hourly Icon Class

Hourly Icon Class
GET/weather/meteo/hourly/icon_class

Get icon classes for a specified period and location. There are 15 classes available:

  • sun

  • sun_clouds

  • sun_clouds_rain_light

  • sun_clouds_rain_moderate

  • sun_clouds_rain_heavy

  • sun_clouds_snow_light

  • sun_clouds_snow_moderate

  • sun_clouds_snow_heavy

  • clouds_rain_light

  • clouds_rain_moderate

  • clouds_rain_heavy

  • clouds_snow_light

  • clouds_snow_moderate

  • clouds_snow_heavy

  • clouds

Example URI

GET /weather/meteo/hourly/icon_class
URI Parameters
HideShow
lat
number (required) 

The location latitude (-90 to 90).

lon
number (required) 

The location longitude (from -180 to 180).

from_date
string (required) 

The period start. Format yyyy-mm-dd or yyyy-mm-ddThh (e.g. 2019-01-25T05).

to_date
string (required) 

The period end. Format yyyy-mm-dd or yyyy-mm-ddThh (e.g. 2019-01-25T05).

at_date
string (optional) 

Alternative to the from-to date parameters. The at_date parameter is a convenient way of retrieving the weather for a single day or a single hour. The format is the same as above.

extended
boolean (optional) 

If true then the API returns details about the icon class.

resolution
string (optional) 

A resolution as retrieved from the /resolutions endpoint. If not provided then the default resolution will be used.

timezone
string (optional) 

If a timezone string is provided (e.g. Europe/Athens) then the given dates will be considered as belonging to that timezone and the returned timestamps will also include the timezone offset. If the timezone is not provided then the default timezone will be used which is Etc/Utc.

Response  200
HideShow
Headers
Content-Type: application/json
Body
-- COMPACT VERSION --

  {
      "icon_class": {
          "data": {
              "2019-10-02T13:00:00+0000": "sun",
              "2019-10-02T14:00:00+0000": "sun_clouds",
              "2019-10-02T15:00:00+0000": "sun_clouds",
              "2019-10-02T16:00:00+0000": "sun_clouds_rain_light"
          },
          "description": "Weather icon class"
      }
  }

  -- EXTENDED VERSION --

  {
      "icon_class": {
          "data": {
              "2019-10-02T14:00:00+0000": {
                  "class": "sun_clouds",
                  "analysis": {
                      "has_sun": true,
                      "has_clouds": true,
                      "precipitation_severity": 0,
                      "has_snow": false
                  }
              },
              "2019-10-02T15:00:00+0000": {
                  "class": "sun_clouds",
                  "analysis": {
                      "has_sun": true,
                      "has_clouds": true,
                      "precipitation_severity": 0,
                      "has_snow": false
                  }
              },
              "2019-10-02T16:00:00+0000": {
                  "class": "sun_clouds_rain_light",
                  "analysis": {
                      "has_sun": true,
                      "has_clouds": true,
                      "precipitation_severity": 1,
                      "has_snow": false
                  }
              }
          },
          "description": "Weather icon class"
      }
  }

Daily Data

Daily Data
GET/weather/meteo/daily

Get daily data at a given location and a specified period. Daily data derive from hourly data so in order to get calculated the request must include the appropriate aggregation functions.

Example URI

GET /weather/meteo/daily
URI Parameters
HideShow
lat
number (required) 

The location latitude (-90 to 90).

lon
number (required) 

The location longitude (from -180 to 180).

from_date
string (required) 

The period start. Format yyyy-mm-dd (e.g. 2019-01-18).

to_date
string (required) 

The period end. Format yyyy-mm-dd (e.g. 2019-01-18).

at_date
string (optional) 

Alternative to the from-to date parameters. The at_date parameter is a convenient way of retrieving the weather for a single day or a single hour. The format is the same as above.

variables
string (required) 

The required variables as retrieved from the /variables endpoint in comma separated form (e.g. temperature2m,rh2m).

aggregations
string (required) 

Every variable must have a corresponding aggregation function. The available functions are: mean, min, max, sum. The aggregation functions must be comma separated and must match the order and the number of the requested variables.

resolution
string (optional) 

A resolution as retrieved from the /resolutions endpoint. If not provided then the default resolution will be used.

timezone
string (optional) 

If a timezone string is provided (e.g. Europe/Athens) then the given dates will be considered as belonging to that timezone. If the timezone is not provided then the default timezone will be used which is Etc/Utc.

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "temperature2m": {
    "data": {
      "2019-10-02": 29.942,
      "2019-10-03": 29.0924375
    },
    "unit": "C",
    "description": "Temperature [C]"
  },
  "rh2m": {
    "data": {
      "2019-10-02": 68.57758371988932,
      "2019-10-03": 67.90789296468101
    },
    "unit": "%",
    "description": "Relative humidity [%]"
  }
}

Daily Events

Daily Events
GET/weather/meteo/hourly/events

Get the severe weather events identified in the datasets for a given period in a daily manner. The API returns the maximum severity for each type of event through the day.

Example URI

GET /weather/meteo/hourly/events
URI Parameters
HideShow
lat
number (required) 

The location latitude (-90 to 90).

lon
number (required) 

The location longitude (from -180 to 180).

from_date
string (required) 

The period start. Format yyyy-mm-dd or yyyy-mm-ddThh (e.g. 2019-01-25T05).

to_date
string (required) 

The period end. Format yyyy-mm-dd or yyyy-mm-ddThh (e.g. 2019-01-25T05).

at_date
string (optional) 

Alternative to the from-to date parameters. The at_date parameter is a convenient way of retrieving the weather for a single day or a single hour. The format is the same as above.

resolution
string (optional) 

A resolution as retrieved from the /resolutions endpoint. If not provided then the default resolution will be used.

timezone
string (optional) 

If a timezone string is provided (e.g. Europe/Athens) then the given dates will be considered as belonging to that timezone and the returned timestamps will also include the timezone offset. If the timezone is not provided then the default timezone will be used which is Etc/Utc.

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "events": {
    "data": {
      "2019-11-08T00:00:00+0300": [
        {
          "frost": 2
        }
      ]
    },
    "description": "Severe weather events"
  }
}

Daily Icon Class

Daily Icon Class
GET/weather/meteo/daily/icon_class

Get icon classes for a specified period and location in a daily manner. There are 15 classes available:

  • sun

  • sun_clouds

  • sun_clouds_rain_light

  • sun_clouds_rain_moderate

  • sun_clouds_rain_heavy

  • sun_clouds_snow_light

  • sun_clouds_snow_moderate

  • sun_clouds_snow_heavy

  • clouds_rain_light

  • clouds_rain_moderate

  • clouds_rain_heavy

  • clouds_snow_light

  • clouds_snow_moderate

  • clouds_snow_heavy

  • clouds

Example URI

GET /weather/meteo/daily/icon_class
URI Parameters
HideShow
lat
number (required) 

The location latitude (-90 to 90).

lon
number (required) 

The location longitude (from -180 to 180).

from_date
string (required) 

The period start. Format yyyy-mm-dd or yyyy-mm-ddThh (e.g. 2019-01-25T05).

to_date
string (required) 

The period end. Format yyyy-mm-dd or yyyy-mm-ddThh (e.g. 2019-01-25T05).

at_date
string (optional) 

Alternative to the from-to date parameters. The at_date parameter is a convenient way of retrieving the weather for a single day or a single hour. The format is the same as above.

extended
boolean (optional) 

If true then the API returns details about the icon class.

resolution
string (optional) 

A resolution as retrieved from the /resolutions endpoint. If not provided then the default resolution will be used.

timezone
string (optional) 

If a timezone string is provided (e.g. Europe/Athens) then the given dates will be considered as belonging to that timezone and the returned timestamps will also include the timezone offset. If the timezone is not provided then the default timezone will be used which is Etc/Utc.

Response  200
HideShow
Headers
Content-Type: application/json
Body
-- COMPACT VERSION --

  {
      "icon_class": {
          "data": {
              "2019-10-02T13:00:00+0000": "sun",
              "2019-10-02T14:00:00+0000": "sun_clouds",
              "2019-10-02T15:00:00+0000": "sun_clouds",
              "2019-10-02T16:00:00+0000": "sun_clouds_rain_light"
          },
          "description": "Weather icon class"
      }
  }

  -- EXTENDED VERSION --

  {
      "icon_class": {
          "data": {
              "2019-10-02T14:00:00+0000": {
                  "class": "sun_clouds",
                  "analysis": {
                      "has_sun": true,
                      "has_clouds": true,
                      "precipitation_severity": 0,
                      "has_snow": false
                  }
              },
              "2019-10-02T15:00:00+0000": {
                  "class": "sun_clouds",
                  "analysis": {
                      "has_sun": true,
                      "has_clouds": true,
                      "precipitation_severity": 0,
                      "has_snow": false
                  }
              },
              "2019-10-02T16:00:00+0000": {
                  "class": "sun_clouds_rain_light",
                  "analysis": {
                      "has_sun": true,
                      "has_clouds": true,
                      "precipitation_severity": 1,
                      "has_snow": false
                  }
              }
          },
          "description": "Weather icon class"
      }
  }

GDD Crop Types

GDD Crop Types
GET/weather/gdd/crop-types

Get a list of the available crop types that can ben used in the GDD calculation.

Example URI

GET /weather/gdd/crop-types
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  "sunflower",
  "wheat",
  "cotton",
  "maize",
  "corn",
  "soybean"
]

GDD

GDD
GET/weather/gdd/calculate

Calculate the Growing Degree Days (GDD) for a crop type at a given location and a given period.

Example URI

GET /weather/gdd/calculate
URI Parameters
HideShow
lat
number (required) 

The location latitude (-90 to 90).

lon
number (required) 

The location longitude (from -180 to 180).

from_date
string (required) 

The period start. Format yyyy-mm-dd (e.g. 2019-01-18).

to_date
string (required) 

The period end. Format yyyy-mm-dd (e.g. 2019-01-18).

at_date
string (optional) 

Alternative to the from-to date parameters. The at_date parameter is a convenient way of retrieving the weather for a single day or a single hour. The format is the same as above.

crop_type
string (optional) 

A crop type as retrieved from the /crop-types endpoint. If not provided then the default Tbase will be used in the calculation.

cumulative
boolean (optional) 

If provided controls whether the response will contain the cumulative GDD values or just the plain daily values. The default value is true.

resolution
string (optional) 

A resolution as retrieved from the /resolutions endpoint. If not provided then the default resolution will be used.

timezone
string (optional) 

If a timezone string is provided (e.g. Europe/Athens) then the given dates will be considered as belonging to that timezone. If the timezone is not provided then the default timezone will be used which is Etc/Utc.

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "gdd": {
    "data": {
      "2019-09-02": 15.81759357452395,
      "2019-09-03": 31.40403175354005,
      "2019-09-04": 47.59865665435795,
      "2019-09-05": 62.84112548828131
    },
    "unit": "C",
    "description": "Growing degree days",
    "tbase": 10,
    "result-quality": 0.8
  }
}

Climatology

Resources to climatological data.

Request Data

Request Data
GET/climatology/indices/{source}/{index}

Request a climatological index.

If the requested dataset requires processing then the service will respond with a processing response for this and every consecutive identical request while the processing is in progress.

When the processing is finished then an identical call to the endpoint will return a ready response including information about the prepared dataset. See below the two different responses.

Example URI

GET /climatology/indices/source/index
URI Parameters
HideShow
source
string (required) 

The source dataset:

  • era5

  • era5_land

  • seasonal_forecast

  • seasonal_forecast_anomaly

index
string (required) 

The required climatological index:

NOTICE - Not all indices apply to all sources!

  • gdd (Growing Degree Days)

  • cdd (Cooling Degree-Days)

  • hdd (Heating Degree Days)

  • thi (Temperature Humidity Index)

  • lwi (Leaf Wetness Index)

  • fd (Frost Days)

  • id (Ice Days)

  • wet-days

  • dry-days

  • r20mm

  • tti (Total Totals Index)

  • ki (K-Index)

  • temp-avg

  • temp-min

  • temp-max

  • total-prec

  • dew-temp

  • wind

  • rh

  • pet

  • spei

  • spi

  • temp-avg-anomaly

  • temp-min-amonaly

  • temp-max-anomaly

  • temp-sea-anomaly

  • temp-soil-anomaly

  • wind-anomaly

  • sea-level-pressure-anomaly

  • runoff-rate-of-accumulation-anomaly

  • snow-density-anomaly

  • snow-depth-anomaly

  • solar-radiation-rate-of-accumulation-anomaly

  • total-prec-rate-of-accumulation-anomaly

  • gdd-anomaly

  • cdd-anomaly

  • hdd-anomaly

bbox
string (required) 

The bounding box of the result. This parameter must contain the four sides of the bounding box separated with comma in the following order: S,W,N,E

For example: 34.6,19.0,41.9,28.7

from_date
string (optional) 

This parameter is applicable to specific indices.

to_date
string (optional) 

This parameter is applicable to specific indices.

t_base
number (optional) 

This parameter is applicable to specific indices.

wind_height
number (optional) 

This parameter is applicable to specific indices.

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "status": "processing"
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "status": "ready",
  "results": [
    {
      "path": "results/34600_19000_41900_28700/era5/temp-avg_e2b1acff52f850ae17529a9c414e1c80/result.nc",
      "source": "era5",
      "variable": "t2m",
      "bbox": [
        34.75,
        19,
        41.75,
        28.5
      ],
      "min_value": -19.682937622070312,
      "max_value": 36.917083740234375,
      "times": [
        "2019-06-10T11:30:00",
        "2019-06-11T11:30:00",
        "2019-06-12T11:30:00",
        "2019-06-13T11:30:00",
        "2019-06-14T11:30:00",
        "2019-06-15T11:30:00"
      ]
    }
  ]
}

WMS

WMS
GET/climatology/data/wms/{path}

WMS compatible endpoint for accessing the datasets.

Example URI

GET /climatology/data/wms/path
URI Parameters
HideShow
path
string (required) 

The path to a dataset as returned by the climatology/indices endpoint.

Timeseries

Timeseries
GET/climatology/data/timeseries/{path}

Returns the values of a dataset at a requested location and period.

Example URI

GET /climatology/data/timeseries/path
URI Parameters
HideShow
path
string (required) 

The path to a dataset as returned by the climatology/indices endpoint.

lat
number (required) 

The location latitude (-90 to 90).

lon
number (required) 

The location longitude (from -180 to 180).

variable
string (required) 

The variable name in the dataset. (Can be retrieved from the ‘Request Data’ endpoint)

from_date
string (optional) 

The period start. Format yyyy-mm-dd (e.g. 2019-01-18).

to_date
string (optional) 

The period end. Format yyyy-mm-dd (e.g. 2019-01-18).

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "2010-08-10T11:30:00": 26.902435302734375,
  "2010-08-11T11:30:00": 27.021453857421875,
  "2010-08-12T11:30:00": 27.11334228515625,
  "2010-08-13T11:30:00": 27.454132080078125,
  "2010-08-14T11:30:00": 27.65118408203125,
  "2010-08-15T11:30:00": 27.839630126953125,
  "2010-08-16T11:30:00": 27.866668701171875
}

Clear Queue

Clear Queue
GET/climatology/clear-queue

Clears the current queue of tasks (Deletes the tasks queued in Redis).

Example URI

GET /climatology/clear-queue
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "status": "ready"
}

Generated by aglio on 14 May 2020