Users

List users with cursor-based pagination.

Scoped to the caller: org admins see every user; anyone else sees only themselves.

get/users

Request

  • Base URL: / (relative, and the document was published on a file host, not at the API’s origin)
  • URL: /users
  • Auth: one of:
    • HTTP bearer
    • OAuth 2 (authorization code, authorization URL /authorize, token URL /oauth/token)

Query parameters

cursorstring nullable

Opaque cursor from a previous page's next_cursor; omit for the first page.

Example:eyJ0IjogIjIwMjYtMDEtMTVUMDk6MzA6MDArMDA6MDAiLCAiaWQiOiAiM2YyYjhjMWUtN2Q0YS00ZTliLWE2YzUtMWQyZTNmNGE1YjZjIn0=
limitinteger

Maximum number of users to return (1-200, default 50).

Example:25
invite_state'pending' | 'redeemed' | 'expired' | 'accepted'

State of a user invitation.

Only return users with this stored invite state; lapsed invites are stored as pending, so expired matches no users.

Response

Successful Response

has_moreboolean required

Whether more results exist after this page.

next_cursorstring nullable

Cursor for the next page; null when there are no more results.

Example response

{
  "data": [
    {
      "active": true,
      "auth_provider": "external",
      "created_at": "2026-01-15T09:30:00Z",
      "email": "ada@example.com",
      "external_subject_id": "auth0|6568b3984d1c238dbe7e2e29",
      "first_name": "Ada",
      "id": "usr_6968b3987ee4c3ec0b4ee3b9",
      "invite_state": "accepted",
      "last_name": "Lovelace",
      "must_change_password": false,
      "name": "Ada Lovelace",
      "permissions": {
        "assigned": [
          "users:write",
          "agents:read"
        ],
        "effective": [
          {
            "implied_by": "users:write",
            "name": "users:read"
          }
        ]
      },
      "updated_at": "2026-01-20T14:05:00Z"
    }
  ],
  "has_more": true,
  "next_cursor": "eyJ0IjogIjIwMjYtMDEtMTVUMDk6MzA6MDArMDA6MDAiLCAiaWQiOiAiM2YyYjhjMWUtN2Q0YS00ZTliLWE2YzUtMWQyZTNmNGE1YjZjIn0="
}

Changes