Skip to main content

Hotspot API

The Hotspot API is provided free of charge by the Helium Foundation. The data provided focuses on infrequently changing attributes of Hotspots such as their owner and asserted location. For more in-depth analysis, refer to Oracles and Solana on-chain data.

The API runs inside an AWS EKS cluster and leverages an RDS instance for improved accessibility of on-chain Hotspot data. The API sits behind Cloudflare to offer reduced latency via endpoint caching. As on-chain Hotspot data is updated (e.g., attributes such as location, activity, and ownership), invalidations are created to ensure up-to-date data is provided to API consumers.

In the interest of anonymity, the latitude/longitude data provided by the API is obfuscated to H3 resolution 8 rather than resolution 12 stored on-chain on Solana.

An active Hotspot is defined as having rewards issued within the last 30 days (either for Proof of Coverage or data transfer).

Wallet Info by Wallet Public Key

GET https://entities.nft.helium.io/v2/wallet/:walletPublicKey

Get wallet information by wallet public key including Hotspot count, list of Hotspot records, and token account balances.

Path Parameters

ParamTypeNote
Wallet public key (required)stringSolana public key/address for the wallet

Hotspot Pagination Metadata

GET https://entities.nft.helium.io/v2/hotspots/pagination-metadata?subnetwork=<subnetwork>

Get general information about the pagination of Hotspots in a particular subnetwork including pagination page size, total number of Hotspots, and total number of pages.

Query Parameters

ParamTypeNote
Subnetwork (required)stringName of subnetwork (iot, mobile, etc)

List Hotspots by Subnetwork

GET https://entities.nft.helium.io/v2/hotspots?subnetwork=<subnetwork>&cursor=<cursor>

Get a list of key-value pairs denoting Hotspots in a particular subnetwork. If the returned cursor field is a non-null value, more results are available. If no cursor is provided (e.g., if the URL does not include the &cursor=<cursor> query string component), then the first page of results is returned along with a cursor value for the subsequent page.

Query Parameters

ParamTypeNote
Subnetwork (required)stringName of subnetwork (iot, mobile, etc.)
Cursor (optional)stringCursor for the next page of Hotspots to fetch

Hotspot Info by Key to Asset Key

GET https://entities.nft.helium.io/v1/:keyToAssetKey
GET https://entities.nft.helium.io/v2/hotspot/:keyToAssetKey

Get Hotspot records based on the key to asset value. Both the /v1 and /v2/hotspot routes return identical results and are merely provided for backward compatibility.

Path Parameters

ParamTypeNote
Key to asset (required)stringPublic key of on-chain KeyToAssetV0 struct

Hotspot Info by Entity/ECC Compact Key

GET https://entities.nft.helium.io/:eccCompact

Get Hotspot records based on the entity / ECC compact key value.

Path Parameters

ParamTypeNote
Entity / ECC compact keystringLegacy Helium L1 address of the Hotspot

List OUI Organization Info

GET https://entities.nft.helium.io/v2/oui/all

Get a list of OUIs registered on the Helium Network and corresponding organization info.

200: OK

{
"orgs": [
{
"oui": 1,
"owner": "string", // Org admin key
"payer": "string", // Key only used for DC payments
"escrow": "string", // Escrow account key
"delegate_keys": [ // List of keys allowed some specific actions, see services.
"string"
],
"locked": "boolean" // Is org locked because of no payment
},
{
"oui": 2,
"owner": "string",
"payer": "string",
"escrow": "string",
"delegate_keys": [
"string"
],
"locked": "boolean"
},
{
"oui": 3,
"owner": "string",
"payer": "string",
"escrow": "string",
"delegate_keys": [
"string"
],
"locked": "boolean"
},
]
}

500: Error

{
"statusCode": 500,
"error": "Internal Server Error",
"message": "string"
}

OUI Organization Info by OUI ID

GET https://entities.nft.helium.io/v2/oui/:id

Get an OUI registered on the Helium Network and corresponding organization info by the OUI ID.

Path Parameters

ParamTypeNote
OUI ID (required)stringID of the OUI (e.g., 1) for getting info