Subscribe to SmartThings device events via the Subscriptions API from a webhook SmartApp
domain: iot · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
Register a webhook-based SmartApp requesting device read permission (r:devices:* for specific devices or r:devices for all devices in a location)
During the INSTALL or UPDATE lifecycle, after the user selects devices, POST a subscription request to https://api.smartthings.com/installedapps/{installedAppId}/subscriptions
Choose sourceType DEVICE (specific authorized devices) or CAPABILITY (all devices of a capability in the location), specifying capability/attribute/value in the JSON body
Handle incoming EVENT lifecycle POST requests delivered to your webhook callback URL or Lambda, each containing an events array with deviceEvent details
On UPDATE, delete stale subscriptions via DELETE /installedapps/{installedAppId}/subscriptions/{subscriptionId} (or the whole collection) and recreate them for newly authorized devices
Known gotchas
Subscriptions belong to a specific installedAppId, so reinstalling the SmartApp requires recreating them
Device subscriptions need per-device r:devices:<device-id> permission; Capability subscriptions need the broader r:devices permission granted during CONFIGURE/INITIALIZE
Events arrive as POST callbacks to your webhook/Lambda, not a persistent streaming connection, so your endpoint must be reliably reachable
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?