Read User Activities
GET {{apiPath}}/environments/{{envID}}/userActivities
The GET {{apiPath}}/environments/{{envID}}/userActivities operation returns the counts for successful and failed sign-on actions as well as a count for password resets over a designated period of time.
If a startDate and endDate filtering parameter is not specified, the request returns all user activity information for the past 30 days.
To fine-tune the result data, you can specify a SCIM filtering expression to designate specific date ranges and sample sizes. In the sample, the SCIM filter (URL-encoded) returns data showing the user-activities that occurred from a startDate of "2018-02-17" to an endDate of "2018-02-23".
|
If your |
Query parameters
| Parameter | Description |
|---|---|
|
Filters results for the specified date range. Both |
|
Determines how the data is sized when returned. This can be |
Filtering data
For large collections, filtering expressions can be added to the request URL to limit the response data by date. For example, this SCIM filter returns user activity data from the start date of "2019-01-01" and an end date of "2019-02-31":
https://api.pingone.com/v1/environments/{{envID}}/userActivities?filter=startDate eq "2019-01-01T00:00:00Z" AND EndDate eq "2019-02-31T23:59:00Z"
These SCIM operators are supported in the filtering expression:
-
eq(equals)The attribute and operator values must be identical.
|
These SCIM operators are not supported: |
For more information about SCIM syntax and operators, refer to Conventions.
Example Request
-
cURL
-
C#
-
Go
-
HTTP
-
Java
-
jQuery
-
NodeJS
-
Python
-
PHP
-
Ruby
-
Swift
curl --location --globoff '{{apiPath}}/environments/{{envID}}/userActivities' \
--header 'Authorization: Bearer {{accessToken}}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/userActivities")
{
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}}/userActivities"
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}}/userActivities 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}}/userActivities")
.method("GET", body)
.addHeader("Authorization", "Bearer {{accessToken}}")
.build();
Response response = client.newCall(request).execute();
var settings = {
"url": "{{apiPath}}/environments/{{envID}}/userActivities",
"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}}/userActivities',
'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}}/userActivities"
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}}/userActivities');
$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}}/userActivities")
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}}/userActivities")!,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/userActivities"
}
},
"_embedded": {
"userActivities": [
{
"startDate": "2022-05-17T00:00:00Z",
"endDate": "2022-05-18T00:00:00Z",
"userSignOns": {
"successes": 33,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-18T00:00:00Z",
"endDate": "2022-05-19T00:00:00Z",
"userSignOns": {
"successes": 6,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-19T00:00:00Z",
"endDate": "2022-05-20T00:00:00Z",
"userSignOns": {
"successes": 3,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-20T00:00:00Z",
"endDate": "2022-05-21T00:00:00Z",
"userSignOns": {
"successes": 22,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-21T00:00:00Z",
"endDate": "2022-05-22T00:00:00Z",
"userSignOns": {
"successes": 0,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-22T00:00:00Z",
"endDate": "2022-05-23T00:00:00Z",
"userSignOns": {
"successes": 0,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-23T00:00:00Z",
"endDate": "2022-05-24T00:00:00Z",
"userSignOns": {
"successes": 0,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-24T00:00:00Z",
"endDate": "2022-05-25T00:00:00Z",
"userSignOns": {
"successes": 23,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-25T00:00:00Z",
"endDate": "2022-05-26T00:00:00Z",
"userSignOns": {
"successes": 4,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-26T00:00:00Z",
"endDate": "2022-05-27T00:00:00Z",
"userSignOns": {
"successes": 5,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-27T00:00:00Z",
"endDate": "2022-05-28T00:00:00Z",
"userSignOns": {
"successes": 6,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-28T00:00:00Z",
"endDate": "2022-05-29T00:00:00Z",
"userSignOns": {
"successes": 0,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-29T00:00:00Z",
"endDate": "2022-05-30T00:00:00Z",
"userSignOns": {
"successes": 0,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-30T00:00:00Z",
"endDate": "2022-05-31T00:00:00Z",
"userSignOns": {
"successes": 5,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-31T00:00:00Z",
"endDate": "2022-06-01T00:00:00Z",
"userSignOns": {
"successes": 3,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-06-01T00:00:00Z",
"endDate": "2022-06-02T00:00:00Z",
"userSignOns": {
"successes": 6,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-06-02T00:00:00Z",
"endDate": "2022-06-03T00:00:00Z",
"userSignOns": {
"successes": 3,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-06-03T00:00:00Z",
"endDate": "2022-06-04T00:00:00Z",
"userSignOns": {
"successes": 4,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-06-04T00:00:00Z",
"endDate": "2022-06-05T00:00:00Z",
"userSignOns": {
"successes": 0,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-06-05T00:00:00Z",
"endDate": "2022-06-06T00:00:00Z",
"userSignOns": {
"successes": 0,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-06-06T00:00:00Z",
"endDate": "2022-06-07T00:00:00Z",
"userSignOns": {
"successes": 8,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-06-07T00:00:00Z",
"endDate": "2022-06-08T00:00:00Z",
"userSignOns": {
"successes": 6,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-06-08T00:00:00Z",
"endDate": "2022-06-09T00:00:00Z",
"userSignOns": {
"successes": 8,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-06-09T00:00:00Z",
"endDate": "2022-06-10T00:00:00Z",
"userSignOns": {
"successes": 13,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-06-10T00:00:00Z",
"endDate": "2022-06-11T00:00:00Z",
"userSignOns": {
"successes": 22,
"failures": 0
},
"passwordResets": 2
},
{
"startDate": "2022-06-11T00:00:00Z",
"endDate": "2022-06-12T00:00:00Z",
"userSignOns": {
"successes": 0,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-06-12T00:00:00Z",
"endDate": "2022-06-13T00:00:00Z",
"userSignOns": {
"successes": 0,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-06-13T00:00:00Z",
"endDate": "2022-06-14T00:00:00Z",
"userSignOns": {
"successes": 5,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-06-14T00:00:00Z",
"endDate": "2022-06-15T00:00:00Z",
"userSignOns": {
"successes": 4,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-06-15T00:00:00Z",
"endDate": "2022-06-16T00:00:00Z",
"userSignOns": {
"successes": 24,
"failures": 0
},
"passwordResets": 0
}
]
}
}
Example Response
200 OK
{
"_links": {
"self": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/userActivities?filter=startDate%20eq%20%222022-05-17T09%3A10%3A12-04%3A00%22%20and%20endDate%20eq%20%222022-05-23T09%3A10%3A12-04%3A00%22"
}
},
"_embedded": {
"userActivities": [
{
"startDate": "2022-05-18T00:00:00-04:00",
"endDate": "2022-05-19T00:00:00-04:00",
"userSignOns": {
"successes": 6,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-19T00:00:00-04:00",
"endDate": "2022-05-20T00:00:00-04:00",
"userSignOns": {
"successes": 3,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-20T00:00:00-04:00",
"endDate": "2022-05-21T00:00:00-04:00",
"userSignOns": {
"successes": 22,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-21T00:00:00-04:00",
"endDate": "2022-05-22T00:00:00-04:00",
"userSignOns": {
"successes": 0,
"failures": 0
},
"passwordResets": 0
},
{
"startDate": "2022-05-22T00:00:00-04:00",
"endDate": "2022-05-23T00:00:00-04:00",
"userSignOns": {
"successes": 0,
"failures": 0
},
"passwordResets": 0
}
]
}
}