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.
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
Cursor from the previous response's next_cursor.
Inclusive end date in RFC 3339 full-date format.
Number of users to return, capped at 200.
Inclusive start date in RFC 3339 full-date format.
Response
Changes
No recorded changes to this operation across all 1 revision of this API.