SlimSlim/Query

List users (compatibility)

  • Sandbox: available
  • Staging: available
  • Production: unknown
GET
/v1/slim/query/user

Compatibility route for older user list clients. Lists the practitioner users of a project with their profile, membership and access policy. For new integrations, use GET /v1/slim/project/users.

Auth: bearer token. The caller must be a practitioner, an admin or a System Owner, and needs Practitioner:read. Scope: the caller's project (from the token). When you pass project=Project/<id>, that project is used instead. It must be your project or one of its sub-projects.

Behaviour

  • profileType is required and must be Practitioner.
  • Each row has user, profile, membership and, when set, accessPolicy, reduced to the fields a list needs.
  • A user's status is Pending when they have an unused invite or no password yet, otherwise Active.
  • accessPolicy, profile and user filter on exact references, for example AccessPolicy/<id>.
  • search matches profile name, user name and access policy name, with fuzzy matching.
  • page is zero-based. count defaults to 20, maximum 100.
  • Results are cached for up to 60 seconds.

Example

curl -X GET 'https://api.sandbox.ovok.com/v1/slim/query/user?profileType=Practitioner&page=0&count=20' \  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk'

Authorization

bearer
headerAuthorizationBearer <JWT>

Query Parameters

sortBy?string
Default"profileName"
Value in"profileName""userName""accessPolicyName"
orderBy?string
Default"ASC"
Value in"ASC""DESC"
search?string
profileType*"Practitioner"
Value in"Practitioner"
project?string

project is used for scoping when provided by an administrator.

Match^Project\/\S+$
accessPolicy?string
Match^AccessPolicy\/\S+$
profile?string
Match^Practitioner\/\S+$
user?string
Match^User\/\S+$
page?string
Default"0"
count?string
Default"20"

Response Body

User query results retrieved successfully.

application/json
  1. response
total*number
resources*array<>
Example Request
curl -X GET 'https://api.sandbox.ovok.com/v1/slim/query/user?profileType=Practitioner'
Example Response
{  "total": 0,  "resources": [    {      "user": {        "resourceType": "User",        "id": "string",        "firstName": "string",        "lastName": "string",        "email": "user@example.com",        "project": "string",        "meta": {          "project": "string",          "lastUpdated": "string"        }      },      "profile": {        "resourceType": "Practitioner",        "id": "string",        "name": [          null        ],        "meta": {          "project": "string",          "lastUpdated": "string"        }      },      "membership": {        "resourceType": "ProjectMembership",        "id": "string",        "project": "string",        "user": {          "reference": "string"        },        "profile": {          "reference": "string"        },        "accessPolicy": {          "reference": "string"        },        "meta": {          "project": "string",          "lastUpdated": "string"        }      },      "status": "Active",      "accessPolicy": {        "resourceType": "AccessPolicy",        "id": "string",        "name": "string",        "resource": [          {            "resourceType": "string"          }        ],        "meta": {          "project": "string",          "lastUpdated": "string"        }      }    }  ]}

Count devices per zone (compatibility) GET

Compatibility route for older zone count clients. Returns device counts per zone. For new integrations, use `GET /v1/slim/zones/device-counts`. **Auth:** bearer token. The caller must be a practitioner, an admin or a System Owner, and needs `Organization:search` and `Device:search`. **Scope:** the caller's project (from the token). For admins, the counts also cover the project's sub-projects. ## Behaviour - Each entry has the zone (`organization`) and its `deviceCount`, `assignedResidentDeviceCount`, `activeDeviceCount` and `inactiveDeviceCount`. - Devices without a zone are counted in an entry without `organization`. - Only zones with at least one device are listed, sorted by `deviceCount`, highest first. - A device counts as active when its telemetry reports it active. - The top-level `total*` fields sum the counts over all entries. `total` is the number of entries. - Results are cached for up to 60 seconds. Writes made through the Slim routes refresh the cache sooner. ## Example ```bash curl -X GET 'https://api.sandbox.ovok.com/v1/slim/query/organization/device/count' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```

List users across projects (compatibility) GET

Compatibility route for older cross-project user list clients. Behaves exactly like `GET /v1/slim/query/user`. For new integrations, use `GET /v1/slim/project/{id}/users`. **Auth:** bearer token. The caller must be a practitioner, an admin or a System Owner, and needs `Practitioner:read`. No extra admin check is applied. **Scope:** the caller's project (from the token), or the project in `project=Project/<id>` when it is your project or one of its sub-projects. ## Behaviour - Same parameters, filters, sorting, paging and caching as `GET /v1/slim/query/user`. ## Example ```bash curl -X GET 'https://api.sandbox.ovok.com/v1/slim/query/admin/user?profileType=Practitioner&project=Project/c3499c27-2973-0a7f-807e-fb8676a92dcb' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```