---
title: "List all users"
method: GET
path: "/users/"
tags: ["users"]
---

# List all users

`GET /users/`

## Request

- Base URL: `https://dados.gov.pt/api/1`
- URL: `https://dados.gov.pt/api/1/users/`
- Auth: none declared

## Query parameters

- `q` string
- `sort` 'last_name' | 'first_name' | 'datasets' | 'reuses' | 'followers' | 'views' | 'created' | '-last_name' | '-first_name' | '-datasets' | '-reuses' | '-followers' | '-views' | '-created'
- `page` integer
- `page_size` integer
- `role` string

## Headers

- `X-Fields` string, mask

## Response `200`

Success

- UserPage
  - `data` User[]: The page data
    - `about` string, markdown: The user self description
    - `active` boolean
    - `avatar` string: The user avatar URL
    - `avatar_thumbnail` string: The user avatar thumbnail URL. This is the square (500x500) and cropped version.
    - `datasets_count` integer: Number of visible datasets owned by the user (live count).
    - `email` object: The user email
    - `first_name` string, required: The user first name
    - `id` string: The user identifier
    - `last_login_at` object: The user last connection date (only present for global admins and on /me)
    - `last_name` string, required: The user last name
    - `metrics` object: The user metrics
    - `migration_invite` object: True when this account is being invited (optionally) to link a CMD/eIDAS identity: the invite is enabled, linking is not mandatory, the account signs in with a password and holds no identity yet, and the invite has not been dismissed recently. Only present on the caller's own user
    - `migration_link_available` object: True when this account can still link a CMD/eIDAS identity: the invite is enabled, linking is not mandatory, and the account signs in with a password and holds no identity yet. Unlike migration_invite this stays true after the notice has been dismissed, so the entry point in the profile does not disappear with it. Only present on the caller's own user
    - `organizations` OrganizationReference[]: The organization the user belongs to
      - `class` string, required: The object class
      - `id` string, required: The object unique identifier
      - `acronym` string: The organization acronym
      - `badges` BadgeRead[]: The organization badges
        - `kind` string, required
      - `logo` string: The organization logo URL
      - `logo_thumbnail` string: The organization logo thumbnail URL. This is the square (100x100) and cropped version.
      - `name` string: The organization name
      - `page` string: The organization web page URL
      - `permissions` OrganizationPermissions
        - `delete` boolean
        - `edit` boolean
        - `harvest` boolean
        - `members` boolean
        - `private` boolean
      - `slug` string: The organization string used as permalink
      - `uri` string: The API URI for this organization
    - `page` string: The user web page URL
    - `pending_registration` object: True while the account still has a minted saml-* placeholder email; the user must provide a real email to complete registration (only present for global admins and on /me)
    - `pending_registration_email` object: The email address the CMD assertion carried, offered as a prefill on the registration completion screen. Null for eIDAS (the Minimum Data Set has no email attribute), for a CMD assertion that carried none, and on any user other than the caller
    - `reuses_count` integer: Number of reuses owned by the user (live count).
    - `roles` string[]: Site wide user roles
    - `saml_login` object: Whether the current session was authenticated via SAML (only present on the caller's own user, e.g. /me)
    - `since` string, date-time, required: The registeration date
    - `slug` string: The user permalink string
    - `uri` string: The API URI for this user
    - `website` string: The user website
  - `next_page` string: The next page URL if exists
  - `page` integer, required: The current page
  - `page_size` integer, required: The page size used for pagination
  - `previous_page` string: The previous page URL if exists
  - `total` integer, required: The total paginated items

## Changes

- **2026-09-11** `1175d034be00`: 1 info
  - added the new optional `query` request parameter `role`

[Operation history](https://skmtc.dev/dados/apis/udata-api/changes/users/get.md)

---

[API](https://skmtc.dev/dados/apis/udata-api.md) - [All operations](https://skmtc.dev/dados/apis/udata-api/llms.txt) - [OpenAPI document](https://skmtc.dev/dados/apis/udata-api/revisions/77edaf8a00ea?raw)
