Creating devices
This page explains how to create devices.
Before you begin
Perform the following tasks before proceeding with the information on this page:
Read the Devices API overview.
Creating a device
The following examples shows you how to create a device.
REST
To create a device, call devices.create()
with the name of the customer
(organization) and a Device object.
Python HTTP
The following example shows a helper function to create a device using the Python HTTP library:
"""Example script to use the create method of the Devices API.""" import json import pprint from six.moves import urllib import google.auth.transport.requests from google.oauth2 import service_account SCOPES = ['https://www.googleapis.com/auth/cloud-identity.devices'] BASE_URL = 'https://cloudidentity.googleapis.com/v1/' # Change this to the location of the service account key SA_FILE = '' # Enter the administrator to call as here. ADMIN_EMAIL = '' if not SA_FILE: print('Please specify the location of the service account key file') if not ADMIN_EMAIL: print('Please specify the email of the administrator to call as') if not SA_FILE or not ADMIN_EMAIL: exit(-1) def create_delegated_credentials(user_email): credentials = service_account.Credentials.from_service_account_file( SA_FILE, scopes=['https://www.googleapis.com/auth/cloud-identity.devices']) delegated_credentials = credentials.with_subject(user_email) return delegated_credentials ###################################################################### # AUTHENTICATE the service account and retrieve an oauth2 access token request = google.auth.transport.requests.Request() dc = create_delegated_credentials(ADMIN_EMAIL) dc.refresh(request) print('Access token: ' + dc.token + '\n') ############################### # Create the Device header = { 'authorization': 'Bearer ' + dc.token, 'Content-Type': 'application/json' } body = { 'serialNumber': 'someSerial', # the serial number of your device. # see values in # https://cloud.google.com/identity/docs/reference/rest/v1/devices#DeviceType 'deviceType': 'LINUX' } serialized_body = json.dumps(body, separators=(',', ':')) request_url = BASE_URL + 'devices' print('Request URL: ' + request_url) print('Request body: ' + serialized_body) serialized_body = json.dumps(body, separators=(',', ':')) request = urllib.request.Request(request_url, serialized_body, headers=header) request.get_method = lambda: 'POST' try: contents = urllib.request.urlopen(request) except urllib.error.HTTPError as e: if e.code == 409: print('The request was invalid. Perhaps the device is already present?') else: print('Unknown error occurred: {}', e.code) exit(-1) create_response = json.loads(contents.read()) inner_response = create_response['response'] pp = pprint.PrettyPrinter(indent=4) pp.pprint(inner_response)
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-10-16 UTC.