---
title: Read User Activities
description: The GET {{apiPath}}/v1/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.
component: pingone-api
page_id: pingone-api:platform:user-activities/read-user-activities
canonical_url: https://developer.pingidentity.com/pingone-api/platform/user-activities/read-user-activities.html
section_ids:
  filtering-data: Filtering data
  headers: Headers
  example-request: Example Request
  example-response: Example Response
  example-response-2: Example Response
---

# Read User Activities

##

```none
GET {{apiPath}}/v1/environments/{{envID}}/userActivities
```

The `GET {{apiPath}}/v1/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 `startDate` and `endDate` filter values are less than or equal to five days, then the result data defaults to a `sampleSize` value of `HOURS`. The response data shows the collected event list for each hour interval. |

> **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 filtering details below.                                                                                                                                                                                                |
> | `sampleSize` | Determines how the data is sized when returned. This can be `HOUR`, `DAY`, `WEEK`. The default value is determined based on the date range used. If the date range is less than or equal to 5 days, `HOUR` is used. If the date range is greater than 5 or less than or equal to 60, `DAY` is used. If the date range is greater than 60, `WEEK` is used. |

### 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":

```sh
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: `gt` (greater than), `lt` (less than), `ge` (greater than or equal to), `le` (less than or equal to), `in` (includes), `ne` (not equal), `co` (contains), `sw` (starts with), `ew` (ends with), `pr` (present, is a non-empty or non-null value), `not` (logical NOT), `or` (logical OR), `and` (logical AND). |

For more information about SCIM syntax and operators, 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}}/userActivities' \
--header 'Authorization: Bearer {{accessToken}}'
```

```csharp
var options = new RestClientOptions("{{apiPath}}/v1/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);
```

```golang
package main

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

func main() {

  url := "{{apiPath}}/v1/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))
}
```

```http
GET /v1/environments/{{envID}}/userActivities 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}}/userActivities")
  .method("GET", body)
  .addHeader("Authorization", "Bearer {{accessToken}}")
  .build();
Response response = client.newCall(request).execute();
```

```javascript
var settings = {
  "url": "{{apiPath}}/v1/environments/{{envID}}/userActivities",
  "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}}/userActivities',
  '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}}/userActivities"

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}}/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();
}
```

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

url = URI("{{apiPath}}/v1/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
```

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

```json
{
    "_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

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