Google Cloud IoT Core is being retired on August 16, 2023. Contact your Google Cloud account team for more information.

Unbind a device from a gateway

Stay organized with collections Save and categorize content based on your preferences.

Unbind a device from a gateway.

Explore further

For detailed documentation that includes this code sample, see the following:

Code sample


For more information, see the Cloud IoT Core Java API reference documentation.

GoogleCredentials credential =
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
HttpRequestInitializer init = new HttpCredentialsAdapter(credential);
final CloudIot service =
    new CloudIot.Builder(GoogleNetHttpTransport.newTrustedTransport(), jsonFactory, init)

final String registryPath =
        "projects/%s/locations/%s/registries/%s", projectId, cloudRegion, registryName);

UnbindDeviceFromGatewayRequest request = new UnbindDeviceFromGatewayRequest();

UnbindDeviceFromGatewayResponse response =
        .unbindDeviceFromGateway(registryPath, request)

System.out.println(String.format("Device unbound: %s", response.toPrettyString()));


For more information, see the Cloud IoT Core PHP API reference documentation.

use Google\Cloud\Iot\V1\DeviceManagerClient;

 * Unbinds a device from a gateway.
 * @param string $registryId IOT Device Registry ID
 * @param string $deviceId the device ID to unbind
 * @param string $gatewayId the ID for the gateway to unbind from
 * @param string $projectId (optional) Google Cloud project ID
 * @param string $location (Optional) Google Cloud region
function unbind_device_from_gateway(
    $location = 'us-central1'
) {
    print('Unbinding Device from Gateway' . PHP_EOL);

    // Instantiate a client.
    $deviceManager = new DeviceManagerClient();
    $registryName = $deviceManager->registryName($projectId, $location, $registryId);

    $result = $deviceManager->unbindDeviceFromGateway($registryName, $gatewayId, $deviceId);

    print('Device unbound');


For more information, see the Cloud IoT Core Python API reference documentation.

# project_id = 'YOUR_PROJECT_ID'
# cloud_region = 'us-central1'
# registry_id = 'your-registry-id'
# device_id = 'your-device-id'
# gateway_id = 'your-gateway-id'
client = iot_v1.DeviceManagerClient()

parent = client.registry_path(project_id, cloud_region, registry_id)

res = client.unbind_device_from_gateway(
    request={"parent": parent, "gateway_id": gateway_id, "device_id": device_id}

print("Device unbound: {}".format(res))


For more information, see the Cloud IoT Core Ruby API reference documentation.

# project_id  = "Your Google Cloud project ID"
# location_id = "The Cloud region the registry is located in"
# registry_id = "The registry to bind a device in"
# gateway_id  = "The Gateway to bind to"
# device_id   = "The identifier of the device to bind"

require "google/apis/cloudiot_v1"

# Initialize the client and authenticate with the specified scope
Cloudiot   = Google::Apis::CloudiotV1
iot_client =
iot_client.authorization = Google::Auth.get_application_default(

# The resource name of the location associated with the project
parent = "projects/#{project_id}/locations/#{location_id}/registries/#{registry_id}"

unbind_req =
unbind_req.gateway_id = gateway_id
unbind_req.device_id = device_id

res = iot_client.unbind_registry_device_from_gateway parent, unbind_req
puts "Device unbound"

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser.