Shelly DevKit · For iPhone

Every tap, and the call behind it.

See and control your Shelly devices from the cloud, then open any control up to the exact HTTP request it sent. Contract pages for the whole API, a runner to try them, a log of what you ran.

Coming soon to theApp StoreSee how it works
  • Free to use
  • Your password stays on Shelly's page
  • No account with us

iPhone · iOS 17 or later

View API call

POST /v2/devices/api/set/switch

{ "id": "a4cf12ef4b91",
  "on": false }
Response200 OK · 312 ms
Works with cloud-connectedGen1Gen2+BLUswitches, plugs, covers, dimmers, RGBW lights and BLU sensors

Devices

Your whole inventory, live over WebSocket.

Every cloud-connected device in your Shelly account, grouped by room. Status is pushed the moment it changes, so there is nothing to pull down and refresh.

  • Grouped by room; one tap filters to a single room
  • Switches, covers with slats, dimmers and RGBW lights
  • BLU sensors: temperature, humidity, doors, battery
  • Not logged in yet? A demo inventory lets you look around first

View API call

Open any control up to the request it sent.

Flip a switch, then tap View API call: the method, the endpoint, the body, and what the cloud answered. Copy it as cURL, Swift or JavaScript and paste it straight into your own project.

curl -X POST 'https://<user_api_url>/v2/devices/api/set/switch' \
  -H 'Authorization: Bearer <ACCESS_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{"id":"80646f8c31a4","channel":0,"on":true}'
import Foundation

var request = URLRequest(url: URL(string: "https://<user_api_url>/v2/devices/api/set/switch")!)
request.httpMethod = "POST"
request.setValue("Bearer <ACCESS_TOKEN>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = Data("""
{
  "id": "80646f8c31a4",
  "channel": 0,
  "on": true
}
""".utf8)

let (data, response) = try await URLSession.shared.data(for: request)
print((response as? HTTPURLResponse)?.statusCode ?? 0, String(decoding: data, as: UTF8.self))
const response = await fetch("https://<user_api_url>/v2/devices/api/set/switch", {
  method: "POST",
  headers: {
    Authorization: "Bearer <ACCESS_TOKEN>",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "id": "80646f8c31a4",
    "channel": 0,
    "on": true
  }),
});
console.log(response.status, await response.json());

Host and token are always placeholders. A real token never reaches the clipboard.

API Explorer

The whole API, documented. Bundled with the app.

Contract pages for OAuth, inventory, control and real-time events, plus the Gen1 REST and Gen2+ RPC local APIs. Fields, constraints, examples and every documented error. They work with the plane in the air.

Authentication

Reference

OAuth · token exchange · JWT payload

4 pages

Device inventory

Try it

all_status · devices/api/get · device/list · room/list

4 pages

Control

Try it

switch · cover · light · groups

4 pages

Real-time events

Reference

StatusOnChange · Online · CommandResponse

4 pages

Gen1 local REST

Docs only

/relay/0?turn=on · /status

6 pages

Gen2+ local RPC

Docs only

Switch.Set · Cover.GoToPosition

7 pages

Try it against your own devices

Read and control calls run for real and show the raw response. Endpoints that could brick a device — firmware updates, factory reset, settings — stay documentation-only.

Your last 50 calls

Every Try-it run lands in History with its status and timing. Copy any of them as code, token masked.

One request per second

Every cloud call goes through one throttle that respects Shelly's rate limit, so a busy session never trips it.

Build

Write one sentence. Get a real iOS Shortcut.

Compose multi-step recipes: read a value, branch on it, wait, show a result or send a raw request. Test-run the recipe inside the app before it goes anywhere.

Turn on Garage Heater then back after 30 min.

What it sends

POST set/switch · on:true · toggle_after:1800

Warm up the garagein the Shortcuts app · 1 action
  1. 1Pick a device and fill the blanks. The sentence is the whole editor.
  2. 2Read exactly what it will send. Nothing is hidden behind the words.
  3. 3Tap Add to Shortcuts. It appears in Apple's Shortcuts app under the name you gave it.

Step types

  • Read a value
  • If · otherwise
  • Wait
  • Show a result
  • Switch
  • Pulse
  • Cover
  • Light
  • Raw request

Run

Then run it from anywhere. The app stays closed.

A Shortcut is a first-class citizen on iOS. Once yours exists, everything Apple lets Shortcuts do, your Shelly devices can do.

Say it

“Hey Siri, warm up the garage”

Tap it

Home Screen widget · Lock Screen · Action button

Schedule it

Shortcuts automations: time, arrival, sunset, NFC

Chain it

Combine with any other app's actions

Privacy by design

Your devices live in your Shelly account, not in ours.

There is no Shelly DevKit account and no backend of ours. The app talks to Shelly Cloud directly from your iPhone, and nothing about your devices is sent to us.

Read the privacy policy

Log in on Shelly's own page

Your password is typed only into Shelly's login page, inside Apple's secure browser sheet. The app receives a token, never the password.

Token in the Keychain

The token is stored in the iOS Keychain and sent only to Shelly Cloud. Wherever it is shown, it is masked.

No tracking

No advertising identifier, no tracking across apps or websites. Device names and IDs never appear in analytics or crash reports.

You hold the switch

Anonymous analytics can be turned off in Settings. Delete local data wipes the token, cache, recipes and history in one tap.

Free and Pro

Composing is free. Landing it in Shortcuts is the paid part.

Everything you need to see, control and understand your devices is free, and stays free.

Free

No trial clock. No account.

  • Live device inventory and controls
  • View API call on every control
  • The full API reference and Try it
  • History of your last 50 calls, copy as code
  • Compose and test-run recipes

DevKit Pro

Pro

Monthly or yearly subscription

  • Everything in Free
  • Export any recipe to the Shortcuts app
  • Siri phrases and Spotlight suggestions
  • Shortcuts run headlessly — the app stays closed
  • Unlimited saved recipes

Pro is an auto-renewable subscription billed to your Apple ID. The price for your region is shown in the app before you subscribe. It renews automatically unless cancelled at least 24 hours before the end of the current period; manage or cancel it in your App Store account settings.

Questions

Before you download

Open up your Shelly devices.

Free to download, free to explore. Pro only when you want it in Shortcuts.

Coming soon to theApp Store

iPhone · iOS 17 or later