List users (compatibility)
- Sandbox: available
- Staging: available
- Production: unknown
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
profileTypeis required and must bePractitioner.- Each row has
user,profile,membershipand, when set,accessPolicy, reduced to the fields a list needs. - A user's status is
Pendingwhen they have an unused invite or no password yet, otherwiseActive. accessPolicy,profileanduserfilter on exact references, for exampleAccessPolicy/<id>.searchmatches profile name, user name and access policy name, with fuzzy matching.pageis zero-based.countdefaults 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'bearerAuthorizationBearer <JWT>sortBy?string"profileName""profileName""userName""accessPolicyName"orderBy?string"ASC""ASC""DESC"search?stringprofileType*"Practitioner""Practitioner"project?stringproject is used for scoping when provided by an administrator.
^Project\/\S+$accessPolicy?string^AccessPolicy\/\S+$profile?string^Practitioner\/\S+$user?string^User\/\S+$page?string"0"count?string"20"User query results retrieved successfully.
application/json- response
total*numberresources*array<>curl -X GET 'https://api.sandbox.ovok.com/v1/slim/query/user?profileType=Practitioner'{ "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' ```