Visit [Chrome Management Reports API](https://developers.google.com/chrome/management/guides/reports_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 literal `my_customer`
- `$ORG_UNIT_ID` - ID of a particluar org unit for which you want to generate a request.

## Count Chrome profile versions active in date range

To view which Chrome profile versions were active over a given range of time,
use the `last_active_date` value in the `filter` parameter. 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/reports:countChromeProfileVersions?filter=last_active_date<2020-11-06+AND+last_active_date>2020-11-04"

#### Response

    {
      "profileBrowserVersions": [
        {
          "count": "1",
          "version": "85.0.4183.83",
          "system": "SYSTEM_MAC",
          "channel": "STABLE"
        },
        {
          "count": "1",
          "version": "85.0.4183.102",
          "system": "SYSTEM_WINDOWS",
          "channel": "STABLE"
        },
        {
          "count": "13697",
          "version": "71.0.3578.96",
          "system": "SYSTEM_MAC",
          "channel": "STABLE"
        },
        {
          "count": "1",
          "version": "87.0.4280.40",
          "system": "SYSTEM_MAC",
          "channel": "BETA"
        },
        {
          "count": "1",
          "version": "88.0.4314.0",
          "system": "SYSTEM_MAC",
          "channel": "CANARY"
        },
        {
          "count": "1718"
        },
      ],
      "totalSize": 6
    }

## Count Chrome versions active in date range

To view which Chrome versions were active over a given range of time,
use the `last_active_date` value in the `filter` parameter. 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/reports:countChromeVersions?filter=last_active_date<2020-11-06+AND+last_active_date>2020-11-04"

#### Response

    {
      "browserVersions": [
        {
          "count": "1",
          "version": "85.0.4183.83",
          "system": "SYSTEM_MAC",
          "channel": "STABLE"
        },
        {
          "count": "1",
          "version": "85.0.4183.102",
          "system": "SYSTEM_WINDOWS",
          "channel": "STABLE"
        },
        {
          "count": "13697",
          "version": "71.0.3578.96",
          "system": "SYSTEM_MAC",
          "channel": "STABLE"
        },
        {
          "count": "1",
          "version": "87.0.4280.40",
          "system": "SYSTEM_MAC",
          "channel": "BETA"
        },
        {
          "count": "1",
          "version": "88.0.4314.0",
          "system": "SYSTEM_MAC",
          "channel": "CANARY"
        },
        {
          "count": "1718"
        },
      ],
      "totalSize": 5
    }

## Count distribution of app installations with a number of permissions

To view the number of devices that have installed a particular app with a given
number of permissions, use the `number_of_permissions` value in the
`filter` parameter. You can control pagination of the results using the
`pageSize` and `pageToken` parameters.

For more filter parameters, visit the
[reference](https://developers.google.com/chrome/management/reference/rest/v1/customers.reports/countInstalledApps).

#### Request

      curl -X GET \
      -H "Authorization: Bearer $TOKEN" \
      "https://chromemanagement.googleapis.com/v1/customers/$CUSTOMER/reports:countInstalledApps?filter=number_of_permissions>6"

#### Response

    {
      "totalSize": 1,
      "installedApps": [
        {
          "browserDeviceCount": "2",
          "appSource": "CHROME_WEBSTORE",
          "displayName": "Secure Shell App",
          "description": "Terminal emulator and SSH and SFTP client.",
          "appType": "APP",
          "appInstallType": "ADMIN",
          "appId": "pnhechapfaindjhompbnflcldabbghjo",
          "homepageUri": "https://chrome.google.com/webstore/detail/pnhechapfaindjhompbnflcldabbghjo",
          "permissions": [
            "clipboardRead",
            "clipboardWrite",
            "crashReportPrivate",
            "idle",
            "metricsPrivate",
            "notifications",
            "storage",
            "unlimitedStorage"
          ]
        },
      ]
    }

## Count devices that have an installed app

The previous example showed an app that has been installed on 2 devices.
To view the devices that have installed this app, you can use the
`findInstalledAppDevices` custom method.
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/reports:findInstalledAppDevices?appType=app&appId=pnhechapfaindjhompbnflcldabbghjo"

#### Response

    {
      "totalSize": 2,
      "devices": [
        {
          "machine": "MACHINEA-A",
          "deviceId": "b472473e-fe50-4c6e-9ac3-03fe0d0753ce"
        },
        {
          "machine": "MACHINE-B",
          "deviceId": "a5f49e54-b07b-409f-bc5c-aaf27c483249"
        }
      ]
    }

### Follow-up request

Given the device ID returned in the previous example, you can get more
information about the device that has installed the app by using the
[Admin SDK Directory API for Chrome Browsers](https://developers.google.com/admin-sdk/directory/v1/guides/manage-chrome-browsers).

## Count profiles that have an installed app

To view the list of profiles that have installed an app, you can use the
`findInstalledAppProfiles` custom method.
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/reports:findInstalledAppProfiles?appType=app&appId=pnhechapfaindjhompbnflcldabbghjo"

#### Response

    {
      "totalSize": 2,
      "profiles": [
        {
          "email": "<email1>",
          "profileId": "ca847f92-7988-4ac8-a5a3-d0b8473c8bce",
          "profilePermanentId": "agio5SHt1rlQz3WlnKV41z5Fzxw",
          "profileOrgUnitId": "org_unit_id_1"
        },
        {
          "email": "<email2>",
          "profileId": "g472473e-fe50-4c6e-2ac3-53fe0d0753ce",
          "profilePermanentId": "pgeo2SHt1rlQz1WlnKV41z3Fzxw",
          "profileOrgUnitId": "org_unit_id_2"
        },
      ]
    }

### Follow-up request

Given the Profile permanent ID returned in the previous example, you can get
more information about the profile that has installed the app by using the
[Chrome Management Profiles API](https://developers.google.com/chrome/management/reference/rest/v1/customers.profiles/get).

## Find SaaS usage

To view aggregated SaaS application usage across your organization, use the
`findSaasUsage` custom method. You can filter results using the `filter`
parameter and sort using `orderBy`. 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/reports:findSaasUsage"

#### Response

    {
      "saasReports": [
        {
          "app": "GitHub",
          "firstNavigationTime": "2026-01-01T00:00:00Z",
          "lastNavigationTime": "2026-01-01T10:00:00Z",
          "visitsCount": "100",
          "distinctBrowsersCount": "1",
          "distinctUsersCount": "0",
          "encryptionProtocols": [
            "TLS_1_3"
          ]
        },
        {
          "app": "Slack",
          "firstNavigationTime": "2026-01-02T00:00:00Z",
          "lastNavigationTime": "2026-01-03T10:00:00Z",
          "visitsCount": "25",
          "distinctBrowsersCount": "1",
          "distinctUsersCount": "2",
          "encryptionProtocols": [
            "QUIC",
            "TLS_1_2"
          ]
        }
      ],
      "totalSize": "2"
    }

## Find SaaS usage grouped by profiles

To view SaaS application usage for a specific application grouped by profiles,
use the `findSaasUsageProfiles` custom method. The `app` parameter specifies the
SaaS application. You can filter results using the `filter` parameter and sort
using `orderBy`. 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/reports:findSaasUsageProfiles?app=Slack"

#### Response

    {
      "profileReports": [
        {
          "email": "user1@example.com",
          "profilePermanentId": "profile-permanent-id-1",
          "firstNavigationTime": "2026-01-03T10:00:00Z",
          "lastNavigationTime": "2026-01-03T10:00:00Z",
          "orgUnitId": "03ph8a2z1en205c",
          "osPlatform": "SYSTEM_WINDOWS",
          "osVersion": "10.0.19044"
        },
        {
          "email": "user2@example.com",
          "profilePermanentId": "profile-permanent-id-2",
          "firstNavigationTime": "2026-01-03T10:00:00Z",
          "lastNavigationTime": "2026-01-03T10:00:00Z",
          "orgUnitId": "03ph8a2z1en205c",
          "osPlatform": "SYSTEM_MAC",
          "osVersion": "12.3.1"
        }
      ],
      "totalSize": "2"
    }

### Follow-up request

Given the profile permanent ID returned in the previous example, you can get
more information about the profile by using the
[Chrome Management Profiles API](https://developers.google.com/chrome/management/reference/rest/v1/customers.profiles/get).

## Find SaaS usage grouped by browsers

To view SaaS application usage for a specific application grouped by browsers,
use the `findSaasUsageBrowsers` custom method. The `app` parameter specifies the
SaaS application. You can filter results using the `filter` parameter and sort
using `orderBy`. 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/reports:findSaasUsageBrowsers?app=GitHub"

#### Response

    {
      "saasUsageBrowsers": [
        {
          "machine": "machine1",
          "devicePermanentId": "device1",
          "firstNavigationTime": "2026-01-01T00:00:00Z",
          "lastNavigationTime": "2026-01-01T10:00:00Z",
          "orgUnitId": "03ph8a2z1en205b",
          "osPlatform": "SYSTEM_WINDOWS",
          "osVersion": "10.0.19042"
        }
      ],
      "totalSize": "1"
    }