Internal API

Internal API for Network Management

The Internal API consists of a set of endpoints designed to govern the Ruuvi Network, such as whitelisting and blacklisting devices and/or IP addresses.

whitelist

POST https://network.ruuvi.com/whitelist

Whitelists a set of gateways.

Headers

Request Body

{
  "gateway": "<<MAC>>",
  "blockedAt": <<TIMESTAMP IF BLOCKED>>
}
POST /whitelist
{
    "macAddress": "ab:ba:cd:ba:cd:ba",
    "secret": "1234"
}

GET https://network.ruuvi.com/gwinfo

Fetches info for the gateway

Query Parameters

Headers

{
    "result": "success",
    "data": {
        "gateway": {
            "GatewayId": "<<GATEWAY MAC>>",
            "Whitelisted": <<UNIX TIMESTAMP WHEN WHITELISTED>>,
            "Connected": <<FIRST CONNECTED AFTER WHITELISTING>>,
            "Latest": <<MOST RECENT UPDATE>>,
            "InvalidSignatureTimestamp": <<MOST RECENT SIGNING REJECTION>>
        }
    }
}

Register a sensor to Cloud

POST https://network.ruuvi.com/register-sensor

This operation register a sensor with MAC address + secret to Cloud. The secret can be used to verify ownership of a sensor in case of a contested sensor.

Parameters are packed inside a JSON object, e.g. { "macAddress":"value", "secret":"value"}

Headers

Request Body

{
    // Response
}

Register a subscription to be claimed by user

POST https://network.ruuvi.com/subscription-register

This endpoint is called by Ruuvi Shop after payment for user subscription is verified. Parameters are in JSON object of body.

Headers

Request Body

{
    // Response
}

Freebase Cloud Messaging to iOS devices - Proposal 2023-02-08

POST FCM://iOS

FCM is used to deliver push notifications to user applications. To receive the notification, user must register their device token with a POST to https://network.ruuvi.com/push-register

{ "notification":{ "body": $alertData, "title":"Ruuvi $alertType alert: $name" }, "alert":{ "title-loc-key": RUUVI_$alertType, "title-loc-args": [$alertType, $triggertype], "loc-key" : "RUUVI_$alertType_$triggerType", "loc-args" : [ $name, $currentValue, $alertUnit, $thresholdValue, $alertUnit] }, "content_available":1, "mutable-content":1, "token":$token, "email":$email, "type":"alert", "data":{ "name": $name, "id":$sensor_id, "alertType": $alertType, "triggerType": $triggertype, "currentValue": $currentValue, "thresholdValue": $thresholdValue, "alertUnit": $alertUnit, "alertData": $alertData } }

Request Body

Last updated