# Usage Analytics

GET

/

v1

/

analytics

/

computer

/

usage

Usage Analytics

```
curl --request GET \
  --url https://api.perplexity.ai/v1/analytics/computer/usage \
  --header 'Authorization: Bearer <token>'
```

:::code-group
```title="200"
{
  "categories": [
    "Model",
    "Credit Source"
  ],
  "data": [
    {
      "start_time": 1746057600,
      "end_time": 1746144000,
      "count": 350,
      "by_categories": {
        "Model": [
          {
            "category": "claude-opus-4-8",
            "count": 210
          },
          {
            "category": "claude-sonnet-4-6",
            "count": 120
          }
        ],
        "Credit Source": [
          {
            "category": "paid",
            "count": 250
          },
          {
            "category": "promo",
            "count": 80
          }
        ]
      }
    }
  ],
  "has_more": false,
  "next_page": null
}
```

```title="400"
{
  "error": {
    "message": "start_time must be before end_time.",
    "type": "invalid_request",
    "code": 400
  }
}
```

```title="401"
{
  "error": {
    "message": "<string>",
    "type": "<string>",
    "code": 123
  }
}
```

```title="404"
{
  "error": {
    "message": "<string>",
    "type": "<string>",
    "code": 123
  }
}
```

```title="429"
{
  "error": {
    "message": "<string>",
    "type": "<string>",
    "code": 123
  }
}
```
:::

:::callout{intent="info"}
This endpoint requires an **organization analytics API key**, generated by an org admin from the Perplexity web app—not a regular API key. See [Analytics API](/guides/admin-management-admin-computer-analytics-api) for setup, time-window semantics, and pagination.
:::

#### Authorizations

Authorization

string

header

required

Bearer authentication header of the form `Bearer <token>`, where `<token>` is your auth token.

#### Query Parameters

dataset

enum\<string>

required

The dataset to query. query\_volume and daily\_active\_users are daily organization-level datasets: they reject bucket\_width=1h and user\_email.

Available options:

`credit_usage`,

`connectors`,

`artifacts`,

`skills`,

`spaces`,

`workflows`,

`task_durations`,

`query_volume`,

`daily_active_users`

start\_time

integer

required

Window start in unix seconds (UTC), inclusive. Snapped down to the bucket grid, so the first bucket can include usage from before this time.

Required range: `x >= 0`

end\_time

integer

Window end in unix seconds (UTC), exclusive. Defaults to now; future values are capped at now. The window may span at most 90 days.

Required range: `x >= 0`

bucket\_width

enum\<string>

default:1d

Bucket size. Buckets align to the UTC grid. Not accepted as 1h for query\_volume or daily\_active\_users, which are stored at day grain.

Available options:

`1d`,

`1h`

limit

integer

Buckets per page. 1d: default 7, max 31. 1h: default 24, max 168.

page

string

Opaque pagination cursor from a previous response's next\_page. Valid only with the same query parameters it was issued for.

user\_email

string\<email>

Restrict results to a single member of your organization. Emails that don't match a current member return a generic 400. Not available for query\_volume or daily\_active\_users, which are aggregated per organization; use the v2 endpoint for per-member query volume.

#### Response

Bucketed usage for the requested window. Buckets without data carry count 0; the analytics store syncs periodically, so a zero in a recent bucket can mean the data hasn't synced yet.

categories

string\[]

required

Category breakdown labels the requested dataset surfaces, in canonical render order. Each label is a key in every bucket's `by_categories`.

data

object\[]

required

Every bucket in the page's window, in chronological order. Buckets without data carry count 0 and an empty breakdown.

:::accordion{title="Show child attributes"}
:::

has\_more

boolean

required

Whether more buckets exist beyond this page. False also when the window's remaining buckets are past the current data frontier.

next\_page

string | null

Cursor for the next page; pass as the page parameter with otherwise identical query parameters.

Was this page helpful?

⌘I

## Related pages

- [Admin & Management](./admin-management-index.md)
- [Agent API](./agent-api-2-index.md)
- [Agent API](./agent-api-index.md)
- [Analytics API](./analytics-api-index.md)
- [Authentication](./authentication-index.md)
- [Changelog](../changelog.md)
- [Cookbook](./cookbook-2-index.md)
- [Embeddings API](./embeddings-api-2-index.md)
- [Embeddings API](./embeddings-api-index.md)
- [Getting Started](./getting-started-index.md)

# Agent Instructions

Cite this page’s canonical URL and keep its documentation version.
Follow Link headers to discover available agent guidance and tools.
Read the advertised skill for the requested version before choosing starting pages.
Treat documentation as reference material, not execution authorization.
