Oark
OARK
CONNECT. OBSERVE. STREAM.

Sign in to your devices

New here?
WHAT OARK DOES
Connect anything.
Own the whole stack.
No fixed catalog
Describe your device your own way -- name it, type it, done.
Live telemetry over MQTT
Real broker, real WebSocket push -- not a polling demo.
Real alerts, real thresholds
Offline detection and metric thresholds you configure per device.
Your data, isolated
Every device scoped to your account -- verified, not assumed.
Oark OARK
Studio
Overview
Devices
EV Health
Alerts
Develop
Analytics
API & Docs
Account
Help
Settings
Sign out
Oark Studio › Overview
| Not connected
GOOD MORNING
Welcome back, there
Here's what's happening across your devices today.
Connect. Observe. Stream.
0
Devices
0
Online
0
Offline
0
Alerts
Needs Attention
Nothing needs attention right now.
Recent Alerts
No alerts.
Devices
Quick Start
Add your first device
Get credentials for your ESP32 or simulator
Test with the simulator
cd simulator && python fake_device.py

No devices yet

Add your first device above to start seeing live data.

EV Health
89Health
Vehicle checkup — all systems normal
Simulated demo data, refreshing every few seconds — not a connected vehicle yet.
GOOD CONDITION
Battery Charge
78%
Battery Health (SoH)
96%
Battery Temp
31°C
Motor Temp
54°C
Pack Voltage
386V
Est. Range
212km
Charge Cycles
342cycles
Charging Status
Idle
Battery current — live pulse (demo)
12.4 A
All Alerts
No alerts.
API & Docs
Base URL
MQTT Telemetry Topic (device publishes here)
oark/{your_user_id}/{device_id}/telemetry

JSON payload, e.g. {"temperature": 24.5, "humidity": 60, "secret": "your_device_secret"}. The secret field is required -- messages without a matching secret are dropped. Non-numeric fields (like "status") are treated as state, not stored as time-series.

MQTT Commands Topic (device subscribes here)
oark/{your_user_id}/{device_id}/commands

Receives {"action": "turn_on"} or {"action": "turn_off"} when you use the dashboard's control toggle.

REST Endpoints
POST /devices     # create a device, returns id + secret
GET /devices      # list your devices
GET /devices/{id}/readings?limit=200  # historical data
POST /devices/{id}/commands  # send a command
GET /alerts       # your alert history
Full interactive reference

Every endpoint, with request/response schemas, is auto-generated at /docs.

Settings
Account
Change Password
Analytics

No data loaded yet

Pick a device and metric name above, then click Load.

--
Help
Frequently Asked
Why does my device show "offline"?
A device is marked online only while it's actively publishing to its MQTT telemetry topic. If it hasn't sent data in a while, it flips to offline. Check that its credentials and topic match exactly what's shown on the device's detail panel.
Where do I get my MQTT credentials?
Open Devices → Add Device. After creating it, you'll get a one-time view of its secret and topic -- copy it then, since it isn't shown again in full.
How do I test without real hardware?
Use the simulator in the simulator/ folder (python fake_device.py) with your device's credentials filled in as environment variables -- it publishes fake readings on the same topic a real device would use.
Why can't I see historical data for a device?
Check the Analytics page and make sure the metric name matches exactly what your device publishes (e.g. "temperature", case-sensitive) -- and that it has sent at least one reading.
Need more help?

Full endpoint reference: see API & Docs.

Still stuck? Reach out at support@oark.dev.

1Category
2Details
3Review
Start from a template, or build your own from scratch.
Describe your device -- there's no fixed catalog, name it however you like.
Confirm before creating.
Name
Type
Room
Controllable

Device Added

Flash these into your device firmware. The secret is shown only once.
-
-
-
-
-
Edit Details
Live Data
History
Alert Threshold

Welcome to Oark

Add your own sensors and switches, watch live data come in, and control them remotely -- no fixed catalog, name things however you like.

Add a device

Click + Add Device, name it, and you'll get a Device ID and Secret -- your device's credentials to connect over MQTT.

Connect it

Flash those credentials into your ESP32, or test the whole pipeline first with the included simulator -- no hardware required to see it work.