---
title: "POST /v1/partners/{partnersId}/devices:updateMetadataAsync"
method: POST
path: "/v1/partners/{partnersId}/devices:updateMetadataAsync"
tags: ["partners"]
---

# POST /v1/partners/{partnersId}/devices:updateMetadataAsync

`POST /v1/partners/{partnersId}/devices:updateMetadataAsync`

## Request

- Base URL: `https://androiddeviceprovisioning.googleapis.com`
- URL: `https://androiddeviceprovisioning.googleapis.com/v1/partners/{partnersId}/devices:updateMetadataAsync`
- Auth: none declared

Updates the reseller metadata attached to a batch of devices. This method updates devices asynchronously and returns an `Operation` that can be used to track progress. Read [Long‑running batch operations](/zero-touch/guides/how-it-works#operations). Android Devices only.

## Path parameters

- `partnersId` string, required

## Request body

- UpdateDeviceMetadataInBatchRequest: Request to update device metadata in batch.
  - `updates` UpdateMetadataArguments[]: Required. The list of metadata updates.
    - `deviceId` string, int64: Required. Device ID of the device.
    - `deviceIdentifier` DeviceIdentifier: Encapsulates hardware and product IDs to identify a manufactured device. To understand requirements on identifier sets, read [Identifiers](https://developers.google.com/zero-touch/guides/identifiers).
      - `chromeOsAttestedDeviceId` string: An identifier provided by OEMs, carried through the production and sales process. Only applicable to Chrome OS devices.
      - `deviceType` 'DEVICE_TYPE_UNSPECIFIED' | 'DEVICE_TYPE_ANDROID' | 'DEVICE_TYPE_CHROME_OS': The type of the device
      - `imei` string: The device’s IMEI number. Validated on input.
      - `imei2` string: The device’s second IMEI number.
      - `manufacturer` string: The device manufacturer’s name. Matches the device's built-in value returned from `android.os.Build.MANUFACTURER`. Allowed values are listed in [Android manufacturers](/zero-touch/resources/manufacturer-names#manufacturers-names).
      - `meid` string: The device’s MEID number.
      - `meid2` string: The device’s second MEID number.
      - `model` string: The device model's name. Allowed values are listed in [Android models](/zero-touch/resources/manufacturer-names#model-names) and [Chrome OS models](https://support.google.com/chrome/a/answer/10130175#identify_compatible).
      - `serialNumber` string: The manufacturer's serial number for the device. This value might not be unique across different device models.
    - `deviceMetadata` DeviceMetadata: Metadata entries that can be attached to a `Device`. To learn more, read [Device metadata](https://developers.google.com/zero-touch/guides/metadata).
      - `entries` object: Metadata entries recorded as key-value pairs.

## Response `200`

Successful response

- Operation: This resource represents a long-running operation that is the result of a network API call.
  - `done` boolean: If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  - `error` Status: The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
    - `code` integer: The status code, which should be an enum value of google.rpc.Code.
    - `details` object[]: A list of messages that carry the error details. There is a common set of message types for APIs to use.
    - `message` string: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  - `metadata` object: This field will contain a `DevicesLongRunningOperationMetadata` object if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`.
  - `name` string: The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  - `response` object: This field will contain a `DevicesLongRunningOperationResponse` object if the operation is created by `claimAsync`, `unclaimAsync`, or `updateMetadataAsync`.

---

[API](https://skmtc.dev/google/apis/androiddeviceprovisioning.md) - [All operations](https://skmtc.dev/google/apis/androiddeviceprovisioning/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/androiddeviceprovisioning/revisions/87b1e2664607?raw)
