Get patient
Returns full details of a single patient by fingerprint. ### Multi-Clinic Visibility This endpoint succeeds if the API key's clinic has an active `CustomerClinicConnection` to the patient — **even if another clinic originally created the record**. Ownership of medical records within the patient is determined by `performed_by_clinic_fp` on each record. ### What This Returns Only the patient entity itself. Related medical records (SOAP, vaccines, medications, diagnostics) are fetched separately from their respective endpoints.
Authorization
ApiKeyAuth API key issued from the Vetigen Developer Portal. Pass as X-API-Key: YOUR_API_KEY.
In: header
Path Parameters
Patient fingerprint (patient_{ULID}).
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -H "X-API-Key: $VETIGEN_API_KEY" \ https://api.vetigen.com/api/v1/patients/patient_01JABC9XYZKL4N7P3Q8TRM2ZDE{
"success": true,
"data": {
"fp": "patient_01JABC9XYZKL4N7P3Q8TRM2ZDE",
"name": "Boncuk",
"species": "dog",
"breed": "Golden Retriever",
"sex": "male",
"date_of_birth": "2019-06-15",
"weight_kg": 28.4,
"owner_customer_fp": "customer_01JABC...",
"created_at": "2024-11-03T09:24:17.000Z",
"updated_at": "2026-03-18T14:02:41.000Z"
},
"message": "OK"
}{
"success": false,
"error": {
"code": "AUTH.UNAUTHORIZED",
"message": "Authentication required.",
"severity": "error"
}
}{
"success": false,
"error": {
"code": "AUTH.FORBIDDEN",
"message": "Insufficient permissions.",
"severity": "error"
}
}{
"success": false,
"error": {
"code": "PATIENT.NOT_FOUND",
"message": "Patient with fingerprint patient_01JABC does not exist.",
"severity": "error"
}
}{
"success": false,
"error": {
"code": "API_KEY.RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Please retry after the specified time.",
"severity": "error"
}
}{
"success": false,
"error": {
"code": "PATIENT.NOT_FOUND",
"message": "Patient with fingerprint patient_01JABC does not exist.",
"severity": "error",
"details": {}
}
}Related
List patients
Returns a paginated list of patients accessible to the clinic associated with your API key. ### Access Model Patients in Vetigen are **global entities** — a single patient record may be shared across multiple clinics via `CustomerClinicConnection`. This endpoint returns patients that have an active connection to the caller's clinic, regardless of which clinic originally created the record. ### Pagination Use `page` and `page_size` query parameters. The response includes `has_more: true` when additional pages are available. ### Common Errors - `PATIENT.ACCESS_DENIED` — API key's clinic has no connection to the requested patients. - `AUTH.RATE_LIMITED` — see rate-limit headers.
List calendar events
Returns calendar events (appointments, surgeries, vaccinations, checkups, emergencies, sales) for the clinic associated with your API key. ### Timezone `start_at` and `end_at` are always UTC ISO 8601. When displaying to end users, convert to the clinic's configured timezone (returned in the `Patient` owner's locale settings, not on the event itself). ### Date Range Both `start_date` and `end_date` are optional. If omitted, the default window is **today through 30 days ahead**. Max allowed range is 90 days per request. ### Event Types & Status Machine - **Types:** `APPOINTMENT`, `SURGERY`, `VACCINATION`, `CHECKUP`, `EMERGENCY`, `SALE` - **Status flow:** `SCHEDULED → CHECKED_IN → IN_PROGRESS → PENDING_CHECKOUT → CLOSED` (or `CANCELLED`)