Read Active Identity Counts by License
GET {{apiPath}}/organizations/{{orgID}}/licenses/{{licenseID}}/metrics/activeIdentityCounts?aggregatedBy=calendarMonth&limit=1-1000&order=-startDate
The GET /organizations/{{orgID}}/licenses/{{licenseID}}/metrics/activeIdentityCounts operation returns the number of active users per license for a specified time period. The time period and grouping of results is derived from two query parameters: aggregatedBy and limit. All results start on the first day of the license period.
|
Currently, the active identity count does not return product-specific counts (such as, for PingOne SSO, MFA, or Protect), nor does it count active users when DaVinci is used. |
The aggregatedBy query parameter is required. If aggregatedBy = licenseYear, the request returns the number of active users grouped by year. If aggregatedBy = calendarMonth, the request returns the number of active users grouped by month.
The number of groupings returned is determined by the limit query parameter. For example, if the license period started on January 1, 2020, aggregatedBy = calendarMonth, and limit = 2, the results would include two groups. The first group would be for the number of active users January 1, 2020 to January 31, 2020. The second group would be for the number of active users February 1, 2020 to February 29, 2020. If the number of groupings surpasses the current date, the last (or first, depending on the sort order) grouping ends on the current date.
Path Parameters
| Parameter | Type | Required? | Description | |
|---|---|---|---|---|
|
String |
Required |
Immutable |
The specific organization the client is interested in. |
|
String |
Required |
Immutable |
The specific license for which the client wants the number of annual active users or monthly active users. |
Query parameters
| Parameter | Description |
|---|---|
|
Required. Possible values are |
|
The number of counts in a response. This value is a number from |
|
Defines the sort order of results. Possible values are |
|
Indicates the first item to retrieve. |
Example Request
-
cURL
-
C#
-
Go
-
HTTP
-
Java
-
jQuery
-
NodeJS
-
Python
-
PHP
-
Ruby
-
Swift
curl --location --globoff '{{apiPath}}/organizations/{{orgID}}/licenses/{{licenseID}}/metrics/activeIdentityCounts?aggregatedBy=calendarMonth&limit=1-1000&order=-startDate' \
--header 'Authorization: Bearer {{accessToken}}'
var options = new RestClientOptions("{{apiPath}}/organizations/{{orgID}}/licenses/{{licenseID}}/metrics/activeIdentityCounts?aggregatedBy=calendarMonth&limit=1-1000&order=-startDate")
{
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}}/organizations/{{orgID}}/licenses/{{licenseID}}/metrics/activeIdentityCounts?aggregatedBy=calendarMonth&limit=1-1000&order=-startDate"
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 /organizations/{{orgID}}/licenses/{{licenseID}}/metrics/activeIdentityCounts?aggregatedBy=calendarMonth&limit=1-1000&order=-startDate 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}}/organizations/{{orgID}}/licenses/{{licenseID}}/metrics/activeIdentityCounts?aggregatedBy=calendarMonth&limit=1-1000&order=-startDate")
.method("GET", body)
.addHeader("Authorization", "Bearer {{accessToken}}")
.build();
Response response = client.newCall(request).execute();
var settings = {
"url": "{{apiPath}}/organizations/{{orgID}}/licenses/{{licenseID}}/metrics/activeIdentityCounts?aggregatedBy=calendarMonth&limit=1-1000&order=-startDate",
"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}}/organizations/{{orgID}}/licenses/{{licenseID}}/metrics/activeIdentityCounts?aggregatedBy=calendarMonth&limit=1-1000&order=-startDate',
'headers': {
'Authorization': 'Bearer {{accessToken}}'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
url = "{{apiPath}}/organizations/{{orgID}}/licenses/{{licenseID}}/metrics/activeIdentityCounts?aggregatedBy=calendarMonth&limit=1-1000&order=-startDate"
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}}/organizations/{{orgID}}/licenses/{{licenseID}}/metrics/activeIdentityCounts?aggregatedBy=calendarMonth&limit=1-1000&order=-startDate');
$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}}/organizations/{{orgID}}/licenses/{{licenseID}}/metrics/activeIdentityCounts?aggregatedBy=calendarMonth&limit=1-1000&order=-startDate")
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}}/organizations/{{orgID}}/licenses/{{licenseID}}/metrics/activeIdentityCounts?aggregatedBy=calendarMonth&limit=1-1000&order=-startDate")!,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": {
"next": {
"href": "https://api.pingone.com/v1/organizations/bed432e6-676a-4ebe-b5a5-6b3b54e46bda/licenses/3f06970a-3235-46cb-b46f-cf6dfee2bb84/metrics/activeIdentityCounts?limit=1-1000&aggregatedBy=calendarMonth&order=-startDate&cursor=MTI%3D"
},
"self": {
"href": "https://api.pingone.com/v1/organizations/bed432e6-676a-4ebe-b5a5-6b3b54e46bda/licenses/3f06970a-3235-46cb-b46f-cf6dfee2bb84/metrics/activeIdentityCounts?limit=1-1000&aggregatedBy=calendarMonth&order=-startDate"
}
},
"_embedded": {
"activeIdentityCounts": [
{
"_links": {
"license": {
"href": "https://api.pingone.com/v1/organizations/bed432e6-676a-4ebe-b5a5-6b3b54e46bda/licenses/3f06970a-3235-46cb-b46f-cf6dfee2bb84"
}
},
"activeUsers": 0,
"startDate": "2025-11-01T00:00:00Z",
"endDate": "2025-11-03T23:59:59.999Z"
},
{
"_links": {
"license": {
"href": "https://api.pingone.com/v1/organizations/bed432e6-676a-4ebe-b5a5-6b3b54e46bda/licenses/3f06970a-3235-46cb-b46f-cf6dfee2bb84"
}
},
"activeUsers": 1,
"startDate": "2025-10-01T00:00:00Z",
"endDate": "2025-10-31T23:59:59.999Z"
},
{
"_links": {
"license": {
"href": "https://api.pingone.com/v1/organizations/bed432e6-676a-4ebe-b5a5-6b3b54e46bda/licenses/3f06970a-3235-46cb-b46f-cf6dfee2bb84"
}
},
"activeUsers": 1,
"startDate": "2025-09-01T00:00:00Z",
"endDate": "2025-09-30T23:59:59.999Z"
},
{
"_links": {
"license": {
"href": "https://api.pingone.com/v1/organizations/bed432e6-676a-4ebe-b5a5-6b3b54e46bda/licenses/3f06970a-3235-46cb-b46f-cf6dfee2bb84"
}
},
"activeUsers": 0,
"startDate": "2025-08-01T00:00:00Z",
"endDate": "2025-08-31T23:59:59.999Z"
},
{
"_links": {
"license": {
"href": "https://api.pingone.com/v1/organizations/bed432e6-676a-4ebe-b5a5-6b3b54e46bda/licenses/3f06970a-3235-46cb-b46f-cf6dfee2bb84"
}
},
"activeUsers": 1,
"startDate": "2025-07-01T00:00:00Z",
"endDate": "2025-07-31T23:59:59.999Z"
},
{
"_links": {
"license": {
"href": "https://api.pingone.com/v1/organizations/bed432e6-676a-4ebe-b5a5-6b3b54e46bda/licenses/3f06970a-3235-46cb-b46f-cf6dfee2bb84"
}
},
"activeUsers": 1,
"startDate": "2025-06-01T00:00:00Z",
"endDate": "2025-06-30T23:59:59.999Z"
},
{
"_links": {
"license": {
"href": "https://api.pingone.com/v1/organizations/bed432e6-676a-4ebe-b5a5-6b3b54e46bda/licenses/3f06970a-3235-46cb-b46f-cf6dfee2bb84"
}
},
"activeUsers": 1,
"startDate": "2025-05-01T00:00:00Z",
"endDate": "2025-05-31T23:59:59.999Z"
},
{
"_links": {
"license": {
"href": "https://api.pingone.com/v1/organizations/bed432e6-676a-4ebe-b5a5-6b3b54e46bda/licenses/3f06970a-3235-46cb-b46f-cf6dfee2bb84"
}
},
"activeUsers": 1,
"startDate": "2025-04-01T00:00:00Z",
"endDate": "2025-04-30T23:59:59.999Z"
},
{
"_links": {
"license": {
"href": "https://api.pingone.com/v1/organizations/bed432e6-676a-4ebe-b5a5-6b3b54e46bda/licenses/3f06970a-3235-46cb-b46f-cf6dfee2bb84"
}
},
"activeUsers": 1,
"startDate": "2025-03-01T00:00:00Z",
"endDate": "2025-03-31T23:59:59.999Z"
},
{
"_links": {
"license": {
"href": "https://api.pingone.com/v1/organizations/bed432e6-676a-4ebe-b5a5-6b3b54e46bda/licenses/3f06970a-3235-46cb-b46f-cf6dfee2bb84"
}
},
"activeUsers": 1,
"startDate": "2025-02-01T00:00:00Z",
"endDate": "2025-02-28T23:59:59.999Z"
},
{
"_links": {
"license": {
"href": "https://api.pingone.com/v1/organizations/bed432e6-676a-4ebe-b5a5-6b3b54e46bda/licenses/3f06970a-3235-46cb-b46f-cf6dfee2bb84"
}
},
"activeUsers": 4,
"startDate": "2025-01-01T00:00:00Z",
"endDate": "2025-01-31T23:59:59.999Z"
},
{
"_links": {
"license": {
"href": "https://api.pingone.com/v1/organizations/bed432e6-676a-4ebe-b5a5-6b3b54e46bda/licenses/3f06970a-3235-46cb-b46f-cf6dfee2bb84"
}
},
"activeUsers": 0,
"startDate": "2024-12-01T00:00:00Z",
"endDate": "2024-12-31T23:59:59.999Z"
}
]
},
"count": 65,
"size": 12
}