Skip to content

Frequently Asked Questions

General Questions

How do I perform delta loads? e.g. appointments in the last x hours:

Using the field comparators documented here, you can easily perform delta loads by setting the epoch time variable as the last time you synced.

http
https://api.trial.ezyvet.com/v2/appointment?modified_at={"gt":"1745107200"}

How can I raise API feature requests?

The ezyVet API operates under a WYSISYG framework and is constantly being improved which means some features that are available in the UI may not have API representation. Feature requests can be made by submitting a support ticket via the API Support email address. Whilst we will consider each request, we cannot guarentee each request will be fulfilled.

Authentication

How do I authenticate with the API?

Check out the API documentation here.

An example cURL:

cURL
curl    --location 'https://api.ezyvet.com/v1/oauth/access_token' \
        --header 'Content-Type: application/json' \
        --data '{
            "client_id": "string",
            "client_secret": "string",
            "partner_id": "string",
            "scope": "read-appointment",
            "grant_type": "client_credentials",
            "site_uid": "string"
        }'

How do I get the site_uid for an existing connection?

Take an existing ezyVet JWT access token and decode it using code.

WARNING

It's strongly encouraged to avoid using online tools such as https://www.jwt.io/ due to the sensitivity of the data being decoded.

Sample python code:

python
import jwt
import json

def decode_token(token: str):
    """
    :param token: jwt token
    :return:
    """
    decoded_data = jwt.decode(jwt=token,options={"verify_signature": False})
    print(json.dumps(decoded_data, indent=4))

token = input("Paste token here: ")
decode_token(token)

Example output of above code:

json
{
    "aud": "string",
    "jti": "string",
    "iat": 1765746831,
    "nbf": 1765746831,
    "exp": 1765790031,
    "sub": "string",
    "scopes": [
        "read-appointment",
        "write-appointment",
        "create-booking"
    ],
    "iss": "auth.ezyvet.com",
    "grp": "apisandbox",
    "url": "apisandbox.ezyvet.com",
    "site_uid": "site_jtv5H29i8pLkXi1wjWJQL",
    "zone": "usw2"
}

API Endpoints

What scope is required for each endpoint?

CategoryMethodEndpointScope(s)
Animal ManagementPOST/v1/animalwrite-animal
Animal ManagementGET/v1/animalread-animal
Animal ManagementPATCH/v1/animal/{id}write-animal
Animal ManagementDELETE/v1/animal/{id}write-animal
Animal ManagementGET/v1.1/animalread-animal
Animal ManagementGET/v1/animalcolourread-animalcolour
Animal ManagementGET/v1/breedread-breed
Animal ManagementGET/v1/sexread-sex
Animal ManagementGET/v1/speciesread-species
Animal ManagementGET/v2/animalread-animal
Animal ManagementGET/v2.1/animalread-animal
Animal ManagementGET/v4/animalread-animal
Animal ManagementGET/v4/animal/{id}read-animal
Appointment ManagementGET/v1/appointmentread-appointment
Appointment ManagementGET/v1/appointmentstatusread-appointmentstatus
Appointment ManagementGET/v1/appointmenttyperead-appointmenttype
Appointment ManagementGET/v1/resourceread-resource
Appointment ManagementPOST/v2/appointmentwrite-appointment
Appointment ManagementGET/v2/appointmentread-appointment
Appointment ManagementPATCH/v2/appointment/{id}write-appointment
Appointment ManagementGET/v2/appointmenttyperead-appointmenttype
Appointment ManagementGET/v2/resourceread-resource
Appointment ManagementGET/ezycab/availabilityread-appointment
Appointment ManagementPOST/ezycab/bookingcreate-booking
Appointment ManagementGET/v2/shelteranimalbooking/{id}read-shelteranimalbooking
Billing and PaymentsGET/v1/billingcreditread-billingcredit
Billing and PaymentsGET/v1/invoiceread-invoice
Billing and PaymentsGET/v1/invoicelineread-invoiceline
Billing and PaymentsGET/v1/paymentread-payment
Billing and PaymentsGET/v1/paymentmethodread-paymentmethod
Billing and PaymentsGET/v1/priceadjustmentread-priceadjustment
Billing and PaymentsGET/v2/estimateread-estimate
Billing and PaymentsPOST/v2/invoicewrite-invoice
Billing and PaymentsGET/v2/invoiceread-invoice
Billing and PaymentsDELETE/v2/invoice/{id}write-invoice
Billing and PaymentsPATCH/v2/invoice/{id}write-invoice
Billing and PaymentsDELETE/v2/invoicelinewrite-invoiceline
Billing and PaymentsPATCH/v2/invoicelinewrite-invoiceline
Billing and PaymentsPOST/v2/invoicelinewrite-invoiceline
Billing and PaymentsGET/v2/invoicelineread-invoiceline
Billing and PaymentsGET/v2/ledgeraccount/{id}read-ledgeraccount
Billing and PaymentsGET/v2/paymentread-payment
Billing and PaymentsGET/v2/taxrateread-taxrate
Billing and PaymentsGET/v2/transactionread-transaction
Clinical ManagementGET/v1/assessmentread-assessment
Clinical ManagementPOST/v1/consultwrite-consult
Clinical ManagementGET/v1/consultread-consult
Clinical ManagementPATCH/v1/consult/{id}write-consult
Clinical ManagementDELETE/v1/consult/{id}write-consult
Clinical ManagementGET/v1/diagnosticread-diagnostic
Clinical ManagementPOST/v1/diagnosticrequestwrite-diagnosticrequest
Clinical ManagementDELETE/v1/diagnosticrequest/{id}write-diagnosticrequest
Clinical ManagementPATCH/v1/diagnosticrequest/{id}write-diagnosticrequest
Clinical ManagementGET/v1/diagnosticrequest/{id}read-diagnosticrequest
Clinical ManagementPOST/v1/diagnosticresultwrite-diagnosticresult
Clinical ManagementGET/v1/diagnosticresultread-diagnosticresult
Clinical ManagementDELETE/v1/diagnosticresult/{id}write-diagnosticresult
Clinical ManagementPATCH/v1/diagnosticresult/{id}write-diagnosticresult
Clinical ManagementPOST/v1/diagnosticresultitemwrite-diagnosticresultitem
Clinical ManagementGET/v1/diagnosticresultitemread-diagnosticresultitem
Clinical ManagementPATCH/v1/healthstatuswrite-healthstatus
Clinical ManagementGET/v1/healthstatusread-healthstatus
Clinical ManagementPOST/v1/healthstatuswrite-healthstatus
Clinical ManagementDELETE/v1/healthstatus/{id}write-healthstatus
Clinical ManagementGET/v1/historyread-history
Clinical ManagementGET/v1/integrateddiagnosticread-integrateddiagnostic
Clinical ManagementGET/v1/operationread-operation
Clinical ManagementPOST/v1/physicalexamwrite-physicalexam
Clinical ManagementGET/v1/physicalexamread-physicalexam
Clinical ManagementPATCH/v1/physicalexam/{id}write-physicalexam
Clinical ManagementGET/v1/planread-plan
Clinical ManagementGET/v1/presentingproblemread-presentingproblem
Clinical ManagementGET/v1/presentingproblemlinkread-presentingproblemlink
Clinical ManagementGET/v1/vaccinationread-vaccination
Clinical ManagementPOST/v1/vaccinationwrite-vaccination
Clinical ManagementPATCH/v1/vaccination/{id}write-vaccination
Clinical ManagementGET/v2/eventgroupread-eventgroup
Clinical ManagementGET/v2/standardofcareread-standardofcare
Contact ManagementPOST/v1/addresswrite-address
Contact ManagementGET/v1/addressread-address
Contact ManagementPATCH/v1/address/{id}write-address
Contact ManagementDELETE/v1/address/{id}write-address
Contact ManagementGET/v2/communicationread-communication
Contact ManagementPOST/v2/communicationwrite-communication
Contact ManagementDELETE/v2/communication/{id}write-communication
Contact ManagementPATCH/v2/communication/{id}write-communication
Contact ManagementPOST/v4/communication/sentCommunicationwrite-communication
Contact ManagementGET/v1/contactread-contact
Contact ManagementPOST/v1/contactwrite-contact
Contact ManagementPATCH/v1/contact/{id}write-contact
Contact ManagementDELETE/v1/contact/{id}write-contact
Contact ManagementGET/v1/contactassociationread-contactassociation
Contact ManagementGET/v1/contactdetailread-contactdetail
Contact ManagementPOST/v1/contactdetailwrite-contactdetail
Contact ManagementPATCH/v1/contactdetail/{id}write-contactdetail
Contact ManagementGET/v1/contactdetailtyperead-contactdetailtype
Contact ManagementGET/v1/countryread-country
Contact ManagementGET/v2/contactread-contact
Contact ManagementPOST/v2/contactdetailwrite-contactdetail
Contact ManagementGET/v2/contactdetailread-contactdetail
Inventory ManagementGET/v1/barcoderead-barcode
Inventory ManagementGET/v1/productread-product
Inventory ManagementGET/v1/productgroupread-productgroup
Inventory ManagementGET/v1/purchaseorderread-purchaseorder
Inventory ManagementGET/v1/purchaseorderitemread-purchaseorderitem
Inventory ManagementGET/v1/receiveinvoiceread-receiveinvoice
Inventory ManagementPOST/v1/receiveinvoicewrite-receiveinvoice
Inventory ManagementDELETE/v1/receiveinvoice/{id}write-receiveinvoice
Inventory ManagementPATCH/v1/receiveinvoice/{id}write-receiveinvoice
Inventory ManagementGET/v1/receiveinvoiceitemread-receiveinvoiceitem
Inventory ManagementPOST/v1/receiveinvoiceitemwrite-receiveinvoiceitem
Inventory ManagementPATCH/v1/receiveinvoiceitem/{id}write-receiveinvoiceitem
Inventory ManagementDELETE/v1/receiveinvoiceitem/{id}write-receiveinvoiceitem
Inventory ManagementGET/v2/batchread-batch
Inventory ManagementPOST/v2/batchwrite-batch
Inventory ManagementGET/v2/product/{product_id}read-product
Inventory ManagementPATCH/v2.1/product/servicefee/bulkwrite-productpricing
Inventory ManagementGET/v2/productminimumstockread-productminimumstock
Inventory ManagementGET/v2/productpricingread-productpricing
Inventory ManagementPOST/v2/productpricingwrite-productpricing
Inventory ManagementPATCH/v2/productpricing/{id}write-productpricing
Inventory ManagementDELETE/v2/productpricing/{id}write-productpricing
Inventory ManagementGET/v2/productsupplierread-productsupplier
Inventory ManagementPOST/v2/receiveinvoicewrite-receiveinvoice
Inventory ManagementGET/v2/receiveinvoiceread-receiveinvoice
Inventory ManagementPOST/v2/receiveinvoiceitemwrite-receiveinvoiceitem
Inventory ManagementGET/v2/receiveinvoiceitemread-receiveinvoiceitem
Inventory ManagementPOST/v2/stockadjustmentwrite-stockadjustment
Inventory ManagementGET/v2/stockadjustment/{id}read-stockadjustment
Inventory ManagementPOST/v2/stockadjustmentitemwrite-stockadjustmentitem
Inventory ManagementGET/v2/stockadjustmentitem/{id}read-stockadjustmentitem
Inventory ManagementGET/v2/stocktransactionread-stocktransaction
Inventory ManagementGET/inventory/v1/productsinventory-management
Inventory ManagementGET/inventory/v1/requirementsinventory-management
Inventory ManagementPOST/inventory/v1/suppliedinventory-management
Inventory ManagementGET/inventory/v2/balancesinventory-management
Inventory ManagementPOST/v4/purchaseorderpractice-management
Prescription ManagementPATCH/v1/externalprescriptionwrite-externalprescription
Prescription ManagementPOST/v1/externalprescriptionwrite-externalprescription
Prescription ManagementDELETE/v1/externalprescriptionwrite-externalprescription
Prescription ManagementPOST/v1/prescriptionwrite-prescription
Prescription ManagementGET/v1/prescriptionread-prescription
Prescription ManagementPATCH/v1/prescription/{id}write-prescription
Prescription ManagementDELETE/v1/prescription/{id}write-prescription
Prescription ManagementGET/v1/prescriptionitemread-prescriptionitem
Prescription ManagementPOST/v1/prescriptionitemwrite-prescriptionitem
Prescription ManagementPATCH/v1/prescriptionitem/{id}write-prescription
Prescription ManagementDELETE/v1/prescriptionitem/{id}write-prescription
Prescription ManagementGET/v1/therapeuticread-therapeutic
System AdminGET/v1/attachmentread-attachment
System AdminPOST/v1/attachmentwrite-attachment
System AdminGET/v1/attachment/download/{id}read-attachment
System AdminPATCH/v1/attachment/{id}write-attachment
System AdminDELETE/v1/attachment/{id}write-attachment
System AdminPOST/v1/filewrite-file
System AdminGET/v1/file/{id}read-attachment
System AdminGET/v1/separationread-separation
System AdminGET/v1/systemsettingread-systemsetting
System AdminGET/v1/tagread-tag
System AdminGET/v1/tagcategoryread-tagcategory
System AdminGET/v1/tagnameread-tagname
System AdminGET/v1/userread-user
System AdminGET/v1/webhookeventsread-webhookevents
System AdminGET/v1/webhooksread-webhooks
System AdminPOST/v1/webhookswrite-webhook
System AdminDELETE/v1/webhooks/{id}write-webhook
System AdminPATCH/v1/webhooks/{id}write-webhook
System AdminGET/v2/separationread-separation
System AdminGET/v2/separation/withprimaryinventorylocationread-separation
System AdminGET/v3/siteInformationread-systemsetting
System AdminGET/v4/useruser-management
System AdminPOST/v4/useruser-management
System AdminGET/v4/user/{id}user-management
System AdminPATCH/v4/user/{id}user-management
System AdminPOST/v4/user/bulkuser-management
System AdminPATCH/v4/user/bulkuser-management
System AdminGET/v4/roleuser-management
Wellness ManagementPOST/v2/wellnessplanwrite-wellnessplan
Wellness ManagementGET/v2/wellnessplanread-wellnessplan
Wellness ManagementPATCH/v2/wellnessplan/{id}write-wellnessplan
Wellness ManagementDELETE/v2/wellnessplan/{id}write-wellnessplan
Wellness ManagementGET/v2/wellnessplanbenefitread-wellnessplanbenefit
Wellness ManagementPOST/v2/wellnessplanbenefitwrite-wellnessplanbenefit
Wellness ManagementPATCH/v2/wellnessplanbenefit/{id}write-wellnessplan
Wellness ManagementGET/v2/wellnessplanbenefititemread-wellnessplanbenefititem
Wellness ManagementPATCH/v2/wellnessplanmembershipwrite-wellnessplanmembership
Wellness ManagementGET/v2/wellnessplanmembershipread-wellnessplanmembership
Wellness ManagementPOST/v2/wellnessplanmembershipwrite-wellnessplanmembership

Troubleshooting

Is an integration configured correctly?

  • Are all scopes for the integration record enabled?
  • Have you distributed the client_credentials.txt file to the appropriate contact?
  • Are there any other steps required that are noted in the integration user guide?

INFO

All scopes for an integration record should be enabled to ensure proper functionality.

Why can I not access a sandbox/trial environment?

  • Confirm your UI user credentials are correct.
  • Confirm your API credentials are correct.
  • Confirm your integration's scopes are all enabled.
  • Confirm the site you're accessing is correct.
  • Trial sites expire and will result in a 404 - Not found error when attempting to browse to it. Contact the Partnerships team for assistance.