Skip to content

Providers

Providers are the people who deliver care at a clinic: veterinarians, vet techs, and other staff who can be assigned to appointments or attached to medical records. Each provider record carries their role and the availability windows that drive scheduling. Schedule templates sit alongside providers and define the appointment types, durations, and color-coding the clinic uses on its calendar.

Most scheduling integrations read providers to populate dropdowns, and read schedule templates to render the right slot length per appointment type.

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

FieldTypeDescription
idstringServer-assigned identifier.
namestringThe provider’s display name. There are no separate firstName / lastName fields; doctor expands to the underlying user record.
initialsstringProvider’s initials.
clinicIdstringClinic the provider belongs to.
doctorIdstringThe related doctor/user record. doctor expands it.
appointmentTypeIdsarrayAppointment types this provider offers (“Services Offered”). appointmentTypes expands them.
isReliefDoctorbooleanWhether this provider is a relief doctor.
isArchivedbooleanWhether the provider is archived. Archived providers are not bookable; there is no active field.
colorstringHex colour used for the provider on the calendar.
sortOrderintegerDisplay order for provider lists.
dateCreatedstringISO 8601 UTC timestamp of creation.
dateUpdatedstringISO 8601 UTC timestamp of last update.
POST /pav2/open-api-providers

Returns the providers configured for the clinic identified by X-Clinic-Id. Availability is included on the record so most calendar UIs need a single round trip.

Terminal window
curl -X POST https://open-api.shepherd.vet/pav2/open-api-providers \
-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",
"clinicId": "9890662f-52db-4a41-a5c1-b2e300d400b4",
"name": "Dr. Alex Rivera",
"initials": "AR",
"doctorId": "6a5b4c3d-2e1f-0a9b-8765-4321fedcba09",
"doctor": null,
"appointmentTypeIds": ["8fc9c6d1-a829-4b93-a5ea-1c83db96a1b4"],
"appointmentTypes": null,
"isReliefDoctor": false,
"isArchived": false,
"color": "#2878FD",
"sortOrder": 1,
"dateCreated": "2025-07-01T13:21:09Z",
"dateUpdated": "2026-03-04T10:00:01Z"
}
],
"totalRecords": 12,
"page": 1,
"recordsPerPage": 100,
"sort": "lastName|asc",
"searchQuery": null,
"embed": null,
"links": []
}
POST /pav2/open-api-schedule-templates

Returns the appointment-type catalog used by the clinic calendar: each template carries a name, duration, color, and the rules that decide which providers it applies to. Combine providers and schedule templates to build a slot picker.

Terminal window
curl -X POST https://open-api.shepherd.vet/pav2/open-api-schedule-templates \
-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}'
  • Conventions for pagination, embedding, sorting, and date filters.
  • Lookups for the enumerated values used elsewhere in scheduling.
  • Errors for the two JSON error body shapes.