---
title: "List Users"
method: GET
path: "/api/admin/users"
tags: ["admin"]
---

# List Users

`GET /api/admin/users`

List users with pagination, search, sort, and consent filter.

NOTE: This endpoint is O(N) in the total user count today: it loads every
Subscription, every User row, every Message-this-month aggregate, and the
full UserData list from the store before slicing the requested page.
Acceptable at <few-thousand-user scale; revisit when we cross that.

## Query parameters

- `offset` integer
- `limit` integer
- `search` string
- `sort` string
- `consent` string — Filter by data-sharing consent. 'all' returns every user, 'shared' returns only consenting users, 'none' returns only non-consenting users. Used by the Users tab consent filter.

## Response `200`

Successful Response

- UserListResponse
  - `total` integer, required
  - `offset` integer, required
  - `limit` integer, required
  - `items` UserItem[], required
    - `id` string, required
    - `user_id` string, required
    - `email` string, required
    - `plan` string, required
    - `status` string, required
    - `role` string, required
    - `is_active` boolean, required
    - `onboarding_complete` boolean, required
    - `created_at` string, nullable
    - `last_login_at` string, nullable
    - `last_message_at` string, nullable
    - `messages_this_month` integer
    - `data_sharing_consent` boolean
    - `data_sharing_consent_at` string, nullable
    - `conversation_count` integer

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/mozilla-ai/apis/clawbolt.md) · [All operations](https://skmtc.net/mozilla-ai/apis/clawbolt/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mozilla-ai/clawbolt/revisions/0e52fe5f8d33/schema)
