Natede by Vitesy API (unofficial)

General notes

Natede is a “smart natural air purifier”, the successor from Clairy. It also has various sensors for measuring the air quality, e. g. temperature and humidity, VOCs, CO and dust. But unfortunately there is no official way to export this data besides the app, so let’s expore the API a bit.

More Information: https://johann.gr/?p=823 (🇩🇪)

API detail

Get User Certs

curl -X GET "https://api.clairyhub.com/users/{{user_id}}/certificates"
GET /users/%7B%7Buser_id%7D%7D/certificates HTTP/1.1
Host: api.clairyhub.com

API Healthcheck

curl -X GET "https://api.clairyhub.com/healthcheck"
GET /healthcheck HTTP/1.1
Host: api.clairyhub.com

Get User Info

curl -X GET "https://api.clairyhub.com/users/me"
GET /users/me HTTP/1.1
Host: api.clairyhub.com

EDIT User Info

curl -X PATCH -H "Content-Type: text/plain" -d '{"email":"mail@address.tld","firstName":"John","lastName":"Doe","language":"de","entityId":""}' "https://api.clairyhub.com/users/me"
PATCH /users/me HTTP/1.1
Host: api.clairyhub.com
Content-Type: text/plain

{"email":"mail@address.tld","firstName":"John","lastName":"Doe","language":"de","entityId":""}

Get Users Devices

curl -X GET "https://api.clairyhub.com/users/me/devices"
GET /users/me/devices HTTP/1.1
Host: api.clairyhub.com

Get Device Info

Get Bearer Token

curl -X GET "https://api.clairyhub.com/devices/{{deviceId}}/options"
GET /devices/%7B%7BdeviceId%7D%7D/options HTTP/1.1
Host: api.clairyhub.com

EDIT Device Info

Get Bearer Token

curl -X PATCH -d '{
    "deviceName": "NATEDE Wohnzimmer",
    "entityId": "E8:2A:44:00:00:00",
    "goal": {
        "id": "general"
    }
}' "https://api.clairyhub.com/devices/{{deviceId}}/"
PATCH /devices/%7B%7BdeviceId%7D%7D/ HTTP/1.1
Host: api.clairyhub.com

{
    "deviceName": "NATEDE Wohnzimmer",
    "entityId": "E8:2A:44:00:00:00",
    "goal": {
        "id": "general"
    }
}

Get Natede Programs

curl -X GET "https://api.clairyhub.com/programs"
GET /programs HTTP/1.1
Host: api.clairyhub.com

Get Natede Goals

curl -X GET "https://api.clairyhub.com/goals"
GET /goals HTTP/1.1
Host: api.clairyhub.com

Get Natede Places

curl -X GET "https://api.clairyhub.com/places"
GET /places HTTP/1.1
Host: api.clairyhub.com

Get Natede Plants

curl -X GET "https://api.clairyhub.com/plants/{{deviceId}}"
GET /plants/%7B%7BdeviceId%7D%7D HTTP/1.1
Host: api.clairyhub.com

Get Latest Measurements

curl -X GET "https://api.clairyhub.com/devices/{{deviceId}}/measurements/latest"
GET /devices/%7B%7BdeviceId%7D%7D/measurements/latest HTTP/1.1
Host: api.clairyhub.com

Get Measurements by Date

curl -X GET "https://api.clairyhub.com/measurements?deviceId={{deviceId}}&fromDateTime={{fromDateTime}}&toDateTime={{toDateTime}}&granularity=finest&sensors={{sensors}}"
GET /measurements?deviceId={{deviceId}}&fromDateTime={{fromDateTime}}&toDateTime={{toDateTime}}&granularity=finest&sensors={{sensors}} HTTP/1.1
Host: api.clairyhub.com

Get Alerts

curl -X GET "https://api.clairyhub.com/devices/{{deviceId}}/alerts"
GET /devices/%7B%7BdeviceId%7D%7D/alerts HTTP/1.1
Host: api.clairyhub.com

Get Alerts by Date

curl -X GET "https://api.clairyhub.com/devices/{{deviceId}}/alerts?fromDate={{fromDate}}&toDate={{fromDate}}"
GET /devices/%7B%7BdeviceId%7D%7D/alerts?fromDate={{fromDate}}&toDate={{fromDate}} HTTP/1.1
Host: api.clairyhub.com