# Cloud IoT API API

> Cloud IoT API API on Apizie: 16 endpoints (Associates the device with the gateway., Lists device registries., Creates a device registry that contains devices., Gets details about a device., …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/analytics:googleapis-cloudiot/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `analytics:googleapis-cloudiot`
- Category: Analytics
- Status: byok
- Source: https://cloud.google.com/iot
- Page: https://apizie.tech/api/analytics/googleapis-cloudiot
- OpenAPI: https://apizie.tech/api/analytics/googleapis-cloudiot/openapi.json

Registers and manages IoT (Internet of Things) devices that connect to the Google Cloud Platform.

## Endpoints

### Associates the device with the gateway.
`POST https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-bind-device-to-gatewa` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. The name of the registry. For example, `projects/example-project/locations/us-central1/registries/my-registry`. |
| body | object | yes | JSON request body |

### Lists device registries.
`GET https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| pageSize | integer | no | The maximum number of registries to return in the response. If this value is zero, the service will select a default size. A call may… |
| pageToken | string | no | The value returned by the last `ListDeviceRegistriesResponse`; indicates that this is a continuation of a prior `ListDeviceRegistries`… |
| parent | string | yes | Required. The project and cloud region path. For example, `projects/example-project/locations/us-central1`. |

### Creates a device registry that contains devices.
`POST https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-create` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. The project and cloud region where this device registry must be created. For example,… |
| body | object | yes | JSON request body |

### Gets details about a device.
`GET https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-devices-get` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| fieldMask | string | no | The fields of the `Device` resource to be returned in the response. If the field mask is unset or empty, all fields are returned. Fields… |
| name | string | yes | Required. The name of the device. For example, `projects/p0/locations/us-central1/registries/registry0/devices/device0` or… |

### Updates a device.
`POST https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-devices-patch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | The resource path name. For example, `projects/p1/locations/us-central1/registries/registry0/devices/dev0` or… |
| updateMask | string | no | Required. Only updates the `device` fields indicated by this mask. The field mask must not be empty, and it must not contain fields that… |
| body | object | yes | JSON request body |

### Deletes a device.
`POST https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-devices-delete` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Required. The name of the device. For example, `projects/p0/locations/us-central1/registries/registry0/devices/device0` or… |

### Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not…
`POST https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-groups-get-iam-policy` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| resource | string | yes | REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names)… |
| body | object | yes | JSON request body |

### Sets the access control policy on the specified resource. Replaces any existing policy.
`POST https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-groups-set-iam-policy` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| resource | string | yes | REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names)… |
| body | object | yes | JSON request body |

### Returns permissions that a caller has on the specified resource. If the resource does not exist, this will…
`POST https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-groups-test-iam-permi` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| resource | string | yes | REQUIRED: The resource for which the policy detail is being requested. See [Resource… |
| body | object | yes | JSON request body |

### Deletes the association between the device and the gateway.
`POST https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-unbind-device-from-ga` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. The name of the registry. For example, `projects/example-project/locations/us-central1/registries/my-registry`. |
| body | object | yes | JSON request body |

### List devices in a device registry.
`GET https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-groups-devices-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| deviceIds | string | no | A list of device string IDs. For example, `['device0', 'device12']`. If empty, this field is ignored. Maximum IDs: 10,000 |
| deviceNumIds | string | no | A list of device numeric IDs. If empty, this field is ignored. Maximum IDs: 10,000. |
| fieldMask | string | no | The fields of the `Device` resource to be returned in the response. The fields `id` and `num_id` are always returned, along with any other… |
| gatewayListOptions.associationsDeviceId | string | no | If set, returns only the gateways with which the specified device is associated. The device ID can be numeric (`num_id`) or the… |
| gatewayListOptions.associationsGatewayId | string | no | If set, only devices associated with the specified gateway are returned. The gateway ID can be numeric (`num_id`) or the user-defined… |
| gatewayListOptions.gatewayType | string | no | If `GATEWAY` is specified, only gateways are returned. If `NON_GATEWAY` is specified, only non-gateway devices are returned. If… |
| pageSize | integer | no | The maximum number of devices to return in the response. If this value is zero, the service will select a default size. A call may return… |
| pageToken | string | no | The value returned by the last `ListDevicesResponse`; indicates that this is a continuation of a prior `ListDevices` call and the system… |
| parent | string | yes | Required. The device registry path. Required. For example, `projects/my-project/locations/us-central1/registries/my-registry`. |

### Creates a device in a device registry.
`POST https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-devices-create` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| parent | string | yes | Required. The name of the device registry where this device should be created. For example,… |
| body | object | yes | JSON request body |

### Modifies the configuration for the device, which is eventually sent from the Cloud IoT Core servers. Returns…
`POST https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-devices-modify-cloud` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Required. The name of the device. For example, `projects/p0/locations/us-central1/registries/registry0/devices/device0` or… |
| body | object | yes | JSON request body |

### Sends a command to the specified device. In order for a device to be able to receive commands, it must: 1)…
`POST https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-devices-send-command` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Required. The name of the device. For example, `projects/p0/locations/us-central1/registries/registry0/devices/device0` or… |
| body | object | yes | JSON request body |

### Lists the last few versions of the device configuration in descending order (i.e.: newest first).
`GET https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-devices-config-versio` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Required. The name of the device. For example, `projects/p0/locations/us-central1/registries/registry0/devices/device0` or… |
| numVersions | integer | no | The number of versions to list. Versions are listed in decreasing order of the version number. The maximum number of versions retained is… |

### Lists the last few versions of the device state in descending order (i.e.: newest first).
`GET https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-devices-states-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | yes | Required. The name of the device. For example, `projects/p0/locations/us-central1/registries/registry0/devices/device0` or… |
| numStates | integer | no | The number of states to list. States are listed in descending order of update time. The maximum number of states retained is 10. If this… |

## Example
```
curl "https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-bind-device-to-gatewa" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the Cloud IoT API API?
Create a free Apizie key, then send POST https://apizie.tech/v1/analytics:googleapis-cloudiot/cloudiot-projects-locations-registries-bind-device-to-gatewa with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Cloud IoT API API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. Cloud IoT API itself also needs your own key from googleapis.com.

### Can AI agents use the Cloud IoT API API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key analytics:googleapis-cloudiot.

### What is the status of the Cloud IoT API API?
Needs your own provider key (bring your own key)
