AI-generated Key Takeaways
-
The Chrome Management Telemetry API allows you to retrieve telemetry data for Chrome devices and users, including CPU, memory, OS update, and audio statuses.
-
You can filter telemetry data by device, user, organizational unit, timestamp, and event type, using the
filter
parameter in API requests. -
The
readMask
parameter specifies which fields are returned in the response, ensuring efficient data retrieval. -
Telemetry events, such as USB additions and network changes, can be accessed via the
/telemetry/events
endpoint, providing insights into device activity. -
By default, only recent report data is returned; to retrieve all report data, include
reports_timestamp>=0
in the filter.
Visit Chrome Management Telemetry API for an overview of API features.
All the requests shown below use the following variables:
$TOKEN
- OAuth 2 token$CUSTOMER
- ID of the customer or literalmy_customer
List Telemetry Device Data
To list telemetry data for a chrome device use the
/telemetry/devices
endpoint. The readMask
parameter is used to specify which
device fields are returned. You can control pagination of the results using the
pageSize
and pageToken
parameters. Specify a filter
to further narrow down
the results based off of device or report criteria.
Request
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/telemetry/devices?readMask=name,customer,orgUnitId,deviceId,serialNumber,cpuInfo,cpuStatusReport,memoryInfo,memoryStatusReport,osUpdateStatus&pageSize=2"
Response
{
"devices": [
{
"name": "customers/<customer>/telemetry/devices/<deviceId>",
"customer": "customers/<customer>",
"orgUnitId": "ABCEDFG",
"deviceId": "<deviceId>",
"serialNumber": "0A2B213CDEFG",
"cpuStatusReport": [
{
"reportTime": "2021-04-25T13:23:55.880Z",
"cpuUtilizationPct": 76
},
{
"reportTime": "2021-04-25T18:25:55.880Z",
"cpuTemperatureInfo": [
{
"temperatureCelsius": 38,
"label": "Core"
},
]
}
],
"memoryStatusReport": [
{
"reportTime": "2021-04-25T13:23:55.880Z",
"systemRamFreeBytes": "14358468900"
}
],
"osUpdateStatus": [
{
"lastUpdateTime": "2021-04-25T11:18:51.383Z",
"lastUpdateCheckTime": "1970-01-01T00:00:00Z",
"lastRebootTime": "2021-04-25T11:18:51.383Z"
}
]
},
{
"name": "customers/<customer>/telemetry/devices/<deviceId>",
"customer": "customers/<customer>",
"orgUnitId": "FEDCBA",
"deviceId": "<deviceId>",
"serialNumber": "1B3D817LKUH",
"cpuStatusReport": [
{
"reportTime": "2021-05-25T13:23:55.880Z",
"cpuUtilizationPct": 50
},
],
"memoryStatusReport": [
{
"reportTime": "2021-05-25T13:23:55.880Z",
"systemRamFreeBytes": "14358468900"
}
],
"osUpdateStatus": [
{
"lastUpdateTime": "2021-05-25T11:18:51.383Z",
"lastUpdateCheckTime": "1970-01-01T00:00:00Z",
"lastRebootTime": "2021-05-25T11:18:51.383Z"
}
]
}
],
"nextPageToken": "PAGE_TOKEN"
}
List Telemetry Device Data for a Single Org Unit
To list telemetry data for a single org unit, use the orgUnitId
value in the filter
parameter.
Request
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/telemetry/devices?readMask=name,customer,orgUnitId,deviceId,serialNumber,cpuInfo,cpuStatusReport,memoryInfo,memoryStatusReport,osUpdateStatus&filter=orgUnitId=ABCDEFG"
Response
{
"devices": [
{
"name": "customers/<customer>/telemetry/devices/<deviceId>",
"customer": "customers/<customer>",
"orgUnitId": "ABCEDFG",
"deviceId": "<deviceId>",
"serialNumber": "0A2B213CDEFG",
"cpuStatusReport": [
{
"reportTime": "2021-04-25T13:23:55.880Z",
"cpuUtilizationPct": 76
},
{
"reportTime": "2021-04-25T18:25:55.880Z",
"cpuTemperatureInfo": [
{
"temperatureCelsius": 38,
"label": "Core"
},
]
}
],
"memoryStatusReport": [
{
"reportTime": "2021-04-25T13:23:55.880Z",
"systemRamFreeBytes": "14358468900"
}
],
"osUpdateStatus": [
{
"lastUpdateTime": "2021-04-25T11:18:51.383Z",
"lastUpdateCheckTime": "1970-01-01T00:00:00Z",
"lastRebootTime": "2021-04-25T11:18:51.383Z"
}
]
}
]
}
List Telemetry Device Data Using a Timestamp Filter
The timestamp filter returns all devices, but only includes reports that conform
to the timestamp filter and specified read_mask
.
To use this filter, specify the reports_timestamp
value in the filter
parameter and include a timestamp value in either the Unix Epoch in milliseconds
(ie. 1679288169623
) or RFC 3339 "Zulu" formatted time (up to nine fractional
digits ie. "2023-02-15T11:18:51.383Z"
) formats. Timestamps returned by the
API are in the UTC timezone, so reports_timestamp
filter values should also be
in the UTC timezone. All standard number comparison operators
(<, >, <=, >=, =
) are supported.
List All Reports
Since only recent reports are returned when no reports_timestamp
value is
specified, the following call can be used to retrieve all device reports
included in the read_mask
for all devices.
Request
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/telemetry/devices?readMask=name,customer,orgUnitId,deviceId,serialNumber,audioStatusReport,cpuStatusReport,heartbeatStatusReport,memoryStatusReport&filter=reports_timestamp>=0"
Response
{
"devices": [
{
"name": "customers/<customer>/telemetry/devices/<deviceId>",
"customer": "customers/<customer>",
"orgUnitId": "ABCEDFG",
"deviceId": "<deviceId>",
"serialNumber": "0A2B213CDEFG",
"audioStatusReport": [
{
"reportTime": "2009-01-01T12:37:51.383Z",
"inputMute": true,
"inputDevice": "example input device 2009",
},
{
"reportTime": "2010-02-01T12:37:51.383Z",
"inputMute": false,
"inputDevice": "example input device 2010",
},
{
"reportTime": "2011-03-01T12:37:51.383Z",
"inputMute": true,
"inputDevice": "example input device 2011",
},
{
"reportTime": "2024-01-01T12:37:51.383Z",
"inputMute": false,
"inputDevice": "example input device 2024",
}
],
"cpuStatusReport": [
{
"reportTime": "1960-10-15T01:18:51.383Z",
"cpuUtilizationPct": 76
},
{
"reportTime": "1997-10-31T11:18:51.383Z",
"cpuTemperatureInfo": [
{
"temperatureCelsius": 38,
"label": "Core"
},
]
}
]
},
{
"name": "customers/<customer>/telemetry/devices/<deviceId 1>",
"customer": "customers/<customer>",
"orgUnitId": "ABCEDFG",
"deviceId": "<deviceId 1>",
"serialNumber": "HGFEDCBA",
"heartbeatStatusReport": [
{
"reportTime": "2001-02-15T11:18:51.383Z",
"state": "ONLINE"
},
{
"reportTime": "2002-07-22T11:18:51.383Z",
"state": "OFFLINE"
},
{
"reportTime": "2012-01-04T11:18:51.383Z",
"state": "UNKNOWN"
},
{
"reportTime": "2024-02-29T11:18:51.383Z",
"state": "ONLINE"
}
],
"memoryStatusReport": [
{
"reportTime": "2024-03-20T11:18:51.383Z",
"systemRamFreeBytes": "112233445566778"
}
]
}
]
}
List Reports After A Specific Timestamp
To make a request for querying reports after a specific timestamp, use the
reports_timestamp
as is shown in the following example.
Request
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/telemetry/devices?readMask=name,customer,orgUnitId,deviceId,serialNumber,cpuStatusReport,memoryStatusReport,osUpdateStatus&filter=reports_timestamp>=\"2023-02-15T11:18:51.383Z\""
Response
{
"devices": [
{
"name": "customers/<customer>/telemetry/devices/<deviceId>",
"customer": "customers/<customer>",
"orgUnitId": "ABCEDFG",
"deviceId": "<deviceId>",
"serialNumber": "0A2B213CDEFG",
"cpuStatusReport": [
{
"reportTime": "2023-02-15T11:18:51.383Z",
"cpuUtilizationPct": 76
},
{
"reportTime": "2023-03-19T11:18:51.383Z",
"cpuTemperatureInfo": [
{
"temperatureCelsius": 38,
"label": "Core"
},
]
}
],
"memoryStatusReport": [
{
"reportTime": "2023-04-19T11:18:51.383Z",
"systemRamFreeBytes": "14358468900"
}
]
},
{
"name": "customers/<customer>/telemetry/devices/<deviceId 1>",
"customer": "customers/<customer>",
"orgUnitId": "ABCEDFG",
"deviceId": "<deviceId 1>",
"serialNumber": "HGFEDCBA",
"memoryStatusReport": [
{
"reportTime": "2024-02-15T11:18:51.383Z",
"systemRamFreeBytes": "112233445566778"
}
]
}
]
}
List Telemetry Device Data Using Multiple Filters (Conjunction Filtering)
To use multiple filters to narrow down the response returned by the api, use the AND
keyword in the filter
parameter and include multiple filtering criteria.
Request
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/telemetry/devices?readMask=name,customer,orgUnitId,deviceId,serialNumber,cpuStatusReport,memoryStatusReport,osUpdateStatus&filter=reports_timestamp=\"2023-02-15T11:18:51.383Z\" AND serialNumber=HGFEDCBA"
Response
{
"devices": [
{
"name": "customers/<customer>/telemetry/devices/<deviceId 1>",
"customer": "customers/<customer>",
"orgUnitId": "ABCEDFG",
"deviceId": "<deviceId 1>",
"serialNumber": "HGFEDCBA",
"memoryStatusReport": [
{
"reportTime": "2023-02-15T11:18:51.383Z",
"systemRamFreeBytes": "112233445566778"
}
]
}
]
}
List Telemetry User Data
To list telemetry data for a chrome device use the
/telemetry/users
endpoint. The readMask
parameter is used to specify which
device fields are returned. You can control pagination of the results using the
pageSize
and pageToken
parameters.
Request
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/telemetry/users?readMask=name,customer,orgUnitId,userId,userEmail,user_device.device_id,user_device.audio_status_report,user_device.peripherals_report&pageSize=2"
Response
{
"telemetryUsers": [
{
"name": "customers/<customer>/telemetry/users/<userId>",
"customer": "customers/<customer>",
"orgUnitId": "ABCEDFG",
"userEmail": "<userId>",
"userEmail": "user@mytestdomain.com",
"userDevice": [
{
"deviceId": "HIJKLMNOP",
"audioStatusReport": [
{
"reportTime": "2021-04-25T13:23:55.880Z",
"outputMute": true,
"inputMute": true,
}
],
"peripheralsReport": [
{
"reportTime": "2021-04-25T18:25:55.880Z",
"usbPeripheralReport": [
{
"vendor": "Vendor",
"name": "Microphone",
}
]
}
]
}
]
},
{
"name": "customers/<customer>/telemetry/users/<userId>",
"customer": "customers/<customer>",
"orgUnitId": "QRSTUV",
"userEmail": "<userId>",
"userEmail": "user2@mytestdomain.com",
"userDevice": [
{
"deviceId": "WXYZ",
"audioStatusReport": [
{
"reportTime": "2021-04-25T13:23:55.880Z",
"outputMute": true,
"inputMute": true,
}
],
"peripheralsReport": [
{
"reportTime": "2021-04-25T18:25:55.880Z",
"usbPeripheralReport": [
{
"vendor": "Vendor",
"name": "Microphone",
}
]
}
]
}
]
}
],
"nextPageToken": "PAGE_TOKEN"
}
List Telemetry User Data for a Single Org Unit
To list telemetry data for a single org unit, use the orgUnitId
value in the filter
parameter.
Request
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/telemetry/users?readMask=name,customer,orgUnitId,userId,userEmail,user_device.device_id,user_device.audio_status_report,user_device.peripherals_report&pageSize=2&filter=orgUnitId=ABCDEFG"
Response
{
"telemetryUsers": [
{
"name": "customers/<customer>/telemetry/users/<userId>",
"customer": "customers/<customer>",
"orgUnitId": "ABCEDFG",
"userEmail": "<userId>",
"userEmail": "user@mytestdomain.com",
"userDevice": [
{
"deviceId": "HIJKLMNOP",
"audioStatusReport": [
{
"reportTime": "2021-04-25T13:23:55.880Z",
"outputMute": true,
"inputMute": true,
}
],
"peripheralsReport": [
{
"reportTime": "2021-04-25T18:25:55.880Z",
"usbPeripheralReport": [
{
"vendor": "Vendor",
"name": "Microphone",
}
]
}
]
}
]
}
]
}
List Telemetry Event Data
To list telemetry events for a customer, use the /telemetry/events
endpoint. The readMask
parameter is used to specify which fields are returned. In the near future, the readMask
parameter will become optional, and the filter
param with at least 1 event type will be required.
By default, the event's name
, report_time
, and event_type
fields are included in the response. You can control pagination of the results using the pageSize
and pageToken
parameters. Additionally, you can filter results with the following parameters:
- device_id
- user_id
- device_org_unit_id
- user_org_unit_id
- timestamp
- Input value can either be EPOCH milliseconds, ie
timestamp<1667423821001
or RFC 3339, ie.timestamp<"2022-11-02T20:08:32.386Z"
- Input value can either be EPOCH milliseconds, ie
- event_type
- audio_severe_underrun
- network_connection_state_change
- usb_added
- usb_removed
- network_htps_latency_change
Request
curl -X GET \
-H "Authorization: Bearer $TOKEN" \
"https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/telemetry/events?readMask=device,usb_peripherals_event&filter=event_type=usb_added&pageSize=3"
Response
{
"telemetryEvents": [
{
"name": "customers/<customer>/telemetry/events/<event id>",
"device": {
"deviceId": "<device id>",
"orgUnitId": "<device’s org unit id>"
},
"reportTime": "2022-11-02T11:14:09.034Z",
"eventType": "USB_ADDED",
"usbPeripheralsEvent": {
"usbPeripheralReport": [
{
"vendor": "Microdia",
"name": "Integrated_Webcam_HD",
"vid": <vid>,
"pid": <pid>
}
]
}
},
{
"name": "customers/<customer>/telemetry/events/<event id>",
"device": {
"deviceId": "<device id>",
"orgUnitId": "<device’s org unit id>"
},
"reportTime": "2022-11-02T10:10:36.481Z",
"eventType": "USB_ADDED",
"usbPeripheralsEvent": {
"usbPeripheralReport": [
{
"vendor": "Hewlett-Packard",
"name": "x304m",
"vid": <vid>,
"pid": <pid>,
"categories": [
"Mass storage"
]
}
]
}
},
{
"name": "customers/<customer>/telemetry/events/<event id>",
"device": {
"deviceId": "<device id>",
"orgUnitId": "<device’s org unit id>"
},
"reportTime": "2022-11-02T09:58:48.249Z",
"eventType": "USB_ADDED",
"usbPeripheralsEvent": {
"usbPeripheralReport": [
{
"vendor": "Realtek Semiconductor Corp.",
"name": "USB 10/100/1000 LAN",
"vid": <vid>,
"pid": <pid>,
"categories": [
"Vendor Specific"
]
}
]
}
}
],
"nextPageToken": "<page token>"
}