Smart Device Management API Stay organized with collections Save and categorize content based on your preferences.
AI-generated Key Takeaways
The SDM API is a REST API that lets you manage Google Nest devices by viewing their traits and executing commands.
All API calls should be made to the endpoint
https://smartdevicemanagement.googleapis.com/v1with the provided access token.The API uses a trait-based model, and specific traits available for each device type can be found in the provided links to individual device guides.
You can execute commands, get device information, and list structures, rooms, or devices using the methods detailed in the API Reference.
Nest devices authorized through the SDM API should not be synced to Home Graph for Google Assistant integrations to avoid conflicts.
The SDM API is a REST API that provides various methods toview traits and execute trait commands for management ofGoogle Nest devices. Use the access token granted during theauthorization process with each API call.
Traits
The SDM API uses a trait-based model for device informationand functionality. Check the individual device guides to see what traits areavailable for a device:
- Camera
- Camera (battery)
- Camera with Floodlight
- Camera (wired)
- Display
- Doorbell
- Doorbell (battery)
- Doorbell (wired)
- Thermostat
Methods
See theAPI Reference for complete details onall the methods available for the SDM API.
executeCommand
Executes a command to an authorized device.
Use aPOST call to execute a command. For example, to change the thermostatmode:
POST /enterprises/project-id/devices/device-id:executeCommand{ "command" : "sdm.devices.commands.ThermostatMode.SetMode", "params" : { "mode" : "HEAT" }}Further examples of commands can be found in each individual trait referencepage. See the completetrait listingfor more information.
get
Gets information about an authorized structure or device.
AGET call returns a single response with current fields and values for alltraits available for a structure or device that the user hasauthorized and a `parentRelations' object, which represents the parent resourceof the current resource, either a structure or room.
For example, a Nest Thermostat might return thefollowing:
GET /enterprises/project-id/devices/device-id{ "name" : "enterprises/project-id/devices/device-id", "type" : "sdm.devices.types.THERMOSTAT", "assignee" : "enterprises/project-id/structures/structure-id/rooms/room-id", "traits" : { "sdm.devices.traits.Connectivity" : { "status" : "ONLINE" }, "sdm.devices.traits.Fan" : { "timerMode" : "ON", "timerTimeout" : "2019-05-10T03:22:54Z" }, "sdm.devices.traits.Humidity" : { "ambientHumidityPercent" : 35.0 }, "sdm.devices.traits.Info" : { "customName" : "My device" }, "sdm.devices.traits.Settings" : { "temperatureScale" : "CELSIUS" }, "sdm.devices.traits.Temperature" : { "ambientTemperatureCelsius" : 23.0 }, "sdm.devices.traits.ThermostatEco" : { "availableModes" : ["MANUAL_ECO", "OFF"], "mode" : "MANUAL_ECO", "heatCelsius" : 20.0, "coolCelsius" : 22.0 }, "sdm.devices.traits.ThermostatHvac" : { "status" : "HEATING" }, "sdm.devices.traits.ThermostatMode" : { "availableModes" : ["HEAT", "COOL", "HEATCOOL", "OFF"], "mode" : "COOL" }, "sdm.devices.traits.ThermostatTemperatureSetpoint" : { "heatCelsius" : 20.0, "coolCelsius" : 22.0 } }, "parentRelations" : [ { "parent" : "enterprises/project-id/structures/structure-id/rooms/room-id", "displayName" : "Lobby" } ]}list
Lists authorized structures, rooms, or devices.
To list all structures, rooms, or devices authorized under a single accesstoken, make aGET call against the appropriate resource endpoint:
GET /enterprises/project-id/structures
GET /enterprises/project-id/structures/structure-id/rooms
GET /enterprises/project-id/devices
Google Assistant integrations
Warning: Nest devices in the SDM API shouldnot be synced to Home Graph as part of a Google Assistant integration.Once a device is authorized for SDM, Google becomes aware of the device in HomeGraph and manages its state directly. If you have Google Assistant integrationas part of your Commercial offering:
- Do not sendRequest Syncrequests for SDM devices
- Omit SDM devices from any responses to aSYNCintent
Errors
See theAPI Error Code Reference for the full list of API error codes.
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-07-25 UTC.
