List inventory items
Returns a paginated list of inventory items for the clinic associated with your API key. ### Clinic-Scoped Unlike patients and medical records, inventory is **clinic-specific** — each clinic maintains its own stock. The `clinic_fp` is inferred from your API key and never accepted as a parameter. ### Pricing & Currency - `unit_price_cents` is an integer in the smallest currency unit (e.g. kurus for TRY, cents for USD). Divide by 100 for display. - `currency` uses ISO 4217 codes. Clinics may operate in TRY, USD, EUR, or GBP. ### Virtual Items `is_virtual: true` marks items that don't track physical stock — consultation fees, procedures, service charges. Stock operations (reserve, decrement, return) fail silently on virtual items. ### Stock Allocation Strategy When items are consumed through sales or treatments, allocation follows: - **Medications & vaccines:** FEFO (First Expiry, First Out) — batches with nearest `expiry_date` used first - **Other categories:** FIFO (First In, First Out) — oldest batches first
Authorization
JWT-auth API key issued from the Vetigen Developer Portal. Pass as Authorization: Bearer YOUR_API_KEY.
In: header
Query Parameters
Page number (1-indexed).
11 <= valueItems per page. Max 100.
201 <= value <= 100Filter by category (e.g. MEDICATION, VACCINE, CONSUMABLE, SERVICE).
When true, returns only items below their low_stock_threshold.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -H "Authorization: Bearer $VETIGEN_API_KEY" \ "https://api.vetigen.com/api/v1/inventory?category=MEDICATION&low_stock=true"{
"success": true,
"data": {
"items": [
{
"fp": "invitem_01JABC...",
"name": "Cerenia 10mg/ml Injectable",
"category": "MEDICATION",
"sku": "VET-CER-10-20",
"unit": "vial",
"quantity_on_hand": 42,
"low_stock_threshold": 10,
"unit_price_cents": 18500,
"currency": "TRY",
"is_virtual": false
}
],
"total": 318,
"page": 1,
"page_size": 20,
"has_more": true
}
}{
"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": "AUTH.RATE_LIMITED",
"message": "Rate limit exceeded. Retry in 42 seconds.",
"severity": "warning"
}
}{
"success": false,
"error": {
"code": "PATIENT.NOT_FOUND",
"message": "Patient with fingerprint patient_01JABC does not exist.",
"severity": "error",
"details": {}
}
}Related
Get diagnostic study
Returns a single Cortex diagnostic study — typically a lab result ingested from in-clinic analyzers (ASTM, HL7, DICOM, POCT1-A) via the Vetigen Cortex daemon, or manual entry. ### What Is Cortex? **Vetigen Cortex** is an on-premises Go daemon running on clinic computers that interfaces with lab instruments and imaging modalities, normalizes results, and pushes them to the Vetigen API. Each result creates a `CortexDiagnosticStudy` entity. See the [Diagnostics Guide](/docs/guides/lab-results) for integration details. ### Modalities `HEMATOLOGY` · `BIOCHEMISTRY` · `URINALYSIS` · `RADIOLOGY` · `ULTRASOUND` · `ENDOSCOPY` ### Result Flags Each analyte entry includes a `flag` field — `normal` / `low` / `high` / `critical` — computed against the patient's species-specific reference range at the time of acquisition.
April 2026
API changes and new features for April 2026.