{
"time_period":{
"start":{
"expression":"after",
"amount":132000000
},
"end":{
"expression":"after",
"amount":432000000
}
},
"conditions":[
{
"name":"temp",
"expression":"$gt",
"amount":299
}
],
"area":[
{
"type":"Point",
"coordinates":[
53,
37
]
}
]
}
Weather Triggers
You can use simple syntax and a few API methods to create triggers which will fire on an occurrence of the selected weather conditions (temperature, humidity, pressure, etc.) in a specified period of time. For example, if you are interested in the forthcoming frosts or the probability of a wind speed increase in a certain place, you can obtain this information with the help of our new tool. More detailed description about working with the service is given below.
If the trigger's conditions are met, our service will generate an alert. In order to receive this alert you need to poll the service with the specified time interval. We plan to add push notifications and new data sources to this product's functionality in the nearest future.
Three simple steps for working with Weather Triggers API:
- Create an account in members area and receive a key to access API.
- Create the trigger with the necessary conditions for temperature, pressure, humidity, wind speed, wind direction and clouds.
- Poll our service and receive information about an occurrence or a forecast of the upcoming events in which you are interested.
Weather Triggers API basic methods
Minimal prerequisites to start working with our service: create a trigger and receive a list of the current alerts.
[POST] /triggers
This method is used to create a trigger with the necessary conditions and the indication of an interval for observations.
URL Example
http://api.openweathermap.org/data/3.0/triggers
Request Parameters
API Response
{
"__v":0,
"_id":"585268b72516b90010058184",
"alerts":{
},
"area":[
{
"type":"Point",
"_id":"585268b72516b90010058185",
"coordinates":[
53,
37
]
}
],
"conditions":[
{
"name":"temp",
"expression":"$gt",
"amount":299,
"_id":"585268b72516b90010058186"
}
],
"time_period":{
"end":{
"expression":"after",
"amount":432000000
},
"start":{
"expression":"after",
"amount":132000000
}
}
}
A full description of the returned data structure and the list of parameters can be found here.
Headers: Content-Type: application/json
[GET] /triggers/{:id}
This method is used to get all information about a trigger, including the current alerts. Information
about an occurence of the expected events is in an alert's
nested structure. The trigger
calls a separate method for receiving history notifications.
URL Example
http://api.openweathermap.org/data/3.0/triggers/5852816a9aaacb00153134a3
{
"_id":"5852816a9aaacb00153134a3",
"__v":0,
"alerts":{
"8b48b2cd21c23d2894466caccba1ed1f":{
"conditions":[
{
"current_value":{
"min":263.576,
"max":263.576
},
"condition":{
"name":"temp",
"expression":"$lt",
"amount":273,
"_id":"5852816a9aaacb00153134a5"
}
}
],
"last_update":1481802090232,
"date":1482181200000,
"coordinates":{
"lon":37,
"lat":53
}
}
},
"area":[
{
"type":"Point",
"_id":"5852816a9aaacb00153134a4",
"coordinates":[
37,
53
]
}
],
"conditions":[
{
"name":"temp",
"expression":"$lt",
"amount":273,
"_id":"5852816a9aaacb00153134a5"
}
],
"time_period":{
"end":{
"amount":432000000,
"expression":"after"
},
"start":{
"amount":132000000,
"expression":"after"
}
}
}
A full description of the returned data structure and the list of parameters can be found here.
Additional features of Weather Triggers API
Allows you to get a list of all triggers, change and remove them, receive and manage alerts history.
[GET] /triggers
The method is used to get a list of all triggers (with the current alerts) which are connected to your account.
URL Example
http://api.openweathermap.org/data/3.0/triggers
[
{
"_id":"585268b72516b90010058184",
"__v":0,
"alerts":{
},
"area":[
{
"type":"Point",
"_id":"585268b72516b90010058185",
"coordinates":[
53,
37
]
}
],
"conditions":[
{
"name":"temp",
"expression":"$gt",
"amount":299,
"_id":"585268b72516b90010058186"
}
],
"time_period":{
"end":{
"expression":"after",
"amount":432000000
},
"start":{
"expression":"after",
"amount":132000000
}
}
},
{
"_id":"585280edbe54110025ea52bb",
"__v":0,
"alerts":{
},
"area":[
{
"type":"Point",
"_id":"585280edbe54110025ea52bc",
"coordinates":[
53,
37
]
}
],
"conditions":[
{
"name":"temp",
"expression":"$lt",
"amount":273,
"_id":"585280edbe54110025ea52bd"
}
],
"time_period":{
"end":{
"amount":432000000,
"expression":"after"
},
"start":{
"amount":132000000,
"expression":"after"
}
}
},
{
"_id":"5852816a9aaacb00153134a3",
"__v":0,
"alerts":{
"8b48b2cd21c23d2894466caccba1ed1f":{
"conditions":[
{
"current_value":{
"min":263.576,
"max":263.576
},
"condition":{
"name":"temp",
"expression":"$lt",
"amount":273,
"_id":"5852816a9aaacb00153134a5"
}
}
],
"last_update":1481802090232,
"date":1482181200000,
"coordinates":{
"lon":37,
"lat":53
}
}
},
"area":[
{
"type":"Point",
"_id":"5852816a9aaacb00153134a4",
"coordinates":[
37,
53
]
}
],
"conditions":[
{
"name":"temp",
"expression":"$lt",
"amount":273,
"_id":"5852816a9aaacb00153134a5"
}
],
"time_period":{
"end":{
"amount":432000000,
"expression":"after"
},
"start":{
"amount":132000000,
"expression":"after"
}
}
}
]
A full description of the returned data structure and the list of parameters can be found here.
[PUT] /triggers/{:id}
This method is used to change a trigger's parameters.
URL Example
http://api.openweathermap.org/data/3.0/triggers/585280edbe54110025ea52bb
Request Parameters
{
"time_period":{
"start":{
"expression":"after",
"amount":132000000
},
"end":{
"expression":"after",
"amount":132000000
}
},
"conditions":[
{
"name":"temp",
"expression":"$lt",
"amount":270
}
],
"area":[
{
"type":"Point",
"coordinates":[
53,
37
]
}
]
}
API Response
{
"_id":"585268b72516b90010058184",
"__v":1,
"alerts":{
},
"area":[
{
"type":"Point",
"_id":"58528903d083a2001b7cb428",
"coordinates":[
53,
37
]
}
],
"conditions":[
{
"name":"temp",
"expression":"$lt",
"amount":270,
"_id":"58528903d083a2001b7cb427"
}
],
"time_period":{
"start":{
"expression":"after",
"amount":132000000
},
"end":{
"expression":"after",
"amount":132000000
}
}
}
A full description of the returned data structure and the list of parameters can be found here.
Headers: Content-Type: application/json
[DELETE] /triggers/{:id}
This method is used to remove a trigger from your account. In case of successful removal the service
will return an HTTP-code 204
(Successful answer).
URL Example
http://api.openweathermap.org/data/3.0/triggers/585268b72516b90010058184
[GET] /triggers/{:id}/history
This method is used to get a list of historical alerts which were generated by the specified trigger, but now become irrelevant.
URL Example
http://api.openweathermap.org/data/3.0/triggers/5852816a9aaacb00153134a3/history
[GET] /triggers/{:trigger_id}/history/{:alert_id}
This method is used to get information about the specific alert in the trigger's history. You need to pass the trigger's and the alert's ids to the query.
URL Example
http://api.openweathermap.org/data/3.0/triggers/58528.../history/671e2...
[
{
"_id":"585268b72516b90010058184",
"__v":0,
"alerts":{
},
"area":[
{
"type":"Point",
"_id":"585268b72516b90010058185",
"coordinates":[
53,
37
]
}
],
"conditions":[
{
"name":"temp",
"expression":"$gt",
"amount":299,
"_id":"585268b72516b90010058186"
}
],
"time_period":{
"end":{
"expression":"after",
"amount":432000000
},
"start":{
"expression":"after",
"amount":132000000
}
}
},
{
"_id":"585280edbe54110025ea52bb",
"__v":0,
"alerts":{
},
"area":[
{
"type":"Point",
"_id":"585280edbe54110025ea52bc",
"coordinates":[
53,
37
]
}
],
"conditions":[
{
"name":"temp",
"expression":"$lt",
"amount":273,
"_id":"585280edbe54110025ea52bd"
}
],
"time_period":{
"end":{
"amount":432000000,
"expression":"after"
},
"start":{
"amount":132000000,
"expression":"after"
}
}
},
{
"_id":"5852816a9aaacb00153134a3",
"__v":0,
"alerts":{
"8b48b2cd21c23d2894466caccba1ed1f":{
"conditions":[
{
"current_value":{
"min":263.576,
"max":263.576
},
"condition":{
"name":"temp",
"expression":"$lt",
"amount":273,
"_id":"5852816a9aaacb00153134a5"
}
}
],
"last_update":1481802090232,
"date":1482181200000,
"coordinates":{
"lon":37,
"lat":53
}
}
},
"area":[
{
"type":"Point",
"_id":"5852816a9aaacb00153134a4",
"coordinates":[
37,
53
]
}
],
"conditions":[
{
"name":"temp",
"expression":"$lt",
"amount":273,
"_id":"5852816a9aaacb00153134a5"
}
],
"time_period":{
"end":{
"amount":432000000,
"expression":"after"
},
"start":{
"amount":132000000,
"expression":"after"
}
}
}
]
[DELETE] /triggers/{:trigger_id}/history/{:alert_id}
This method is used to remove a specific alert from a trigger's history. In case of successful removal
service will return an HTTP-code 204
(Successful answer).
URL Example
http://api.openweathermap.org/data/3.0/triggers/58528.../history/671e2...
[DELETE] /triggers/{:id}/history
This method is used to remove all history of alerts from a trigger. In case of successful removal
service will return an HTTP-code 204
(Successful answer).
URL Example
http://api.openweathermap.org/data/3.0/triggers/5852816a9aaacb00153134a3/history
Weather Triggers Structure
Below is a complete description of the weather triggers and alerts data structures. All request and response parameters are also explained further in this section.
Struct Example
{
"__v":0,
"_id":"585268b72516b90010058184",
"alerts":{
},
"area":[
{
"type":"Point",
"_id":"585268b72516b90010058185",
"coordinates":[
53,
37
]
}
],
"conditions":[
{
"name":"temp",
"expression":"$gt",
"amount":299,
"_id":"585268b72516b90010058186"
}
],
"time_period":{
"end":{
"expression":"after",
"amount":432000000
},
"start":{
"expression":"after",
"amount":132000000
}
}
}
Parameters | |
---|---|
_id |
Document id |
owner |
User's id |
time_period |
Time interval's scope used to do the matching between the weather data and the trigger conditions |
conditions |
A set of conditions required for an alert creation |
area |
A set of locations where the weather data will be collected and matched with a trigger conditions |
alerts |
The named set of this trigger's current alerts |
All fields contain a nested structure except the _id
and the owner
fields.
time_period
The structure of a time_period
contains start
and end
fields.
These fields also contain nested structures describing the beginning and the end of a time interval
which is used to check the conditions.
The beginning and the end of a time interval represents a set of instructions for dynamic timestamp estimation. Timestamp is calculated considering the current time at the moment when conditions are being checked.
Parameters | |
---|---|
amount |
Number of milliseconds |
expression |
Specifies how to process value of the amount field.
The field
|
Struct Example
{
"time_period":{
"end":{
"amount":432000000,
"expression":"after"
},
"start":{
"amount":132000000,
"expression":"after"
}
}
}
conditions
The field conditions
contains an array of objects describing the parameters that are used
to do the comparison.
Parameters | |
---|---|
name |
The name of the parameter to be compared with.
The following values are allowed:
|
expression |
The expression which will be used to compare.
Field
|
amount |
Numerical value to be compared with |
Struct Example
{
"conditions":[
{
"name":"temp",
"expression":"$gt",
"amount":299,
"_id":"57fcdd4d13b0c80024ac1faa"
}
]
}
area
Field area
is an array of objects, each of which could be interpreted as a point, a point
set, polygon or set of polygons.
Parameters | |
---|---|
type |
Object type |
coordinates |
Set of coordinates |
GeoJson is taken as a syntactic
basis. In the type
field the following values are allowed: Point
,
MultiPoint
, Polygon
, MultiPolygon
.
Suchlike content is expected in the coordinates
field, depending on the specified
type
:
type | coordinates |
---|---|
Point | [100.0, 0.0] |
MultiPoint | [ [100.0, 0.0], [101.0, 1.0] ] |
Polygon (without hole) | [ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ] ] |
Polygon (with hole) | [ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ],[ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ] ] |
MultiPolygon | [ [ [ [102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0,3.0], [102.0, 2.0] ] ],[ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ],[ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ] ] ] |
Struct Example
{
"area":[
{
"type":"Point",
"_id":"57fcdd4d13b0c80024ac1fa9",
"coordinates":[
53,
37
]
}
]
}
alerts
The field alerts
contains a set of key/value pairs. The MD5 line is an alert identifier and
serves as a key. An identification key is composed of three parameters:
- Timestamp, weather data was received for.
- Type of weather API.
- The coordinates of the query to weather API.
Parameters | |
---|---|
conditions |
Current value and condition to fire on |
last_update |
Time of the last check when this condition have been fired on |
date |
Time of the measurement that matched a trigger's conditions |
coordinates |
Coordinates, for which measurements were requested |
Struct Example
{
"alerts":{
"671e2e711b86117906b4b81aa61c9bab":{
"conditions":[
{
"current_value":{
"min":270.636,
"max":270.636
},
"condition":{
"name":"temp",
"expression":"$gt",
"amount":100,
"_id":"5832d39802ec0200200abe83"
}
}
],
"last_update":1479902521846,
"date":1480280400000,
"coordinates":{
"lon":53,
"lat":37
}
}
}
}
history_alerts
Data model in the history of alerts almost repeats the structure of alerts in a trigger object, but
with two additional fields: owner
and triggerId
.
Parameters | |
---|---|
_id |
Document id |
owner |
user's id |
triggerId |
id of a trigger |
conditions |
Current value and condition to fire on |
last_update |
Time of the last check when this condition have been fired on |
date |
Time of the measurement that matched a trigger's conditions |
coordinates |
Coordinates, for which measurements were requested |