API

Introduction

The API is a set of HTTP Request that allows you to programatically interact with Console. It's the lowest level building block and is ideal for integrating with back-end services, for example.

API Key

All Console API requests require an API Key which provides access to devices owned by the organization which owns the device. Devices are never associated to a single user, but instead to an organization.

To create an account key, go to your profile on Helium Console. From the top right corner, click: Account -> Profile.

From there, you may generate a key for your organization. The key will only display once.

You must confirm the API key creation by clicking a link that is emailed to the account that created the API key.

From then on, you will want to include the API key in all of your API requests. You do this by placing your API key in an HTTP header field called "key.

get
Devices List

https://console.helium.com/api/v1/devices
Returns a list of device descriptors for devices owned by the organization.
Request
Response
Request
Response
200: OK
[
Device {
app_eui: "70B3D57ED0008E64",
app_key: "30EACA8A2CAF0C5315D0E4A1B7F7B55B",
dev_eui: "008000000401261D",
id: "747246dd-d9b6-4e68-96c1-2c489ab33280",
name: "Basement Temp",
organization_id: "07273bc4-4bc9-44ec-b4d5-ad320f162e15",
oui: 1,
},
Device {
app_eui: "CE1BAF8A8824FD1D",
app_key: "2A37E7FACF2F0B7833413E9F8988C4EF",
dev_eui: "9C069EEE66D3ABCD",
id: "916fc471-87f1-43a8-939e-c36589f33232",
name: "Water Level North",
organization_id: "07273bc4-4bc9-44ec-b4d5-ad320f162e15",
oui: 1,
},
]

get
Devices by AppEui, AppKey, DevEui

https://console.helium.com/api/v1/devices?app_eui={app_eui}&app_key={app_key}&dev_eui={dev_eui}
Returns a device descriptor if device is found.
Request
Response
Request
Path Parameters
dev_eui
required
string
LoRaWAN Device EUI uniquely identifies a device
app_eui
required
string
LoRaWAN App EUI uniquely identifies the application of the device
app_key
required
string
LoRaWAN App Key is a shared secret key which is used to derive secure sessions via the Join mechanism
Response
200: OK
Device {
app_eui: "70B3D57ED0008E64",
app_key: "30EACA8A2CAF0C5315D0E4A1B7F7B55B",
dev_eui: "008000000401261D",
id: "747246dd-d9b6-4e68-96c1-2c489ab33280",
name: "Basement Temp",
organization_id: "07273bc4-4bc9-44ec-b4d5-ad320f162e15",
oui: 1,
}

get
Device by UUID

https://console.helium.com/api/v1/devices/:device_id
Returns a device descriptor if device is found.
Request
Response
Request
Path Parameters
id
required
string
UUID of the device
Response
200: OK
Device {
app_eui: "70B3D57ED0008E64",
app_key: "30EACA8A2CAF0C5315D0E4A1B7F7B55B",
dev_eui: "008000000401261D",
id: "747246dd-d9b6-4e68-96c1-2c489ab33280",
name: "Basement Temp",
organization_id: "07273bc4-4bc9-44ec-b4d5-ad320f162e15",
oui: 1,
}

post
Create Device

https://console.helium.com/api/v1/devices
Creates a device with corresponding name, Application EUI, Application Key, and Device EUI.
Request
Response
Request
Body Parameters
name
required
string
A human-friendly name for the device
app_eui
required
string
LoRaWAN Application EUI
app_key
required
string
LoRaWAN Application Key
dev_eui
required
string
LoRaWAN Device EUI
Response
200: OK

delete
Delete Device by UUID

https://console.helium.com/api/v1/devices/:id
Deletes device record by UUID.
Request
Response
Request
Path Parameters
id
required
string
UUID of the device to be deleted
Response
200: OK
Device deleted

get
Labels

https://console.helium.com/api/v1/labels
Returns a list of label descriptors associated with the organization.
Request
Response
Request
Response
200: OK
[
Label {
id: "20515fce-2f7c-4025-8841-4be47cb9ec3c",
name: "Test LoRaWAN",
},
Label {
id: "d20d5d32-f699-40a7-a5a7-b9a49dfe2b4a",
name: "AWS",
},
Label {
id: "a332bb1e-888e-43d9-ad38-f4043fff791f",
name: "RequestBinDownlink",
},
Label {
id: "19bee2e7-b222-461f-a271-15b3c52d5532",
name: "MQTT-Test",
},
]

post
Create label

https://console.helium.com/api/v1/labels
Create a new label with the given name.
Request
Response
Request
Body Parameters
name
required
string
A unique name for the label
Response
200: OK
Label {
id: "868ea783-f252-4fc4-b724-a155680c0bc9",
name: "Blue Label",
}

delete
Delete label

https://console.helium.com/api/v1/labels/:label_id
Delete a device label, along with all of its device links
Request
Response
Request
Body Parameters
label_id
required
string
The UUID of the label to be deleted
Response
200: OK
Label delete successful
404: Not Found
{"errors":{"error":["Label not found"]}}

post
Add Device to Label

https://console.helium.com/api/v1/devices/:device_id/labels
Request
Response
Request
Path Parameters
device_id
required
string
UUID of device
Body Parameters
label
required
string
UUID of label
Response
200: OK
Device added to label successfully

delete
Remote Device from Label

https://console.helium.com/api/v1/devices/:device_id/labels/:label_id
Request
Response
Request
Path Parameters
device_id
required
string
UUID of device
label_id
required
string
UUID of label
Response
200: OK
Device removed from label successfully