---
title: "List all users"
method: GET
path: "/api/v1/internal/users/"
tags: ["Internal Admin"]
---

# List all users

`GET /api/v1/internal/users/`

## Request

- Base URL: `https://docs.thredfi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.thredfi.com/api/v1/internal/users/`
- Auth: one of:
  - HTTP bearer
  - HTTP basic
  - HTTP bearer
  - HTTP bearer

Returns all users in the system with their roles and associations

## Query parameters

- `page` integer
- `page_size` integer

## Response `200`

- PaginatedInternalUserList
  - `count` integer, required: Total number of items
  - `page_info` object, required
    - `total_count` integer, required: Total number of items (same as count)
    - `current_page` integer, required: Current page number (1-indexed)
    - `total_pages` integer, required: Total number of pages
    - `page_size` integer, required: Number of items per page
  - `results` InternalUser[], required
    - `id` string, uuid, required
    - `email` string, email, required
    - `username` string, required: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
    - `first_name` string, required
    - `last_name` string, required
    - `user_type` 'direct_user' | 'partner_admin' | 'financial_administrator' | 'internal_admin' | 'business_owner', required: * `direct_user` - Direct User * `partner_admin` - Partner Administrator * `financial_administrator` - Financial Administrator * `internal_admin` - Internal Administrator * `business_owner` - Business Owner
    - `is_active` boolean, required: Designates whether this user should be treated as active. Unselect this instead of deleting accounts.
    - `is_staff` boolean, required: Designates whether the user can log into this admin site.
    - `is_superuser` boolean, required: Designates that this user has all permissions without explicitly assigning them.
    - `partner_name` string, nullable, required
    - `financial_firm_name` string, nullable, required
    - `date_joined` string, date-time, required
    - `last_login` string, date-time, nullable, required

## Other responses

- `400`: Validation errors in request data
- `401`: Authentication required - missing or invalid API key
- `403`: Permission denied - insufficient privileges
- `404`: Resource not found
- `409`: Conflict - resource already exists or invalid state transition
- `422`: Unprocessable entity - business logic validation failed
- `500`: Internal server error

---

[API](https://skmtc.dev/thredfi/apis/thredfi-accounting-platform-api.md) - [All operations](https://skmtc.dev/thredfi/apis/thredfi-accounting-platform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/thredfi/apis/thredfi-accounting-platform-api/revisions/0c1918254db3?raw)
