Skip to content

Users

Users are the staff identities in Shepherd: the people who sign in, get assigned tasks, and appear as the actor on audit fields like processedByUserId, completedByUserId, or createdByUserId. Each user has a name, a username, a role, and a clinic association.

Authoritative schemas live in the live Swagger UI. The fields below are a representative subset for orientation.

FieldTypeDescription
idstringServer-assigned user identifier. The same id appears on audit fields elsewhere in the API.
userIdstringThe underlying user identifier.
coreUserobjectThe user’s core record: name and contact details. There are no flat firstName / lastName fields on this model.
rolesarrayThe user’s roles.
clinicUserarrayPer-clinic user records, for users who work across a group.
prefixstringName prefix (e.g. Dr.), when set.
suffixstringName suffix (e.g. DVM), when set.
licenseNumberstringThe user’s license number.
userLicenseTypeIdstringLicense type reference. userLicenseType expands it.
dateCreatedstringISO 8601 UTC timestamp of creation.
dateUpdatedstringISO 8601 UTC timestamp of last update.
POST /pav2/open-api-users

Returns the users at the clinic identified by X-Clinic-Id. Use a search query to look up a user by name, or filter by role.

Terminal window
curl -X POST https://open-api.shepherd.vet/pav2/open-api-users \
-H "Content-Type: application/json" \
-H "X-Integration-Public-Key: $SHEPHERD_PUBLIC_KEY" \
-H "X-Integration-Private-Key: $SHEPHERD_PRIVATE_KEY" \
-H "X-Clinic-Id: $SHEPHERD_CLINIC_ID" \
-d '{"page":1,"rpp":100,"sort":"lastName|asc"}'
{
"item": [
{
"id": "bb551122-18b4-4a91-a5c9-abc123456789",
"userId": "6a5b4c3d-2e1f-0a9b-8765-4321fedcba09",
"coreUser": null,
"roles": [],
"clinicUser": [],
"prefix": "Dr.",
"suffix": "DVM",
"licenseNumber": "TX-12345",
"userLicenseTypeId": "2f4a6b8c-1d3e-5f70-9a2b-4c6d8e0f1a2b",
"userLicenseType": null,
"dateCreated": "2025-07-01T13:21:09Z",
"dateUpdated": "2026-03-04T10:00:01Z"
}
],
"totalRecords": 8,
"page": 1,
"recordsPerPage": 100,
"sort": "lastName|asc",
"searchQuery": null,
"embed": null,
"links": []
}
POST /pav2/open-api-clinic-users

Returns the clinic-membership records that join a user to a clinic, plus per-clinic settings (e.g. isTimeClockEnabled, license fields). Use this when you need to know which clinic a user belongs to in a multi-site account, or to surface clinic-scoped flags. For names, role, and approval status, the /open-api-users endpoint above is usually enough.

Terminal window
curl -X POST https://open-api.shepherd.vet/pav2/open-api-clinic-users \
-H "Content-Type: application/json" \
-H "X-Integration-Public-Key: $SHEPHERD_PUBLIC_KEY" \
-H "X-Integration-Private-Key: $SHEPHERD_PRIVATE_KEY" \
-H "X-Clinic-Id: $SHEPHERD_CLINIC_ID" \
-d '{"page":1,"rpp":100}'
  • Providers for the bookable, medical-and-billable subset of users.
  • Tasks for assigning work to users by id.
  • Conventions for pagination, sorting, and date filters.
  • Groups and multi-site for how clinic-user records change in shared-data groups.