This portion of the API provides endpoints for system administration
Servers
https://api.ezyvet.comezyVet production environment
https://api.trial.ezyvet.comezyVet trial environment
Fetch an Attachment
GET
/v1/attachment
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"read-attachment"Read attachment resources
Parameters
Query Parameters
id
The ID number used by the system to uniquely identify an Attachment.
Type
string
active
If true, the Attachment is active and usable in ezyVet.
Type
boolean
created_at
The epoch time when the Attachment was created.
Type
string
modified_at
The epoch time when the Attachment was last modified.
Type
string
record_type
The record type the Attachment is for. E.g. Animal, Contact, Consult.
Type
string
record_id
The ID number of the record the Attachment is linked to.
Type
string
Responses
A successful response
application/json
JSON "meta": { "timestamp": "string", "items_page": "string", "items_page_total": "string", "items_page_size": "string", "items_total": "string" }, "items": [ { "attachment": { "id": "string", "active": "string", "created_at": "string", "modified_at": "string", "file_id": "string", "file_download_url": "string", "record_type": "string", "record_id": "string", "mime_type": "string", "name": "string", "primary_image": "string", "notes": "string" } } ], "messages": [ ]
{
}
GET
/v1/attachment
Samples
Create a File
POST
/v1/file
NOTE: It's recommended to use the attachment endpoint
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
Request Body
multipart/form-data
Format
"binary"Responses
Successful operation
application/json
JSON "meta": { "transaction_id": "string", "timestamp": 0 }, "items": [ { "file": { "id": "string", "active": true, "created_at": "string", "modified_at": "string", "name": "string", "size": "string", "mime_type": "string", "notes": "string", "file_download_url": "string" } } ], "messages": [ ]
{
}
POST
/v1/file
Samples
Deprecated
Fetch a list of separations
GET
/v1/separation
Its recommended to use the v2/separation endpoint
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"read-separation"Read separation resources
Parameters
Query Parameters
id
The ID number used by the system to uniquely identify a Separation.
Type
string
active
If true, the Separation is active and usable in ezyVet.
Type
string
created_at
The epoch time when the Separation was created.
Type
string
modified_at
The epoch time when the Separation was last modified.
Type
string
name
The name of the Separation.
Type
string
type
The type of Separation: Database, Business, Division or Location.
Type
string
Valid values
"Database""Business""Division""Location"parent
The ID of the parent Separation. Note, a Database has no parent.
Type
string
contact_id
The ID of the Contact containing business details for this Separation.
Type
string
Responses
A list of separations
application/json
JSON "meta": { "timestamp": "string", "items_page": "string", "items_page_total": "string", "items_page_size": "string", "items_total": "string" }, "items": [ { "id": 0, "created_at": 0, "modified_at": 0, "active": true, "stockadjustment_id": 0, "product_id": 0, "name": "string", "code": "string", "quantity": 0, "price": 0, "ledger_account": 0, "status": "string", "batch": [ { "id": 0, "created_at": 0, "modified_at": 0, "active": true, "name": "string", "type": "string", "parent": 0, "expiry": 0 } ], "location_id": 0 } ], "messages": [ "string" ]
{
}
GET
/v1/separation
Samples
Get the SystemSettings
GET
/v1/systemsetting
Returns the SystemSetting of the specified site.
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"read-systemsetting"Read system setting resources
Responses
Successful response
application/json
JSON "meta": { "timestamp": "string", "items_page": "string", "items_page_total": "string", "items_page_size": "string", "items_total": "string" }, "items": [ { "systemsetting": { "timezone": { "name": "string", "utc_offset": "string", "utc_offset_seconds": 0 } } } ], "messages": [ { } ]
{
}
GET
/v1/systemsetting
Samples
Fetch a list of Tags
GET
/v1/tag
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"read-tag"Read tag resources
Parameters
Query Parameters
id
The ID number used by the system to uniquely identify a Tag.
Type
string
active
If true, the Tag is active and usable in ezyVet.
Type
string
created_at
The epoch time when the Tag was created.
Type
string
modified_at
The epoch time when the Tag was last modified.
Type
string
name
The name of the Tag.
Type
string
associated_id
The ID of the record to which this Tag is associated.
Type
string
associated_type
The name of the entity object to which this Tag is associated.
Type
string
category_id
The ID of the TagCategory to which this Tag belongs.
Type
string
Responses
A list of Tags
application/json
JSON "meta": { "timestamp": "string", "items_page": "string", "items_page_total": "string", "items_page_size": "string", "items_total": "string" }, "items": [ { "tag": { "id": "string", "active": "string", "created_at": "string", "modified_at": "string", "name": "string", "associated_id": "string", "associated_type": "string", "category_id": "string" } } ], "messages": [ ]
{
}
GET
/v1/tag
Samples
Fetch a list of Tag Categories
GET
/v1/tagcategory
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"read-tagcategory"Read tag category resources
Parameters
Query Parameters
id
Type
string
active
Type
string
created_at
Type
string
modified_at
Type
string
name
Type
string
Responses
A list of Tag Categories
application/json
JSON "meta": { "timestamp": "string", "items_page": "string", "items_page_total": "string", "items_page_size": "string", "items_total": "string" }, "items": [ { "tagcategory": { "id": "string", "active": "string", "created_at": "string", "modified_at": "string", "name": "string" } } ], "messages": [ ]
{
}
GET
/v1/tagcategory
Samples
Fetches a list containing Tag Names
GET
/v1/tagname
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"read-tagname"Read tag name resources
Parameters
Query Parameters
id
The ID number used by the system to uniquely identify a Tag Name.
Type
string
created_at
The epoch time when the Tag Name was created.
Type
string
modified_at
The epoch time when the Tag Name was last modified.
Type
string
active
If true, the Tag Name is active and usable in ezyVet.
Type
string
category_id
The ID of the Tag Category the Tag Name is part of.
Type
string
Responses
A list of Tag Names
application/json
JSON "meta": { "timestamp": "string", "items_page": "string", "items_page_total": "string", "items_page_size": "string", "items_total": "string" }, "items": [ { "tagname": { "id": "string", "active": "string", "created_at": "string", "modified_at": "string", "name": "string", "category_id": "string" } } ], "messages": [ ]
{
}
GET
/v1/tagname
Samples
Fetch a list of ezyVet users
GET
/v1/user
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"read-user"Read user resources
Parameters
Query Parameters
id
The ID number used by the system to uniquely identify a User.
Type
string
active
If true, the User is active and usable in ezyVet.
Type
string
created_at
The epoch time when the User was created.
Type
string
modified_at
The epoch time when the User was last modified.
Type
string
name
The name of the User.
Type
string
code
The code of the User.
Type
string
is_vet
If true, the User is a vet.
Type
string
is_salesperson
If true, the User is a salesperson.
Type
string
is_dev
If true, the User is an internal ezyVet user. When querying the API, set this field to '0'.
Type
string
limit
Limits the number of items returned.
Type
string
Default
10page
Specifies the page number of the result.
Type
string
Default
1Responses
A list of Users
application/json
JSON "meta": { "timestamp": "string", "items_page": "string", "items_page_total": "string", "items_page_size": "string", "items_total": "string" }, "items": [ { "user": { "id": "string", "active": "string", "created_at": 0, "modified_at": 0, "name": "string", "code": "string", "is_vet": "string", "is_salesperson": "string", "is_dev": "string", "email": "string" } } ], "messages": [ ]
{
}
GET
/v1/user
Samples
Fetch a list of WebHookEvents
GET
/v1/webhookevents
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"read-webhookevents"Read webhook event resources
Responses
A JSON object containing the list of WebHookEvents.
application/json
JSON "meta": { "transaction_id": "string", "timestamp": 0 }, "items": [ { "webhookevents": [ "appointment_created", "appointment_updated", "product_created", "product_updated", "user_created", "user_updated", "consult_created", "consult_updated", "therapeutic_created", "therapeutic_updated", "therapeutic_disabled", "default_billing_trigger_created", "default_billing_trigger_updated", "default_billing_trigger_disabled", "bundle_created", "bundle_updated", "bundle_disabled" ] } ], "messages": [ ]
{
}
GET
/v1/webhookevents
Samples
Fetch a list of Webhooks
GET
/v1/webhooks
Fetch a Webhook.
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"read-webhooks"Read webhook resources
Parameters
Query Parameters
id
The ID number used by the system to uniquely identify a Webhook.
Type
number
active
If true, the Webhook is active and will cause the webhook_url to receive data upon events being fired.
Type
boolean
event
The name of the subscribed event. Each event is prefixed with a data type (endpoint) followed by the name of the event associated to that data type.
Type
string
Responses
Successful response
application/json
JSON "meta": { "items_page": 0, "items_page_total": 0, "items_page_size": 0, "items_total": 0, "transaction_id": "string", "timestamp": 0 }, "items": [ { "webhooks": { "id": 0, "created_at": 0, "modified_at": 0, "active": true, "webhook_url": "string", "event": "string", "fields": [ "string" ] } } ], "messages": [ ]
{
}
GET
/v1/webhooks
Samples
Fetch a Separation list
GET
/v2/separation
Fetches a list containing Separations.
Separations are a complex part of the ezyVet API and is important to understand.
Please read this document to ensure you have an adequate understanding.
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"read-separation"Read separation resources
Parameters
Query Parameters
id
The ID number used by the system to uniquely identify a Separation.
Type
number
uid
The ID number used by the system to uniquely identify a Separation across all ezyVet sites.
Type
string
active
If true, the Separation is active and usable in ezyVet.
Type
boolean
created_at
The epoch time when the Separation was created.
Type
number
modified_at
The epoch time when the Separation was last modified.
Type
number
Responses
A list of separations
application/json
JSON "meta": { "items_page": 1, "items_page_total": 1, "items_page_size": 22, "items_total": "22", "transaction_id": "1100a12e183faeddac0700d881141b54475b6cc4b92fd757cdeba1db2f734ab0", "timestamp": 1780020859 }, "items": [ { "separation": { "id": 1, "uid": "ownershipSeparation_d01oHZu5uCuy0VdOgAn23", "created_at": 1419765339, "modified_at": 1747002038, "active": true, "name": "Galaxy Vets", "type": "database", "parent": null, "child": 16, "separation_type": "Department", "contact_id": 3, "contact_uid": "contact_lg1jdmDnObgYMCjwG2cuD" } }, { "separation": { "id": 16, "uid": "ownershipSeparation_9V0WG0BiBouk5tB70qafg", "created_at": 1747002038, "modified_at": 1774561844, "active": true, "name": "Death Star Vets BU", "type": "business", "parent": 1, "child": 3, "separation_type": "Hospital", "derived_hospital_uid": "hospital_tGRMQ8HgPJpEDSRYNJb8E", "contact_id": 3, "contact_uid": "contact_lg1jdmDnObgYMCjwG2cuD" } }, { "separation": { "id": 4, "uid": "ownershipSeparation_cAl0DAnmH0C1EqVw0souz", "created_at": 1641839727, "modified_at": 1756258352, "active": true, "name": "Death Star Emergency", "type": "division", "parent": 16, "child": 5, "separation_type": "Department", "hospital_uid": "hospital_tGRMQ8HgPJpEDSRYNJb8E", "contact_id": 3, "contact_uid": "contact_lg1jdmDnObgYMCjwG2cuD" } }, { "separation": { "id": 5, "uid": "ownershipSeparation_9K8oZgeaLT0AEctz3KtwC", "created_at": 1571345127, "modified_at": 1756258352, "active": true, "name": "Death Star Emergency Inventory", "type": "location", "parent": 4, "child": null, "separation_type": "", "hospital_uid": "hospital_tGRMQ8HgPJpEDSRYNJb8E", "contact_id": 3, "contact_uid": "contact_lg1jdmDnObgYMCjwG2cuD" } } ], "messages": [ ]
{
}
GET
/v2/separation
Samples
Get site information
GET
/v3/siteInformation
Gets site information pertaining to the site specified in the request URL.
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"read-systemsetting"Read system setting resources
Responses
OK
application/json
JSON "data": { "id": "site_jkjBWPng4gFTqRxYkomWU", "type": "siteInformation", "attributes": { "prefix": "apisandbox", "practiceType": "Mixed Practice", "version": 40.1 }, "relationships": { "timezone": { "links": { "related": 94 }, "data": { "type": "timezone", "id": 94 } } }, "included": [ { "id": 94, "type": "timezone", "attributes": { "name": "America/Chicago" } } ] }
{
}
GET
/v3/siteInformation
Samples
List all users
GET
/v4/user
Retrieve a paginated list of all users using token-based pagination.
Pagination:
- Use the
pageSizeparameter to control the number of items returned per page (default: 500, max: 500) - Use the
nextTokenparameter from the responsemetaobject to fetch the next page - The
nextTokenwill be omitted from themetaobject when there are no more pages available - The token carries the
pageSize,statusandupdatedAtthe sequence was started with, so a continuation request needsnextTokenalone. Repeating any of them is allowed but the values must match the token — a token issued without astatusfilter accepts nostatusat all; a different value is rejected with400 InvalidPageSize/400 InvalidStatusFilter/400 InvalidDateFilterrather than changing the page sequence part-way through - A supplied
statusmust beactiveordisabled; an empty value is treated as not supplied includeAccessis not part of the token and is read on every request- An empty
nextTokenis treated as not supplied and returns the first page; any other value not issued by this endpoint is rejected with400 InvalidPaginationToken
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"user-management"Manage user accounts and roles
or
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"read-user"Read user resources
Parameters
Query Parameters
pageSize
Maximum number of users to return per page
Type
integer
Minimum
1Maximum
500Default
500nextToken
Opaque token for fetching the next page of results. Obtained from the nextToken field in the response meta object. It carries the pageSize, status and updatedAt of the first request, so send it alone; any of those sent with it must match.
Type
string
Example
"eyJpZCI6MTIzLCJwYWdlU2l6ZSI6NTAwLCJzdGF0dXMiOiJhY3RpdmUifQ=="status
Filter users by status (active or disabled)
Type
string
Valid values
"active""disabled"updatedAt
Filter by when the user was last modified, as a URL-encoded JSON object of comparators keyed by eq, gt, lt, gte or lte. Values are strict RFC-3339 instants: YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DDTHH:MM:SS±HH:MM — seconds and the offset colon are both required, and epoch-seconds are not accepted.
Several comparators combine with AND, so a window is one parameter:
- exact match —
updatedAt={"eq":"2022-01-05T23:23:43Z"} - one week —
updatedAt={"gte":"2024-05-17T00:00:00Z","lte":"2024-05-24T00:00:00Z"}
A malformed value is rejected with InvalidDateFilter, and an unrecognised comparator key with UnsupportedDateComparator. Unlike status, an empty updatedAt counts as supplied and malformed, so omit the parameter rather than send it blank.
A user never modified since creation matches on its creation time; users whose updatedAt is null (no stored modification time) never match. The filter is carried in the pagination token, so a continuation request needs nextToken alone; a value repeated beside the token must match it. Results stay ordered by internal id; there is no sort parameter.
Type
string
Example
{"gte":"2024-05-17T00:00:00Z","lte":"2024-05-24T00:00:00Z"}includeAccess
When true, each user in the response will include an access array with their ownership access records. Users with no access records will have an empty array.
Type
string
Valid values
"true""false"Responses
Users retrieved successfully
application/json
JSON "meta": { "nextToken": "XY9mN4pQr2sT8vW1zA3bC" }, "data": [ { "user": { "id": "user_602aTIeV9XsL0NYzRcy1m", "name": "John Doe", "initials": "JD", "email": "johndoe@email.com", "login": "joedoe@email.com", "resetPassword": true, "mobile": "021 777 8809", "registration": "9731319", "qualifications": "Qualified", "status": "active", "createdAt": "2024-05-17T13:00:00Z", "updatedAt": "2024-05-24T09:30:00Z", "isVet": true, "isSalesperson": false, "roles": [ [ "Veterinarian", "Practice Manager" ] ], "access": [ { "ownershipId": "ownershipseparation_abc", "level": "member" } ] } } ]
{
}
GET
/v4/user
Samples
Get access for a user
GET
/v4/user/{id}/access
Retrieve all access records for a user, including ownerships with 'none' access.
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"user-management"Manage user accounts and roles
Parameters
Path Parameters
id*
Unique identifier (UID) of the user
Type
Requiredstring
Example
"user_602aTIeV9XsL0NYzRcy1m"Responses
User access retrieved successfully
application/json
JSON "meta": { }, "data": [ { "ownershipId": "ownershipseparation_abc", "level": "member" }, { "ownershipId": "ownershipseparation_def", "level": "on_calendar" } ]
{
}
GET
/v4/user/{id}/access
Samples
Role
The roles available on a site, for use as valid role names when creating or updating users.
Operations
List all active role names
GET
/v4/role
Retrieve a list of all active role names. Intended for use by user endpoints when creating or updating users—the returned role names can be used in the roles array when creating users or updating user roles.
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"user-management"Manage user accounts and roles
or
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"read-user"Read user resources
Responses
Roles retrieved successfully
application/json
JSON "data": [ [ "Veterinarian", "Practice Manager", "Receptionist" ] ]
{
}
GET
/v4/role
Samples
Hospital
Hospital records — the customer-facing locations that make up an organisation's structure.
Operations
Fetches a list containing Hospital(s) - uses token pagination.
GET
/v4/hospital
Authorizations
bearerAuth
clientCredentials Flow
Token URL
"https://api.ezyvet.com/v1/oauth/access_token"Scopes:
"read-separation"Read separation resources
Parameters
Query Parameters
businessId
Filter hospitals by business ID
Type
string
Example
"ownership_01HZY8Y5TQ2XG3P9W4N8K6V1R2"pageSize
Sets the number of items to be returned in each page.
Type
integer
Example
50Default
2000Maximum
2000nextToken
A token to pass back to the server to get the next page of results.
Type
string
Example
"eyJpZCI6MTIzfQ"Responses
A list of Hospitals
application/json
JSON "meta": { "nextToken": "eyJpZCI6MTIzfQ" }, "data": [ { "id": "hospital_01HZY8Z7Q8K2N4X7QY2S8M3J7A", "businessId": "string", "name": "string", "address": { "streetLine1": "string", "streetLine2": "string", "suburb": "string", "city": "string", "postcode": "string", "region": "string", "state": "string", "countryCode": "string" }, "email": "string", "website": "string", "phoneNumber": "string", "faxNumber": "string", "status": "string", "createdAt": "2024-01-15T10:30:00Z", "updatedAt": "2024-12-20T14:22:00Z" } ], "errors": [ { "id": "8954638926413656075_1", "code": "HospitalNotFound", "target": "businessID" } ]
{
}
GET
/v4/hospital