Skip to main content

Helium Console API

This page has not been fully updated to represent the latest state of the Helium Network following the migration to Solana on April 18, 2023.

The Console 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.

Base URL

https://console.helium.com/

Authentication

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.

Headers

Parameter NameTypeDescription
key (required)stringyour API key

Data Credit Balance

GET https://console.helium.com/api/v1/organization
Response

200: OK

[
{
"dc_balance": 731686
"id": "07273bc4-4bc9-44ec-b4d5-ad320f162e15",
"name": "Acme",
},
]

Devices List

GET https://console.helium.com/api/v1/devices
Response

200: OK

[
Device {
"active": false,
"adr_allowed": null,
"app_eui": "70B3D57ED0008E64",
"app_key": "30EACA8A2CAF0C5315D0E4A1B7F7B55B",
"dev_eui": "008000000401261D",
"cf_list_enabled": null,
"config_profile_id": null,
"dc_usage": 606837,
"id": "747246dd-d9b6-4e68-96c1-2c489ab33280",
"in_xor_filter": true,
"labels": [],
"last_connected": "2022-03-03T22:37:33",
"name": "Basement Temp",
"organization_id": "07273bc4-4bc9-44ec-b4d5-ad320f162e15",
"oui": 1,
"rx_delay": 1,
"total_packets": 303442
},
Device {
"active": true,
"adr_allowed": null,
"app_eui": "CE1BAF8A8824FD1D",
"app_key": "2A37E7FACF2F0B7833413E9F8988C4EF",
"dev_eui": "008000000401261D",
"cf_list_enabled": null,
"config_profile_id": null,
"dc_usage": 606925,
"id": "916fc471-87f1-43a8-939e-c36589f33232",
"in_xor_filter": true,
"labels": [
{
"adr_allowed": null,
"cf_list_enabled": null,
"config_profile_id": null,
"id": "20865d14-bd90-4cbb-80e5-401c2c71fdab",
"name": "Device group",
"rx_delay": null
"last_connected": "2022-03-03T22:37:33",
"name": "Water Level North",
"organization_id": "07273bc4-4bc9-44ec-b4d5-ad320f162e15",
"oui": 1,
"rx_delay": 1,
"total_packets": 303486
},
]

Devices by AppEui, AppKey, DevEui

GET 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.

Path Parameters

Parameter NameTypeDescription
dev_eui (required)stringLoRaWAN Device EUI uniquely identifies a device
app_eui (required)stringLoRaWAN App EUI uniquely identifies the application of the device
app_key (required)stringLoRaWAN App Key is a shared secret key which is used to derive secure sessions via the Join mechanism

Device by UUID

GET https://console.helium.com/api/v1/devices/:device_id

Returns a device descriptor if device is found.

Path Parameters

Parameter NameTypeDescription
device_id (required)stringUUID of the device

Device Events

GET https://console.helium.com/api/v1/devices/:device_id/events

Returns the previous 100 events for the device if found.

Path Parameters

Parameter NameTypeDescription
device_id (required)stringUUID of the device

Device Integration Events

GET https://console.helium.com/api/v1/devices/:device_id/events?sub_category=uplink_integration_req

Returns the previous 10 Integration events for the device if found.

Path Parameters

Parameter NameTypeDescription
device_id (required)stringUUID of the device

Create Device

POST https://console.helium.com/api/v1/devices
info

This endpoint is disabled for Helium Foundation Console.

Headers

Parameter NameTypeDescription
key (required)stringyour API key
content-type (required)stringapplication/json

Body Parameters

Parameter NameTypeDescription
name (required)stringA human-friendly name for the device
app_eui (required)stringLoRaWAN Application EUI
app_key (required)stringLoRaWAN Application Key
dev_eui (required)stringLoRaWAN Device EUI
config_profile_id (optional)stringConfig profile uuid to attach
label_ids (optional)Array of stringsArray of label uuids to attach to device

Create Multiple Devices

POST https://console.helium.com/api/v1/devices

Headers

Parameter NameTypeDescription
key (required)stringyour API key
content-type (required)stringapplication/json

Body Parameters

Parameter NameTypeDescription
devices (required)Array of objectsArray of up to 1,000 device objects as defined below

Device Object

KeyValue TypeDescription
name (required)stringA human-friendly name for the device
app_eui (required)stringLoRaWAN Application EUI
app_key (required)stringLoRaWAN Application Key
dev_eui (required)stringLoRaWAN Device EUI
config_profile_id (optional)stringConfig profile uuid to attach
label_ids (optional)Array of stringsArray of label uuids to attach to device

Delete Device by UUID

DELETE https://console.helium.com/api/v1/devices/:id

Deletes device record by UUID.

Path Parameters

Parameter NameTypeDescription
id (required)stringUUID of the device to be deleted

Labels

GET https://console.helium.com/api/v1/labels

Returns a list of label descriptors associated with the organization.

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",
},
]

Create Label

POST https://console.helium.com/api/v1/labels

Headers

Parameter NameTypeDescription
key (required)stringyour API key
content-type (required)stringapplication/json

Body Parameters

Parameter NameTypeDescription
name (required)stringA human-friendly name for the device
config_profile_id (optional)stringConfig profile uuid to attach

Delete Label

DELETE https://console.helium.com/api/v1/labels/:label_id

Delete a device label, along with all of its device links.

Path Parameters

Parameter NameTypeDescription
label_id (required)stringThe UUID of the label being searched for

Search for Label

GET https://console.helium.com/api/v1/labels/:label_id

Search for a label by UUID.

Path Parameters

Parameter NameTypeDescription
label_id (required)stringUUID of label
GET https://console.helium.com/api/v1/labels

Search for label by name.

Path Parameters

Parameter NameTypeDescription
name (required)stringname of label

Add Device Label

POST  https://console.helium.com/api/v1/devices/:device_id/labels

Add Device to Label

Headers

Parameter NameTypeDescription
key (required)stringyour API key
content-type (required)stringapplication/json

Path Parameters

Parameter NameTypeDescription
device_id (required)stringUUID of device

Body Parameters

Parameter NameTypeDescription
label (required)stringUUID of label

Remove Device Label

DELETE  https://console.helium.com/api/v1/devices/:device_id/labels/:label_id

Remove Device Label

Path Parameters

Parameter NameTypeDescription
device_id (required)stringUUID of device
label_id (required)stringUUID of label

Create a Prebuilt Integration

Create prebuilt integration for integration providers planning to offer connectivity as a service.

POST https://console.helium.com/api/v1/integrations/prebuilt

Creates a device with corresponding name, Application EUI, Application Key, and Device EUI.

Headers

Parameter NameTypeDescription
key (required)stringyour API key
content-type (required)stringapplication/json

Body Parameters

Parameter NameTypeDescription
token (required)stringYour token, authorization key, uplink secret depending on pre-built integration.
name (required)stringA unique name for the Integration
type (required)string“akenza” “ubidots” “tago” “datacake”

Create a Custom HTTP Integration

POST https://console.helium.com/api/v1/integrations

Creates a custom HTTP integration. Use the Console UI for JSON message templates.

Headers

Parameter NameTypeDescription
key (required)stringYour API key
content-type (required)stringapplication/json

Body Parameters

Parameter NameTypeDescription
name (required)stringA unique human-friendly name
type (required)string“http”
endpoint (required)stringendpoint
method (required)stringHTTP method
headers (optional)mapMap of header keys and values { “content-type”: “application/json” }
url_params (optional)mapMap for payload interpolation { "id": "{{device.id}}"}

Create a Custom MQTT Integration

POST https://console.helium.com/api/v1/integrations

Creates a custom MQTT integration.

Headers

Parameter NameTypeDescription
key (required)stringYour API key
content-type (required)stringapplication/json

Body Parameters

Parameter NameTypeDescription
name (required)stringA unique human-friendly name
type (required)string“mqtt”
endpoint (required)stringendpoint
uplink_topic (required)stringUplink topic
downlink_topic (required)stringDownlink topic

Create a Custom Azure IoT Hub Integration

POST https://console.helium.com/api/v1/integrations

Creates a custom Azure IoT Hub integration.

Headers

Parameter NameTypeDescription
key (required)stringYour API key
content-type (required)stringapplication/json

Body Parameters

Parameter NameTypeDescription
name (required)stringA unique human-friendly name
type (required)string“azure”
azure_policy_name (required)stringAzure IoT Hub policy name
azure_hub_name (required)stringAzure IoT Hub name
azure_primary_key (required)stringAzure IoT Hub primary key

Create a Custom AWS IoT Core Integration

POST https://console.helium.com/api/v1/integrations

Creates a custom AWS IoT Core integration.

Headers

Parameter NameTypeDescription
key (required)stringYour API key
content-type (required)stringapplication/json

Body Parameters

Parameter NameTypeDescription
name (required)stringA unique human-friendly name
type (required)string“aws”
topic (required)stringAWS topic
aws_access_key (required)stringAWS access key
aws_secret_key (required)stringAWS secret key
aws_region (required)stringAWS region

Delete an Integration

DELETE https://console.helium.com/api/v1/integrations/:integration_id

Delete an Integration along with any links to labels.

Headers

Parameter NameTypeDescription
key (required)stringyour API key

Path Parameters

Parameter NameTypeDescription
integration_id (required)stringUUID for removed integration

List Integrations

GET https://console.helium.com/api/v1/integrations/

Returns a list of integrations associated with the organization.

Headers

Parameter NameTypeDescription
key (required)stringyour API key

Search for an Integration by UUID

GET https://console.helium.com/api/v1/integrations/:integration_id

Headers

Parameter NameTypeDescription
key (required)stringyour API key

Path Parameters

Parameter NameTypeDescription
integration_id (required)stringUUID of integration

Search for an Integration by Name

GET https://console.helium.com/api/v1/integrations?name=your_integration_name

Headers

Parameter NameTypeDescription
key (required)stringyour API key

Query Parameters

Parameter NameTypeDescription
name (required)stringname of integration

View all Flows for an Integration

GET https://console.helium.com/api/v1/flows?integration_id=your_integration_id

Headers

Parameter NameTypeDescription
key (required)stringyour API key

Query Parameters

Parameter NameTypeDescription
integration_id (required)stringUUID of integration

Create a Flow for an Integration

Create a prebuilt integration for partners providing a connectivity as a service solution.

POST https://console.helium.com/api/v1/flows

Headers

Parameter NameTypeDescription
key (required)stringyour API key
content-type (required)stringapplication/json

Body Parameters

Parameter NameTypeDescription
integration_id (required)stringUUID of integration
label_id / device_id (required)stringUUID
function_id (optional)stringUUID

Delete flow

DELETE https://console.helium.com/api/v1/flows/:flow_id

Headers

Parameter NameTypeDescription
key (required)stringyour API key

Path Parameters

Parameter NameTypeDescription
flow_id (required)stringUUID of flow

Update Device Config Profile

PUT https://console.helium.com/api/v1/devices/:device_id

Headers

Parameter NameTypeDescription
key (required)stringyour API key

Path Parameters

Parameter NameTypeDescription
device_id (required)stringUUID of device

Body Parameters

Parameter NameTypeDescription
config_profile_id (required)string / nullConfig profile uuid to attach or set to null to remove

Update Label Config Profile

PUT https://console.helium.com/api/v1/labels/:label_id

Headers

Parameter NameTypeDescription
key (required)stringyour API key

Path Parameters

Parameter NameTypeDescription
label_id (required)stringUUID of label

Body Parameters

Parameter NameTypeDescription
config_profile_id (required)stringConfig profile uuid to attach or set to null to remove

Update Device Active Status

PUT https://console.helium.com/api/v1/devices/:device_id

Headers

Parameter NameTypeDescription
key (required)stringyour API key

Path Parameters

Parameter NameTypeDescription
device_id (required)stringUUID of device

Body Parameters

Parameter NameTypeDescription
active (required)stringboolean

Update Devices Active Status

PUT https://console.helium.com/api/v1/devices/active?dev_eui=your_dev_eui

Headers

Parameter NameTypeDescription
key (required)stringyour API key

Query Parameters

Parameter NameTypeDescription
dev_eui (required)stringDevice dev_eui
app_eui (optional)stringDevice app_eui
app key (optional)stringDevice app_key

Body Parameters

Parameter NameTypeDescription
active (required)stringboolean

Update Devices attached to label Active Status

PUT https://console.helium.com/api/v1/labels/:label_id/active

Headers

Parameter NameTypeDescription
key (required)stringyour API key

Path Parameters

Parameter NameTypeDescription
label_id (required) (required)stringLabel uuid

Body Parameters

Parameter NameTypeDescription
active (required)stringboolean