PingOne Platform APIs

Read Total Identity Counts

 

GET {{apiPath}}/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}}/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).

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:

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.

Headers

Authorization      Bearer {{accessToken}}

Example Request

  • cURL

  • C#

  • Go

  • HTTP

  • Java

  • jQuery

  • NodeJS

  • Python

  • PHP

  • Ruby

  • Swift

curl --location --globoff '{{apiPath}}/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}}'
var options = new RestClientOptions("{{apiPath}}/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);
package main

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

func main() {

  url := "{{apiPath}}/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))
}
GET /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}}
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("{{apiPath}}/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();
var settings = {
  "url": "{{apiPath}}/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);
});
var request = require('request');
var options = {
  'method': 'GET',
  'url': '{{apiPath}}/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);
});
import requests

url = "{{apiPath}}/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
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/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();
}
require "uri"
require "net/http"

url = URI("{{apiPath}}/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
var request = URLRequest(url: URL(string: "{{apiPath}}/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

{
    "_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
}