---
title: "Get raw user analytics data"
method: POST
path: "/analytics/raw/users"
tags: ["Analytics"]
---

# Get raw user analytics data

`POST /analytics/raw/users`

Allows users to retrieve a raw list of user analytics data within their account. This endpoint provides detailed data about user activity and account configuration.

<!-- theme: info -->
> **Note:** Data availability reflects [pipeline processing cycles](https://support.pagerduty.com/main/docs/insights#:~:text=Data%20Update%20Schedule) and is generally within 24 hours under normal conditions.

Scoped OAuth requires: `analytics.write`

## Headers

- `Accept` string, required
- `Content-Type` 'application/json', required

## Request body

- AnalyticsUserFilter
  - `filters` AnalyticsUserFilterConditions
    - `created_at_start` string, date-time — The start of the date range to search
    - `created_at_end` string, date-time — The end of the date range to search
    - `team_ids` string[] — An array of team IDs. Only users belonging to these teams will be included in results.
    - `user_ids` string[] — An array of user IDs. Only these users will be included in results.
    - `role_ids` string[] — An array of role IDs. Only users with these roles will be included in results.
  - `time_zone` string — The time zone to use for the results and grouping. Must be in tzdata format. See list of accepted values [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
  - `order` 'asc' | 'desc' — The order in which the results were sorted; asc for ascending, desc for descending.
  - `order_by` string — The column that was used for ordering the results.
  - `aggregate_unit` 'day' | 'week' | 'month', nullable — The time unit to aggregate metrics by. If no value is provided, the metrics will be aggregated for the entire period.
  - `limit` integer — The maximum number of results to return per page. The default (and maximum allowed value) is 1000.
  - `starting_after` string, nullable — A cursor used for pagination. Starting after cursor provides the next set of results in forward pagination order.
  - `ending_before` string, nullable — A cursor used for pagination. Ending before cursor provides the previous set of results in reverse pagination order.

## Response `200`

OK

- object
  - `first` string — Cursor to identify the first object in the response.
  - `last` string — Cursor to identify the last object in the response.
  - `limit` integer — Number of results to include in the batch.
  - `more` boolean — Indicates if there are more resources available than were returned.
  - `order` 'asc' | 'desc' — The order in which the results were sorted; asc for ascending, desc for descending.
  - `order_by` string — The column that was used for ordering the results.
  - `filters` object — A collection of filters that were applied to the results.
    - `created_at_start` string — The lower boundary for the created_at range filter applied to the results.
    - `created_at_end` string — The upper boundary for the created_at range filter applied to the results.
    - `team_ids` string[] — The team_ids filter applied to the results.
    - `roles` string[] — The roles filter applied to the results.
  - `time_zone` string — The time zone that the results are in.
  - `data` AnalyticsRawUser[]
    - `id` string — Obfuscated ID of the user.
    - `user_name` string — Name of the user.
    - `email` string — Email of the user.
    - `account_id` integer — Account ID the user belongs to.
    - `description` string, nullable — User description, if available.
    - `time_zone` string, nullable — User's configured time zone.
    - `role` string — User's role in the account.
    - `team_id` string, nullable — ID of the team the user belongs to, if any.
    - `team_name` string, nullable — Name of the team the user belongs to, if any.
    - `created_at` string, date-time — Timestamp indicating when the user was created.
    - `last_sign_in_at` string, date-time, nullable — Timestamp of the user's last sign-in, if available.
    - `default_notification_channel_count` integer — Number of notification channels configured for this user.
    - `escalation_policies_count` integer — Number of escalation policies this user is part of.
    - `schedules_count` integer — Number of schedules this user is part of.
    - `channel_types_configured` string[] — List of notification channel types configured for this user.
    - `team_count` integer — Number of teams this user belongs to.
    - `downloaded_mobile_app` boolean — Whether the user has downloaded the mobile app.
    - `notification_methods` boolean — Whether the user has notification methods configured.
    - `on_escalation_policy` boolean — Whether the user is part of any escalation policy.
    - `on_schedule` boolean — Whether the user is part of any schedule.
    - `signed_up` boolean — Whether the user has signed up (based on last_sign_in_at not being null).

## Other responses

- `400` — Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work.
- `429` — Too many requests have been made, the rate limit has been reached.

---

[API](https://skmtc.net/pagerduty/apis/rest-api.md) · [All operations](https://skmtc.net/pagerduty/apis/rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pagerduty/rest-api/revisions/b679a8f3f02c/schema)
