# Retrieve users and roles

By
The Quable Team

You can manage users in Quable (list, create, update, disable, and read roles) via the PIM API or the Portal API.

# 📌 From the PIM

# List users

curl --location "https://{{instance}}.quable.com/api/users?page=1&limit=25" \
  --header "Authorization: Bearer {{bearer}}"

Example response

{
  "@context": "/api/contexts/User",
  "@id": "/api/users",
  "@type": "hydra:Collection",
  "hydra:member": [
    {
      "@type": "User",
      "@id": "/api/users/1",
      "id": 1,
      "username": "johndoe",
      "active": true,
      "admin": true,
      "firstName": "John",
      "lastName": "Doe",
      "email": "john.doe@domain.tld",
      "timezone": "UTC",
      "isAutomaticTimezone": false,
      "localesAvailable": [
        "ar_AE",
        "en_GB",
        "en_US",
        "es_ES",
        "fr_FR",
        "nl_NL"
      ],
      "localeDefault": "fr_FR",
      "permissionFeatures": ["VIEWER", "EDITOR"],
      "dateLogged": "2024-06-19T08:39:16+00:00",
      "dateCreated": "2024-02-22T14:39:47+00:00",
      "dateModified": "2025-01-23T17:01:28+00:00",
      "decimalFormat": "comma",
      "type": "user"
    },
    { "...": "other users" }
  ]
}

# Update or disable a user

  • Update: use PUT on the user resource with the updated JSON payload.
  • Disable: set "active": false in the user payload.

# 📌 From the Portal

Note: the Portal flow requires a portal account with permissions to view users.

# 1. Obtain an access token

curl --location "https://{{instance}}.api.portal.quable.com/login_check" \
  --header "Accept: application/json, text/plain, */*" \
  --header "Content-Type: application/ld+json" \
  --data-raw '{"username":"{{user}}","password":"{{password}}"}'

Example response

{
  "token": "{{token}}"
}

# 2. List users

curl --location "https://{{instance}}.api.portal.quable.com/users?pagination=true&limit=10&page=1" \
  --header "Accept: application/json" \
  --header "Authorization: Bearer {{token}}"

Example response

{
  "@context": "/contexts/User",
  "@id": "/users",
  "@type": "hydra:Collection",
  "hydra:member": [
    {
      "@type": "User",
      "@id": "/users/{{userId}}",
      "id": "{{userId}}",
      "username": "john.doe@domain.tld",
      "givenName": "John",
      "familyName": "Doe",
      "dateCreated": "2023-12-07T14:58:23+00:00",
      "userInstances": [
        {
          "@id": "/user_instances/user={{userId}};instance={{instance}}",
          "@type": "UserInstance",
          "role": "admin",
          "status": "active",
          "lastLoginDate": "2024-03-20T13:37:07+00:00",
          "dateCreated": "2023-12-07T14:58:23+00:00"
        }
      ],
      "tags": [
        {
          "@id": "/tags/{{tagId}}",
          "@type": "Tag",
          "id": "{{tagId}}",
          "name": "Quable",
          "dateCreated": "2021-09-23T09:32:55+00:00"
        }
      ]
    },
    { "...": "other users" }
  ]
}

With these endpoints you can list, create, update, and disable users, and inspect roles/instances — either from the PIM or from the Portal.