Introduction
Getting Started
GLOBE Developer Keys
To use the GLOBE API, your device or app must be reviewed and approved by GLOBE. We require you to fill out this form (link TBD) for our review which includes information on your device, availability of the device and what type of training is being provided to your users. Once approved, you will receive a developer key. All requests to the GLOBE API must be accompanied by a valid developer key.
GLOBE Access Codes
In order to streamline the setup of citizen science devices and apps, GLOBE has implemented a token-based Access Code system to associate users with data collected by third-party devices and apps. Any GLOBE Member or GLOBE Citizen Scientist can generate an access code by going to the GLOBE Data Entry System and selecting “Register a device”.
Access Code Types
There are currently three different types of access codes available.
Stationary Device Access Codes
These access codes are intended for use with devices that don't move over time. An example would be a weather station with a fixed location. Obtaining one of these access codes will require providing the latitude, longitude, elevation and site characteristics for the location where the device will be installed. Information about the device type and model/serial number may also be provided. While these codes can be shared by all instruments on the same device (e.g.: thermometer and barometer on the same weather station), these codes should not be shared across different devices. For stationary devices, the device will not be required to send latitude, longitude or elevation with the measurement data.
Mobile Device Access Codes
These access codes are intended for use with devices that collect data on the go. An example of this might be a mobile ozone or water pH sensor. Obtaining one of these access codes will only require providing some information about the device (i.e.: type and model/serial number). Similar to the stationary device access codes, these codes should not be shared across different devices. Measurements using the mobile device access code will be required to send latitude and longitude with the measurement data.
User-Application Access Codes
For third-party apps that don't focus on a specific device, user-application access codes are appropriate. These codes are one-time login tokens that allow a user to "login" to a third-party app and submit data to GLOBE. The user can generate the access code on the access code page of the GLOBE website. Once used with a third-party app, it can only be used by that app. This allows developers to "login" to a third-party app without entering their GLOBE username and password.
Protocols
GLOBE protocols consist of over 50 different science experiments which can be performed by students, teachers or citizen scientists. Protocols are associated with the following spheres: Atmosphere, Biosphere, Hydrosphere, Pedosphere (Soil) and Earth as a System. A detailed description of the spheres and each GLOBE protocol can be found in the GLOBE teacher's guide. Protocols are added to the GLOBE API as demand and time allow. Not all protocols are currently supported by the API.
Protocols Supported by the GLOBE API
Below is a list of the GLOBE protocols that are currently supported by the GLOBE API. If you are a developer interested in submitting data for these or a different protocol, please fill out this form for our review. Once approved, you will receive a developer key.
Name | ID | Description |
---|---|---|
air temperature | 59 | The GLOBE Air Temperature protocol. For more information, see the Air Temperature Protocol in the GLOBE Teacher's Guide |
barometric pressure | 5 | The GLOBE Barometric Pressure protocol. For more information, see the Barometric Pressure Protocol in the GLOBE Teacher's Guide |
relative humidity | 6 | The GLOBE Relative Humidity protocol. For more information, see the Relative Humidity in the GLOBE Teacher's Guide |
current rainfall | 60 | The GLOBE Current Rainfall protocol. For more information, see the Precipitation in the GLOBE Teacher's Guide |
wind | 61 | The GLOBE Wind protocol. For more information, see the Wind in the GLOBE Teacher's Guide |
API Reference
Request Headers
Example Request Headers (standard production submission)
{
"X-GLOBE-DeveloperKey": "72ad021da4e03e560bbae644ae6180e9",
"X-GLOBE-AccessCode": "DEV123456",
"Content-Type": "application/json",
"Accept": "application/json"
}
Example Request Headers (force submission to staging system)
{
"X-GLOBE-DeveloperKey": "72ad021da4e03e560bbae644ae6180e9",
"X-GLOBE-AccessCode": "DEV123456",
"X-GLOBE-Environment": "staging",
"Content-Type": "application/json",
"Accept": "application/json"
}
[Insert general explanation of the request headers here]
Parameter | Description |
---|---|
X-GLOBE-DeveloperKey | Your project's unique developer key |
X-GLOBE-AccessCode | The unique GLOBE Access Code generated by the GLOBE website that associates this data with a user, organization, and site/location information. For more information about Access Codes, see the Access Codes section above. |
X-GLOBE-Environment | (Optional) Which environment you are submitting data to: production, staging, or dev. Default is production. |
X-GLOBE-API-Version | (Optional) Which version of the API you are using. The default is version 1. When future versions are released that break version 1 functionality, those versions numbers will be incremented and the developer wishing to use the new functionality will have to explicitly provide the desired version number. |
Protocol Reference
Air Temperature
Example Air Temp Submission via POST (non-mobile, consistent device):
curl --request POST \
--url https://apidev.globe.gov/submissions \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9' \
--data '{
"measuredAt": "2017-10-19T18:44:32.746Z",
"protocol": 59,
"currentTempC": 31.0
}'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions",
"method": "POST",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
},
"processData": false,
"data": {
"measuredAt": "2017-10-19T18:44:32.746Z",
"protocol": 59,
"currentTempC": 31.0
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
import json
conn = http.client.HTTPSConnection("apidev.globe.gov")
payload = {
"measuredAt": "2017-10-19T18:44:32.746Z",
"protocol": 59,
"currentTempC": 31.0
}
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("POST", "/submissions", json.dumps(payload), headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Submitting Air Temperature Measurements (POST)
Air temperature measurements can be submitted via a POST to https://apidev.globe.gov/submissions. The data posted shall be an air temperature object of the form:
Property | Required | Description |
---|---|---|
latitude | Optional | The latitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
longitude | Optional | The longitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
elevation | Optional | The elevation, in meters, where you measurement was taken. Optional with all accessCode types. |
measuredAt | Required | The UTC time of your measurement in ISO 8601 format. |
protocol | Required | The protocol name or id of the measurement being submitted. For more information about protocol names and ids, see the Protocols section above. |
currentTempC | Required | The temperature of your measurement in degrees Celsius. |
Upon successful creation, the API server will return an HTTP status of 201 and will return a copy of the created object. The return object will include an id property. This is known as the submission id and is used for subsequent calls to modify, retrieve, or delete that object.
Example Update to an Air Temp Submission via PUT (non-mobile, consistent device):
curl --request PUT \
--url https://apidev.globe.gov/submissions \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9' \
--data '{
"measuredAt": "2017-10-20T18:44:32.746Z",
"protocol": 59,
"currentTempC": 32.0
}'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions",
"method": "PUT",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache",
},
"processData": false,
"data": {
"measuredAt": "2017-10-20T18:44:32.746Z",
"protocol": 59,
"currentTempC": 32.0
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
import json
conn = http.client.HTTPSConnection("apidev.globe.gov")
payload = {
"measuredAt": "2017-10-20T18:44:32.746Z",
"protocol": 59,
"currentTempC": 32.0
}
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("PUT", "/submissions", json.dumps(payload), headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Updating Air Temperature Measurements (PUT)
Air temperature measurements can be updated via a PUT to https://apidev.globe.gov/submissions. The data submitted shall be an air temperature object of the form:
Property | Required | Description |
---|---|---|
id | Required | The submission id of the air temperature submission you wish to change. This is provided via the id property after a successful submission to the API Server. |
latitude | Optional | The latitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
longitude | Optional | The longitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
elevation | Optional | The elevation, in meters, where you measurement was taken. Optional with all accessCode types. |
measuredAt | Required | The UTC time of your measurement in ISO 8601 format. |
protocol | Required | The protocol name or id of the measurement being submitted. For more information about protocol names and ids, see the Protocols section above. |
currentTempC | Required | The temperature of your measurement in degrees Celsius. |
Upon successful update, the API server will return an HTTP status of 200 and will return a copy of the updated object.
Example Retrieval of an Air Temp Submission via GET:
curl --request GET \
--url https://apidev.globe.gov/submissions/6194949 \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions/6194949",
"method": "GET",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache",
},
"processData": false
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("apidev.globe.gov")
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("GET", "/submissions/6194949", '', headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Retrieving Air Temperature Measurements (GET)
Air temperature measurements can be retrieved via a GET to https://apidev.globe.gov/submissions/:id:
Example Deletion of an Air Temp Submission via DELETE:
curl --request DELETE \
--url https://apidev.globe.gov/submissions/6194949 \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions/6194949",
"method": "DELETE",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache",
},
"processData": false
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("apidev.globe.gov")
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("DELETE", "/submissions/6194949", '', headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Removing Air Temperature Measurements (DELETE)
Air temperature measurements can be deleted via a DELETE to https://apidev.globe.gov/submissions/:id:
Barometric Pressure
Example Barometric Pressure Submission via POST (non-mobile, consistent device):
curl --request POST \
--url https://apidev.globe.gov/submissions \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9' \
--data '{
"measuredAt": "2017-10-31T21:34:48.390Z",
"protocol": 5,
"pressure": 1100
}'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions",
"method": "POST",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache"
},
"processData": false,
"data": {
"measuredAt": "2017-10-31T21:34:48.390Z",
"protocol": 5,
"pressure": 1100
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
import json
conn = http.client.HTTPSConnection("apidev.globe.gov")
payload = {
"measuredAt": "2017-10-31T21:34:48.390Z",
"protocol": 5,
"pressure": 1100
}
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache"
}
conn.request("POST", "/submissions", json.dumps(payload), headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Submitting Barometric Pressure Measurements (POST)
Barometric pressure measurements can be submitted via a POST to https://apidev.globe.gov/submissions. The data posted shall be an barometric pressure object of the form:
Property | Required | Description |
---|---|---|
latitude | Optional | The latitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
longitude | Optional | The longitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
elevation | Optional | The elevation, in meters, where you measurement was taken. Optional with all accessCode types. |
measuredAt | Required | The UTC time of your measurement in ISO 8601 format. |
protocol | Required | The protocol name or id of the measurement being submitted. For more information about protocol names and ids, see the Protocols section above. |
pressure | Required | The presure as measured. |
barometricPressureMBar | Optional | TBD |
seaLevelPressureMBar | Optional | TBD |
pressureMethod | Optional | TBD |
level | Optional | The level that your barometric pressure measurment reflects, either 'station' or 'sealevel'. Defaults to 'station'. |
Upon successful creation, the API server will return an HTTP status of 201 and will return a copy of the created object. The return object will include an id property. This is known as the submission id and is used for subsequent calls to modify, retrieve, or delete that object.
Example Update to a Barometric Pressure via PUT (non-mobile, consistent device):
curl --request PUT \
--url https://apidev.globe.gov/submissions \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9' \
--data '{
"id": "6194952",
"measuredAt": "2017-10-31T23:34:48.390Z",
"protocol": 5,
"pressure": 1000
}'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions",
"method": "PUT",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache",
},
"processData": false,
"data": {
"id": "6194952",
"measuredAt": "2017-10-31T23:34:48.390Z",
"protocol": 5,
"pressure": 1000
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
import json
conn = http.client.HTTPSConnection("apidev.globe.gov")
payload = {
"id": "6194952",
"measuredAt": "2017-10-31T23:34:48.390Z",
"protocol": 5,
"pressure": 1000
}
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("PUT", "/submissions", json.dumps(payload), headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Updating Barometric Pressure Measurements (PUT)
Barometric pressure measurements can be updated via a PUT to https://apidev.globe.gov/submissions. The data submitted shall be an barometric pressure object of the form:
Property | Required | Description |
---|---|---|
id | Required | The submission id of the air temperature submission you wish to change. This is provided via the id property after a successful submission to the API Server. |
latitude | Optional | The latitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
longitude | Optional | The longitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
elevation | Optional | The elevation, in meters, where you measurement was taken. Optional with all accessCode types. |
measuredAt | Required | The UTC time of your measurement in ISO 8601 format. |
protocol | Required | The protocol name or id of the measurement being submitted. For more information about protocol names and ids, see the Protocols section above. |
pressure | Required | The presure as measured. |
barometricPressureMBar | Optional | TBD |
seaLevelPressureMBar | Optional | TBD |
pressureMethod | Optional | TBD |
level | Optional | The level that your barometric pressure measurment reflects, either 'station' or 'sealevel'. Defaults to 'station'. |
Upon successful update, the API server will return an HTTP status of 200 and will return a copy of the updated object.
Example Retrieval of an Barometric Pressure Submission via GET:
curl --request GET \
--url https://apidev.globe.gov/submissions/6194952 \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions/6194952",
"method": "GET",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache",
},
"processData": false
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("apidev.globe.gov")
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("GET", "/submissions/6194952", '', headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Retrieving Barometric Pressure Measurements (GET)
Barometric pressure measurements can be retrieved via a GET to https://apidev.globe.gov/submissions/:id:
Example Deletion of an Barometric Pressure Submission via DELETE:
curl --request DELETE \
--url https://apidev.globe.gov/submissions/6194952 \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions/6194952",
"method": "DELETE",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache",
},
"processData": false
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("apidev.globe.gov")
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("DELETE", "/submissions/6194952", '', headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Removing Barometric Pressure Measurements (DELETE)
Barometric pressure measurements can be deleted via a DELETE to https://apidev.globe.gov/submissions/:id:
Relative Humidity
Example Relative Humidity Submission via POST (non-mobile, consistent device):
curl --request POST \
--url https://apidev.globe.gov/submissions \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9' \
--data '{
"measuredAt": "2017-10-31T21:34:48.390Z",
"protocol": 6,
"dryBulbTempC": 32,
"relativeHumidityPercent": 60
}'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions",
"method": "POST",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache"
},
"processData": false,
"data": {
"measuredAt": "2017-10-31T21:34:48.390Z",
"protocol": 6,
"dryBulbTempC": 32,
"relativeHumidityPercent": 60
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
import json
conn = http.client.HTTPSConnection("apidev.globe.gov")
payload = {
"measuredAt": "2017-10-31T21:34:48.390Z",
"protocol": 6,
"dryBulbTempC": 32,
"relativeHumidityPercent": 60
}
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache"
}
conn.request("POST", "/submissions", json.dumps(payload), headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Submitting Relative Humidity Measurements (POST)
Relative humidity measurements can be submitted via a POST to https://apidev.globe.gov/submissions. The data posted shall be a relative humidity object of the form:
Property | Required | Description |
---|---|---|
latitude | Optional | The latitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
longitude | Optional | The longitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
elevation | Optional | The elevation, in meters, where you measurement was taken. Optional with all accessCode types. |
measuredAt | Required | The UTC time of your measurement in ISO 8601 format. |
protocol | Required | The protocol name or id of the measurement being submitted. For more information about protocol names and ids, see the Protocols section above. |
dryBulbTempC | Optional | The dry bulb temperature. |
wetBulbTempC | Optional | The wet bulb temperature if the method is 'sling psychrometer'. |
relativeHumidityPercent | Optional | The relative humidtiy is method is 'digital hygrometer'. |
humidityMethod | Optional | The method of determining the humidity, either 'digital hygrometer' or 'sling psychrometer'. If not provided, the API Server will determine this value based on the other values provided. |
ambientAirTempC | Optional | TBD |
Upon successful creation, the API server will return an HTTP status of 201 and will return a copy of the created object. The return object will include an id property. This is known as the submission id and is used for subsequent calls to modify, retrieve, or delete that object.
Example Update to an Relative Humidity Submission via PUT (non-mobile, consistent device):
curl --request PUT \
--url https://apidev.globe.gov/submissions \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9' \
--data '{
"id": 6194953,
"measuredAt": "2017-10-20T18:44:32.746Z",
"protocol": 6,
"dryBulbTempC": 33,
"relativeHumidityPercent": 65
}'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions",
"method": "PUT",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache",
},
"processData": false,
"data": {
"id": 6194953,
"measuredAt": "2017-10-20T18:44:32.746Z",
"protocol": 6,
"dryBulbTempC": 33,
"relativeHumidityPercent": 65
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
import json
conn = http.client.HTTPSConnection("apidev.globe.gov")
payload = {
"id": 6194953,
"measuredAt": "2017-10-20T18:44:32.746Z",
"protocol": 6,
"dryBulbTempC": 33,
"relativeHumidityPercent": 65
}
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("PUT", "/submissions", json.dumps(payload), headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Updating Relative Humidity Measurements (PUT)
Relative humidity measurements can be updated via a PUT to https://apidev.globe.gov/submissions. The data submitted shall be a relative humidity object of the form:
Property | Required | Description |
---|---|---|
id | Required | The submission id of the air temperature submission you wish to change. This is provided via the id property after a successful submission to the API Server. |
latitude | Optional | The latitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
longitude | Optional | The longitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
elevation | Optional | The elevation, in meters, where you measurement was taken. Optional with all accessCode types. |
measuredAt | Required | The UTC time of your measurement in ISO 8601 format. |
protocol | Required | The protocol name or id of the measurement being submitted. For more information about protocol names and ids, see the Protocols section above. |
dryBulbTempC | Optional | The dry bulb temperature. |
wetBulbTempC | Optional | The wet bulb temperature if the method is 'sling psychrometer'. |
relativeHumidityPercent | Optional | The relative humidtiy is method is 'digital hygrometer'. |
humidityMethod | Optional | The method of determining the humidity, either 'digital hygrometer' or 'sling psychrometer'. If not provided, the API Server will determine this value based on the other values provided. |
ambientAirTempC | Optional | TBD |
Upon successful update, the API server will return an HTTP status of 200 and will return a copy of the updated object.
Example Retrieval of a Relative Humidity Submission via GET:
curl --request GET \
--url https://apidev.globe.gov/submissions/6194953 \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions/6194953",
"method": "GET",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache",
},
"processData": false
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("apidev.globe.gov")
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("GET", "/submissions/6194953", '', headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Retrieving Relative Humidity Measurements (GET)
Relative humidity measurements can be retrieved via a GET to https://apidev.globe.gov/submissions/:id:
Example Deletion of a Relative Humidity Submission via DELETE:
curl --request DELETE \
--url https://apidev.globe.gov/submissions/6194953 \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions/6194953",
"method": "DELETE",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache",
},
"processData": false
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("apidev.globe.gov")
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("DELETE", "/submissions/6194953", '', headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Removing Relative Humidity Measurements (DELETE)
Relative humidity measurements can be deleted via a DELETE to https://apidev.globe.gov/submissions/:id:
Current Rainfall
Example Current Rainfall Submission via POST (non-mobile, consistent device):
curl --request POST \
--url https://apidev.globe.gov/submissions \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9' \
--data '{
"measuredAt": "2017-10-31T21:34:48.390Z",
"protocol": 60,
"accumulationMM": 44
}'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions",
"method": "POST",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache"
},
"processData": false,
"data": {
"measuredAt": "2017-10-31T21:34:48.390Z",
"protocol": 60,
"accumulationMM": 44
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
import json
conn = http.client.HTTPSConnection("apidev.globe.gov")
payload = {
"measuredAt": "2017-10-31T21:34:48.390Z",
"protocol": 60,
"accumulationMM": 44
}
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache"
}
conn.request("POST", "/submissions", json.dumps(payload), headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Submitting Current Rainfall Measurements (POST)
Current rainfall measurements can be submitted via a POST to https://apidev.globe.gov/submissions. The data posted shall be a current rainfall object of the form:
Property | Required | Description |
---|---|---|
latitude | Optional | The latitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
longitude | Optional | The longitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
elevation | Optional | The elevation, in meters, where you measurement was taken. Optional with all accessCode types. |
measuredAt | Required | The UTC time of your measurement in ISO 8601 format. |
protocol | Required | The protocol name or id of the measurement being submitted. For more information about protocol names and ids, see the Protocols section above. |
accumulationMM | Required | The accumulated rainfall in milimeters. |
accumulationRateMMH | Optional | The accumulated rainfall rate in milimeters per hour. |
Upon successful creation, the API server will return an HTTP status of 201 and will return a copy of the created object. The return object will include an id property. This is known as the submission id and is used for subsequent calls to modify, retrieve, or delete that object.
Example Update to an Current Rainfall Submission via PUT (non-mobile, consistent device):
curl --request PUT \
--url https://apidev.globe.gov/submissions \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9' \
--data '{
"measuredAt": "2017-10-20T18:44:32.746Z",
"protocol": 60,
"accumulationMM": 45
}'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions",
"method": "PUT",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache",
},
"processData": false,
"data": {
"measuredAt": "2017-10-20T18:44:32.746Z",
"protocol": 60,
"accumulationMM": 45
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
import json
conn = http.client.HTTPSConnection("apidev.globe.gov")
payload = {
"measuredAt": "2017-10-20T18:44:32.746Z",
"protocol": 60,
"accumulationMM": 45
}
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("PUT", "/submissions", json.dumps(payload), headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Updating Current Rainfall Measurements (PUT)
Current rainfall measurements can be updated via a PUT to https://apidev.globe.gov/submissions. The data submitted shall be a current rainfall object of the form:
Property | Required | Description |
---|---|---|
id | Required | The submission id of the air temperature submission you wish to change. This is provided via the id property after a successful submission to the API Server. |
latitude | Optional | The latitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
longitude | Optional | The longitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
elevation | Optional | The elevation, in meters, where you measurement was taken. Optional with all accessCode types. |
measuredAt | Required | The UTC time of your measurement in ISO 8601 format. |
protocol | Required | The protocol name or id of the measurement being submitted. For more information about protocol names and ids, see the Protocols section above. |
accumulationMM | Required | The accumulated rainfall in milimeters. |
accumulationRateMMH | Optional | The accumulated rainfall rate in milimeters per hour. |
Upon successful update, the API server will return an HTTP status of 200 and will return a copy of the updated object.
Example Retrieval of an Current Rainfall Submission via GET:
curl --request GET \
--url https://apidev.globe.gov/submissions/6194949 \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions/6194949",
"method": "GET",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache",
},
"processData": false
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("apidev.globe.gov")
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("GET", "/submissions/6194949", '', headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Retrieving Current Rainfall Measurements (GET)
Current rainfall measurements can be retrieved via a GET to https://apidev.globe.gov/submissions/:id:
Example Deletion of an Current Rainfall Submission via DELETE:
curl --request DELETE \
--url https://apidev.globe.gov/submissions/6194949 \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions/6194949",
"method": "DELETE",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache",
},
"processData": false
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("apidev.globe.gov")
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("DELETE", "/submissions/6194949", '', headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Removing Current Rainfall Measurements (DELETE)
Current rainfall measurements can be deleted via a DELETE to https://apidev.globe.gov/submissions/:id:
Wind
Example Wind Submission via POST (non-mobile, consistent device):
curl --request POST \
--url https://apidev.globe.gov/submissions \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9' \
--data '{
"measuredAt": "2017-10-31T21:34:48.390Z",
"protocol": 61,
"speedMPS": 3.8,
"gustMPS": 20.5,
"direction": 351
}'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions",
"method": "POST",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache"
},
"processData": false,
"data": {
"measuredAt": "2017-10-31T21:34:48.390Z",
"protocol": 61,
"speedMPS": 3.8,
"gustMPS": 20.5,
"direction": 351
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
import json
conn = http.client.HTTPSConnection("apidev.globe.gov")
payload = {
"measuredAt": "2017-10-31T21:34:48.390Z",
"protocol": 61,
"speedMPS": 3.8,
"gustMPS": 20.5,
"direction": 351
"pressure": 1100
}
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache"
}
conn.request("POST", "/submissions", json.dumps(payload), headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Submitting Wind Measurements (POST)
Wind measurements can be submitted via a POST to https://apidev.globe.gov/submissions. The data posted shall be an wind object of the form:
Property | Required | Description |
---|---|---|
latitude | Optional | The latitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
longitude | Optional | The longitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
elevation | Optional | The elevation, in meters, where you measurement was taken. Optional with all accessCode types. |
measuredAt | Required | The UTC time of your measurement in ISO 8601 format. |
protocol | Required | The protocol name or id of the measurement being submitted. For more information about protocol names and ids, see the Protocols section above. |
speedMPS | Optional | The wind speed in meters per second. |
speedFlag | Optional | If speedMPS is unavailable, speedFlag should be set to 'missing'. |
gustMPS | Optional | The gust speed in meters per second. |
direction | Optional | The direction, in degrees, of the wind as measured. |
directionFlag | Optional | If direction is unavailble, directionFlag should be set to 'missing'. |
directionPrecision | Optional | TBD |
windDirectionMethod | Optional | The method of determining the wind direction, either 'automated' or 'GLOBE instrument'. Default is 'automated'. |
Upon successful creation, the API server will return an HTTP status of 201 and will return a copy of the created object. The return object will include an id property. This is known as the submission id and is used for subsequent calls to modify, retrieve, or delete that object.
Example Update to a Wind Submission via PUT (non-mobile, consistent device):
curl --request PUT \
--url https://apidev.globe.gov/submissions \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9' \
--data '{
"measuredAt": "2017-10-20T18:44:32.746Z",
"protocol": 61,
"speedMPS": 4.8,
"gustMPS": 21.5,
"direction": 251
}'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions",
"method": "PUT",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache",
},
"processData": false,
"data": {
"measuredAt": "2017-10-20T18:44:32.746Z",
"protocol": 61,
"speedMPS": 4.8,
"gustMPS": 21.5,
"direction": 251
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
import json
conn = http.client.HTTPSConnection("apidev.globe.gov")
payload = {
"measuredAt": "2017-10-20T18:44:32.746Z",
"protocol": 61,
"speedMPS": 4.8,
"gustMPS": 21.5,
"direction": 251
}
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("PUT", "/submissions", json.dumps(payload), headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Updating Wind Measurements (PUT)
Wind measurements can be updated via a PUT to https://apidev.globe.gov/submissions. The data submitted shall be an wind object of the form:
Property | Required | Description |
---|---|---|
id | Required | The submission id of the air temperature submission you wish to change. This is provided via the id property after a successful submission to the API Server. |
latitude | Optional | The latitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
longitude | Optional | The longitude where your measurement was taken. Optional as long as the accessCode is a Stationary Device Access Code. (TBD... OR if a siteID is provided.) |
elevation | Optional | The elevation, in meters, where you measurement was taken. Optional with all accessCode types. |
measuredAt | Required | The UTC time of your measurement in ISO 8601 format. |
protocol | Required | The protocol name or id of the measurement being submitted. For more information about protocol names and ids, see the Protocols section above. |
speedMPS | Optional | The wind speed in meters per second. |
speedFlag | Optional | If speedMPS is unavailable, speedFlag should be set to 'missing'. |
gustMPS | Optional | The gust speed in meters per second. |
direction | Optional | The direction, in degrees, of the wind as measured. |
directionFlag | Optional | If direction is unavailble, directionFlag should be set to 'missing'. |
directionPrecision | Optional | TBD |
windDirectionMethod | Optional | The method of determining the wind direction, either 'automated' or 'GLOBE instrument'. Default is 'automated'. |
Upon successful update, the API server will return an HTTP status of 200 and will return a copy of the updated object.
Example Retrieval of a Wind Submission via GET:
curl --request GET \
--url https://apidev.globe.gov/submissions/6194949 \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions/6194949",
"method": "GET",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache",
},
"processData": false
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("apidev.globe.gov")
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("GET", "/submissions/6194949", '', headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Retrieving Wind Measurements (GET)
Wind measurements can be retrieved via a GET to https://apidev.globe.gov/submissions/:id:
Example Deletion of a Wind Submission via DELETE:
curl --request DELETE \
--url https://apidev.globe.gov/submissions/6194949 \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions/6194949",
"method": "DELETE",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache",
},
"processData": false
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
conn = http.client.HTTPSConnection("apidev.globe.gov")
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache",
}
conn.request("DELETE", "/submissions/6194949", '', headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Removing Wind Measurements (DELETE)
Wind measurements can be deleted via a DELETE to https://apidev.globe.gov/submissions/:id:
Bulk Submissions
Example Submission of Air Temperature, Barometric Pressure, and Current Rainfall in one submission via POST (non-mobile, consistent device):
curl --request POST \
--url https://apidev.globe.gov/submissions \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--header 'x-globe-accesscode: DEV123456' \
--header 'x-globe-developerkey: 72ad021da4e03e560bbae644ae6180e9' \
--data '[{
"measuredAt": "2017-11-01T21:09:53.147Z",
"protocol": 59,
"currentTempC": 31.0
},
{
"measuredAt": "2017-11-01T21:09:53.147Z",
"protocol": 5,
"pressure": 1100
},
{
"measuredAt": "2017-11-01T21:09:53.147Z",
"protocol": 60,
"accumulationMM": 44
}]'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://apidev.globe.gov/submissions",
"method": "POST",
"headers": {
"content-type": "application/json",
"x-globe-developerkey": "72ad021da4e03e560bbae644ae6180e9",
"x-globe-accesscode": "DEV123456",
"cache-control": "no-cache"
},
"processData": false,
"data": [{
"measuredAt": "2017-11-01T21:09:53.147Z",
"protocol": 59,
"currentTempC": 31.0
},
{
"measuredAt": "2017-11-01T21:09:53.147Z",
"protocol": 5,
"pressure": 1100
},
{
"measuredAt": "2017-11-01T21:09:53.147Z",
"protocol": 60,
"accumulationMM": 44
}]
}
$.ajax(settings).done(function (response) {
console.log(response);
});
import http.client
import json
conn = http.client.HTTPSConnection("apidev.globe.gov")
payload = [{
"measuredAt": "2017-11-01T21:09:53.147Z",
"protocol": 59,
"currentTempC": 31.0
},
{
"measuredAt": "2017-11-01T21:09:53.147Z",
"protocol": 5,
"pressure": 1100
},
{
"measuredAt": "2017-11-01T21:09:53.147Z",
"protocol": 60,
"accumulationMM": 44
}
]
headers = {
'content-type': "application/json",
'x-globe-developerkey': "72ad021da4e03e560bbae644ae6180e9",
'x-globe-accesscode': "DEV123456",
'cache-control': "no-cache"
}
conn.request("POST", "/submissions", json.dumps(payload), headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Submitting Multiple Measurements at Once (POST)
The GLOBE API allows developers to submit multiple measurements at once. These measurements may be of the same protocol, or mixed. Currently, only new measurements via POST is supported. To submit multiple measurements at once, simply provide an array of submission objects formatted as needed for each protocol. The server will respond with an array of resulting submission objects or errors as appropriate.