Usage

Per-user usage metrics

Returns one row per user in your organization who logged in, created work, or had engagement sessions within a date range — logins, engagement sessions, and the research output (projects, studies, completed interviews) attributed to each person. This is the endpoint to poll on a schedule (e.g. daily) to track adoption across your team.

Authentication. Send an OAuth 2.1 bearer token (Authorization: Bearer <token>) granted the usage:read scope. The token must be consented at the organization level (all workspaces); access is additionally limited to organizations explicitly enabled for the usage API. The authenticated user must be an organization admin or non-researcher admin.

A partner credential reads the same metrics for one client organization by naming it in the assertion's outset_org claim. The three conditions above are properties of a user-delegated token — a consent grant, an organization role, and a per-organization allow-list — and none of them has a partner analogue; usage:read on the partner registration is the equivalent grant, and the signed claim is what limits the read to one client.

Date range. start_date and end_date are both required and inclusive, in YYYY-MM-DD (RFC 3339 full-date) format, evaluated in UTC. The range may span at most 366 days.

One row per user. Each entry covers a single user keyed by email. A user who created work or had engagement sessions but never logged in during the range still appears, with an empty logins list; user_id is null when no current Outset user maps to that email.

Logins vs. engagement sessions. logins is the auth-event audit log (one entry per credentials / Google / SAML / OIDC sign-in). engagement_session_count is the number of distinct product-usage sessions (PostHog 30-minute inactivity buckets) — actual active usage, which a single login can span several of, or none. Use GET /v2/usage/sessions/ for per-session detail and GET /v2/usage/logins/ for a flat login feed.

Pagination. Results are cursor-paginated and ordered by email. When has_more is true, pass the returned next_cursor back as the cursor query parameter to fetch the next page. Page size defaults to 50 and is capped at 200.

Requires the usage:read scope, on a user-delegated token or a partner credential.

get/v2/usage/

Request

  • Base URL: https://api.outset.ai
  • URL: https://api.outset.ai/v2/usage/
  • Auth: one of:
    • OAuth 2 (authorization code, authorization URL https://outset.ai/oauth/authorize, token URL https://api.outset.ai/users/oauth/token/, scopes: usage:read)
    • HTTP bearer

Query parameters

cursorstring

Cursor from the previous response's next_cursor.

end_datestring date required

Inclusive end date in RFC 3339 full-date format.

page_sizeinteger

Number of users to return, capped at 200.

start_datestring date required

Inclusive start date in RFC 3339 full-date format.

Response

next_cursorstring nullable required

Pass as the cursor query parameter to fetch the next page; null on the last page.

has_moreboolean required

Whether more pages remain after this one.

Changes

No recorded changes to this operation across all 1 revision of this API.