---
title: Read Total Identity Counts
description: You can get the total count of unique identities associated with a selected environment for a specified time period (per day). The GET {{apiPath}}/v1/environments/{{envID}}/totalIdentities request must provide a SCIM filtering expression in the request URL that designates a date range. The sample specifies a date range from 2019-03-01 through 2019-04-01 (sample size of 32 days).
component: pingone-api
page_id: pingone-api:platform:total-identities/read-total-identity-counts
canonical_url: https://developer.pingidentity.com/pingone-api/platform/total-identities/read-total-identity-counts.html
section_ids:
  filtering-result-data: Filtering result data
  headers: Headers
  example-request: Example Request
  example-response: Example Response
---

# Read Total Identity Counts

##

```none
GET {{apiPath}}/v1/environments/{{envID}}/totalIdentities?filter=startDate%20eq%20%222019-05-01T19:00:00Z%22%20and%20endDate%20eq%20%222019-05-31T19:00:00Z%22
```

You can get the total count of unique identities associated with a selected environment for a specified time period (per day). The `GET {{apiPath}}/v1/environments/{{envID}}/totalIdentities` request must provide a SCIM filtering expression in the request URL that designates a date range. The sample specifies a date range from 2019-03-01 through 2019-04-01 (sample size of 32 days).

> **Collapse: Query parameters**
>
> | Parameter | Description                                                                                                                                             |
> | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
> | `filter`  | Filters results for the specified date range. Both `startDate` and `endDate` values must be specified (ISO 8601 format). Refer to filter details below. |

### Filtering result data

The `GET` request for total identities requires a SCIM filter to specify start and end dates for the response data. For example, this SCIM filter returns active identity counts divided into time periods of one day from the start date of 2019-01-01 to the end date of 2019-02-01:

```none
https://api.pingone.com/v1/environments/{{envID}}/totalIdentities?filter=startDate eq "2019-01-01T00:00:00+00:00" and endDate eq "2019-02-01T00:00:00+00:00"
```

These SCIM operators can be applied to the following attributes:

* `eq` (equals)

  Supported attributes: `startDate` and `endDate`

* `and` (logical AND)

  Logical AND for building compound expressions in which both expressions are true.

|   |                                                                                                                                                                                                                                                                                                                                   |
| - | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|   | These SCIM operators are not supported: `gt` (greater than), `ge` (greater than or equal to), `lt` (less than), `le` (less than or equal to), `ne` (not equal), `co` (contains), `ew` (ends with), `in` (includes), `pr` (present, is a non-empty or non-null value), `sw` (starts with), `or` (logical OR), `not` (logical NOT). |

For more information about SCIM syntax and operators, paging, ordering, and limiting collections, refer to [Conventions](../../foundations/conventions.html).

### Headers

Authorization      Bearer {{accessToken}}

##

### Example Request

* cURL

* C#

* Go

* HTTP

* Java

* jQuery

* NodeJS

* Python

* PHP

* Ruby

* Swift

```shell
curl --location --globoff '{{apiPath}}/v1/environments/{{envID}}/totalIdentities?filter=startDate%20eq%20%222019-05-01T19%3A00%3A00Z%22%20and%20endDate%20eq%20%222019-05-31T19%3A00%3A00Z%22' \
--header 'Authorization: Bearer {{accessToken}}'
```

```csharp
var options = new RestClientOptions("{{apiPath}}/v1/environments/{{envID}}/totalIdentities?filter=startDate%20eq%20%222019-05-01T19:00:00Z%22%20and%20endDate%20eq%20%222019-05-31T19:00:00Z%22")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Get);
request.AddHeader("Authorization", "Bearer {{accessToken}}");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
```

```golang
package main

import (
  "fmt"
  "net/http"
  "io"
)

func main() {

  url := "{{apiPath}}/v1/environments/{{envID}}/totalIdentities?filter=startDate%20eq%20%222019-05-01T19%3A00%3A00Z%22%20and%20endDate%20eq%20%222019-05-31T19%3A00%3A00Z%22"
  method := "GET"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Authorization", "Bearer {{accessToken}}")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
```

```http
GET /v1/environments/{{envID}}/totalIdentities?filter=startDate%20eq%20%222019-05-01T19:00:00Z%22%20and%20endDate%20eq%20%222019-05-31T19:00:00Z%22 HTTP/1.1
Host: {{apiPath}}
Authorization: Bearer {{accessToken}}
```

```java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("{{apiPath}}/v1/environments/{{envID}}/totalIdentities?filter=startDate%20eq%20%222019-05-01T19:00:00Z%22%20and%20endDate%20eq%20%222019-05-31T19:00:00Z%22")
  .method("GET", body)
  .addHeader("Authorization", "Bearer {{accessToken}}")
  .build();
Response response = client.newCall(request).execute();
```

```javascript
var settings = {
  "url": "{{apiPath}}/v1/environments/{{envID}}/totalIdentities?filter=startDate%20eq%20%222019-05-01T19:00:00Z%22%20and%20endDate%20eq%20%222019-05-31T19:00:00Z%22",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer {{accessToken}}"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

```javascript
var request = require('request');
var options = {
  'method': 'GET',
  'url': '{{apiPath}}/v1/environments/{{envID}}/totalIdentities?filter=startDate%20eq%20%222019-05-01T19:00:00Z%22%20and%20endDate%20eq%20%222019-05-31T19:00:00Z%22',
  'headers': {
    'Authorization': 'Bearer {{accessToken}}'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
```

```python
import requests

url = "{{apiPath}}/v1/environments/{{envID}}/totalIdentities?filter=startDate%20eq%20%222019-05-01T19:00:00Z%22%20and%20endDate%20eq%20%222019-05-31T19:00:00Z%22"

payload = {}
headers = {
  'Authorization': 'Bearer {{accessToken}}'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
```

```php
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/v1/environments/{{envID}}/totalIdentities?filter=startDate%20eq%20%222019-05-01T19:00:00Z%22%20and%20endDate%20eq%20%222019-05-31T19:00:00Z%22');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Authorization' => 'Bearer {{accessToken}}'
));
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
```

```ruby
require "uri"
require "net/http"

url = URI("{{apiPath}}/v1/environments/{{envID}}/totalIdentities?filter=startDate%20eq%20%222019-05-01T19:00:00Z%22%20and%20endDate%20eq%20%222019-05-31T19:00:00Z%22")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer {{accessToken}}"

response = http.request(request)
puts response.read_body
```

```swift
var request = URLRequest(url: URL(string: "{{apiPath}}/v1/environments/{{envID}}/totalIdentities?filter=startDate%20eq%20%222019-05-01T19%3A00%3A00Z%22%20and%20endDate%20eq%20%222019-05-31T19%3A00%3A00Z%22")!,timeoutInterval: Double.infinity)
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")

request.httpMethod = "GET"

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()
```

### Example Response

200 OK

```json
{
    "_links": {
        "self": {
            "href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/totalIdentities"
        }
    },
    "_embedded": {
        "totalIdentities": [
            {
                "date": "2019-03-01T00:00:00.000Z",
                "totalIdentities": 5
            },
            {
                "date": "2019-03-02T00:00:00.000Z",
                "totalIdentities": 5
            },
            {
                "date": "2019-03-03T00:00:00.000Z",
                "totalIdentities": 5
            },
            {
                "date": "2019-03-04T00:00:00.000Z",
                "totalIdentities": 5
            },
            {
                "date": "2019-03-05T00:00:00.000Z",
                "totalIdentities": 5
            },
            {
                "date": "2019-03-06T00:00:00.000Z",
                "totalIdentities": 4
            },
            {
                "date": "2019-03-07T00:00:00.000Z",
                "totalIdentities": 4
            },
            {
                "date": "2019-03-08T00:00:00.000Z",
                "totalIdentities": 4
            },
            {
                "date": "2019-03-09T00:00:00.000Z",
                "totalIdentities": 4
            },
            {
                "date": "2019-03-10T00:00:00.000Z",
                "totalIdentities": 4
            },
            {
                "date": "2019-03-11T00:00:00.000Z",
                "totalIdentities": 4
            },
            {
                "date": "2019-03-12T00:00:00.000Z",
                "totalIdentities": 4
            },
            {
                "date": "2019-03-13T00:00:00.000Z",
                "totalIdentities": 6
            },
            {
                "date": "2019-03-14T00:00:00.000Z",
                "totalIdentities": 5
            },
            {
                "date": "2019-03-15T00:00:00.000Z",
                "totalIdentities": 6
            },
            {
                "date": "2019-03-16T00:00:00.000Z",
                "totalIdentities": 6
            },
            {
                "date": "2019-03-17T00:00:00.000Z",
                "totalIdentities": 6
            },
            {
                "date": "2019-03-18T00:00:00.000Z",
                "totalIdentities": 6
            },
            {
                "date": "2019-03-19T00:00:00.000Z",
                "totalIdentities": 6
            },
            {
                "date": "2019-03-20T00:00:00.000Z",
                "totalIdentities": 6
            },
            {
                "date": "2019-03-21T00:00:00.000Z",
                "totalIdentities": 6
            },
            {
                "date": "2019-03-22T00:00:00.000Z",
                "totalIdentities": 6
            },
            {
                "date": "2019-03-23T00:00:00.000Z",
                "totalIdentities": 6
            },
            {
                "date": "2019-03-24T00:00:00.000Z",
                "totalIdentities": 6
            },
            {
                "date": "2019-03-25T00:00:00.000Z",
                "totalIdentities": 6
            },
            {
                "date": "2019-03-26T00:00:00.000Z",
                "totalIdentities": 7
            },
            {
                "date": "2019-03-27T00:00:00.000Z",
                "totalIdentities": 7
            },
            {
                "date": "2019-03-28T00:00:00.000Z",
                "totalIdentities": 8
            },
            {
                "date": "2019-03-29T00:00:00.000Z",
                "totalIdentities": 7
            },
            {
                "date": "2019-03-30T00:00:00.000Z",
                "totalIdentities": 7
            },
            {
                "date": "2019-03-31T00:00:00.000Z",
                "totalIdentities": 7
            },
            {
                "date": "2019-04-01T00:00:00.000Z",
                "totalIdentities": 7
            }
        ]
    },
    "count": 7,
    "size": 32
}
```
