Veterinary and Pharmacy Endpoints
This document covers the endpoints available to approved veterinary and pharmacy partner accounts: submitting and tracking a client referral, reading consultation records you took part in, confirming the veterinarian-client-patient relationship (VCPR) status for a patient, and transmitting and tracking prescriptions for dispensing. These endpoints serve care coordination only; they are separate from the commerce endpoints, and no endpoint here creates a marketplace order or a charge.
Prescription dispensing through the Platform requires a valid prescription from a licensed veterinarian, as governed by the Prescription Products Policy (Sellers) (Prescription Products Policy (Sellers)) and the pharmacy set in Veterinary and Pharmacy, including the Prescription Authority and VCPR Requirement, the Pharmacy Partner Standards, and Prescription Transmission and Fulfillment. State law governs licensure and the VCPR; no endpoint in this document authorizes practice a state forbids, and telemedicine is offered only where the patient's state permits the VCPR to be established by telemedicine, as stated in the VCPR Establishment Rules and the State Telemedicine Matrix.
Access through the developer API is issued by the Company and is limited by seller type: manufacturer and supplier accounts receive API access for importing data, under the Developer Agreement and the API Access Tiers. Veterinary and pharmacy endpoints are available to an approved veterinary or pharmacy partner account for records it is a party to. Nothing in this document grants broader access.
Endpoints
| Method | Path | Purpose | Access |
|---|---|---|---|
| POST | /vet/referrals | Submit a client referral for veterinary contact | Partner account |
| GET | /vet/referrals/{id} | Read a referral's status | Party to the referral |
| GET | /vet/consultations | List consultations your account took part in | Partner account |
| GET | /vet/consultations/{id} | Read one consultation record | Party to the consultation |
| GET | /vet/vcpr/{pet_id} | Read the VCPR status for a patient | Treating practice |
| GET | /pharmacy/prescriptions | List prescriptions transmitted to your pharmacy | Pharmacy partner |
| GET | /pharmacy/prescriptions/{id} | Read one prescription in full | Pharmacy partner |
| POST | /pharmacy/prescriptions/{id}/status | Report dispensing status and tracking | Pharmacy partner |
All paths are relative to the base URL https://www.aapawz.com/api. Collections paginate as specified in Pagination and Filtering (Pagination & Filtering). Writes accept an Idempotency-Key header (Idempotency Keys). Requests are metered as described in Rate Limit Headers; referral submission carries a low submission limit per account to protect clients from duplicate outreach.
Referrals
A referral asks a partner veterinarian to contact a pet owner who has consented to contact. Consent is the legal gate: a referral without recorded consent is rejected, and no veterinarian may contact the owner without it.
{
"owner_name": "Jordan Ellis",
"owner_phone": "+1 901 555 0117",
"owner_postal_code": "38105",
"pet": {
"name": "Biscuit",
"species": "dog",
"breed": "Beagle"
},
"concern": "Not eating since yesterday; lethargic this morning.",
"urgency": "urgent",
"consent_to_contact": true,
"consent_at": "2026-10-14T13:02:11Z"
}
- At least one contact method (phone or email address of record) is required, together with
owner_name, theconcernsummary, andconsent_to_contact: true. Contact details are provided through the referral form fields, never in theconcerntext. urgencyis one ofemergency,urgent,routine,information. Anemergencyreferral is not a substitute for emergency care: the owner-facing flow directs emergencies to an emergency veterinarian immediately, and partners shall do the same.- The response is
201with the referralidandstatus: "new". Status moves tocontacted,responded,booked, orclosedas the receiving practice works it; read status withGET /vet/referrals/{id}. - Commercial terms for referrals are governed by the Vet Lead Compensation Policy. Compensation is never structured as a per-referral payment to a veterinarian where state law treats that as a disciplinary cause; integrate on the terms of your partner agreement, not on assumptions.
Client and pet details in a referral are personal and health-adjacent data. Handle them under the Telemedicine Data Handling Policy: keep the minimum, restrict access to staff working the referral, and delete on the schedule that policy states.
Consultations
A consultation record summarizes a telemedicine consultation your practice conducted
{
"id": "cons_34vb72",
"pet_id": "pet_9012",
"pet_name": "Biscuit",
"owner_name": "Jordan Ellis",
"patient_state": "TN",
"scheduled_at": "2026-10-14T17:00:00Z",
"started_at": "2026-10-14T17:01:12Z",
"ended_at": "2026-10-14T17:19:48Z",
"status": "completed",
"chief_complaint": "Loss of appetite",
"urgency": "routine",
"outcome": "follow_up_in_person"
}
status is scheduled, in_progress, completed, cancelled, or no_show. outcome is advice_given, prescription_issued, follow_up_in_person, or referred_emergency. The record is a coordination summary: times, parties, complaint, and outcome: not a clinical chart; the treating practice keeps the clinical record in its own systems.
VCPR status
GET /vet/vcpr/{pet_id} returns whether a current VCPR covers a patient, and on what basis
{
"pet_id": "pet_9012",
"status": "current",
"basis": "in_person_exam",
"established_at": "2026-08-19",
"expires_at": "2027-08-19",
"patient_state": "TN",
"practice_id": "vet_5520"
}
status is current, expired, or none. basis is in_person_exam or telemedicine, and a telemedicine basis is returned only where the patient's state permits it under the State Telemedicine Matrix. Prescribing requires a current VCPR held by the prescribing veterinarian's practice; check this endpoint before issuing or dispensing, and treat any other status as no authority to prescribe.
Prescriptions and dispensing
A prescription transmitted to a pharmacy partner carries everything dispensing requires
{
"id": "rx_77hm03",
"status": "transmitted",
"pet_id": "pet_9012",
"pet_name": "Biscuit",
"medication_name": "Apoquel",
"strength": "16 mg",
"quantity": 30,
"days_supply": 30,
"refills_allowed": 1,
"directions": "Give one tablet by mouth every 12 hours for 3 days, then once daily.",
"is_controlled_substance": false,
"is_compounded": false,
"prescribed_under_state": "TN",
"vcpr_id": "vcpr_1187",
"pharmacy_status": "received",
"tracking_number": null,
"created_at": "2026-10-14T17:21:03Z"
}
The pharmacy reports progress with POST /pharmacy/prescriptions/{id}/status
{
"pharmacy_status": "shipped",
"tracking_number": "9400111899223856927410"
}
pharmacy_status moves received → in_preparation → shipped → delivered, or to on_hold with a note stating what is needed (for example, prescriber clarification). A prescription record does not dispense anything by itself: dispensing requires the valid prescription, the current VCPR above, and compliance with the pharmacy set in Veterinary and Pharmacy. Controlled substances, compounded preparations, and extra-label use carry the additional conditions stated in those policies and in state law; where a condition is not met, set on_hold and contact the prescriber rather than dispensing.
Errors
| Status | Code | Cause |
|---|---|---|
| 403 | not_a_party | Your account is not a party to this record |
| 404 | not_found | No record with that identifier exists for your account |
| 422 | consent_required | A referral was submitted without recorded consent |
| 422 | vcpr_not_current | A prescription action was attempted without a current VCPR |
| 422 | validation_failed | A required field is missing or malformed |
Error bodies follow Error Codes. Terms used here are defined in Glossary.