Skip to content

This portion of the API provides endpoints for managing contact records, including addresses, contact details, and associations between contacts.

Servers​

https://api.ezyvet.comezyVet production environment
https://api.trial.ezyvet.comezyVet trial environment

Address​

Addresses associated with a contact record


Fetches a list containing Address(es)​

GET
/v1/address

Authorizations​

bearerAuth
clientCredentials Flow
Token URL"https://api.ezyvet.com/v1/oauth/access_token"
Scopes:
  • "read-address"Read address resources

Parameters​

Query Parameters

id
Type
string
active
Type
string
created_at
Type
string
modified_at
Type
string
name
Type
string
street_1
Type
string
street_2
Type
string
suburb
Type
string
city
Type
string
region
Type
string
post_code
Type
string
state
Type
string
country_id
Type
string
longitude
Type
string
latitude
Type
string

Responses​

A list of Addresses

application/json
JSON
{
  
"meta": {
  
  
"timestamp": "string",
  
  
"items_page": "string",
  
  
"items_page_total": "string",
  
  
"items_page_size": "string",
  
  
"items_total": "string"
  
},
  
"items": [
  
  
{
  
  
  
"address": {
  
  
  
  
"id": "string",
  
  
  
  
"active": "string",
  
  
  
  
"created_at": "string",
  
  
  
  
"modified_at": "string",
  
  
  
  
"name": "string",
  
  
  
  
"street_1": "string",
  
  
  
  
"street_2": "string",
  
  
  
  
"suburb": "string",
  
  
  
  
"city": "string",
  
  
  
  
"region": "string",
  
  
  
  
"post_code": "string",
  
  
  
  
"country_id": "string",
  
  
  
  
"state": "string",
  
  
  
  
"longitude": "string",
  
  
  
  
"latitude": "string",
  
  
  
  
"for_resource": {
  
  
  
  
  
"Contact": {
  
  
  
  
  
  
"id": "string"
  
  
  
  
  
}
  
  
  
  
}
  
  
  
}
  
  
}
  
],
  
"messages": [
  
]
}

Samples​


Communication​

Records of communications with a contact — email, SMS, phone call, in-person conversation or letter — including their content and delivery status.


Get a Communication​

GET
/v2/communication

Authorizations​

bearerAuth
clientCredentials Flow
Token URL"https://api.ezyvet.com/v1/oauth/access_token"
Scopes:
  • "read-communication"Read communication resources

Parameters​

Query Parameters

uid

The unique identifier of the communication

Type
string
Example"communication_BPSHlXlBrdLKxqyVtEtcz"
associated_type

The name of the record type the Communication is directed at. Examples are 'Contact', 'Animal', 'Consult'.

Type
string
associated_id

The ID of the record the Communication is directed at.

Type
number
content_format

The format of the content. This will be one of the following: SMS, PlainText, HTML.

Type
string
Valid values
"SMS""PlainText""HTML"
status

The status of the Communication. This will be one of the following: Pending, Done, Sending, Failed.

Type
string
Valid values
"Pending""Done""Sending""Failed"
communicating_type

The name of the record type the Communication is communicating. Examples are 'Contact', 'Animal', 'Consult'.

Type
string
communicating_id

The ID of the record the Communication is communicating.

Type
number

Responses​

A list of Communications

application/json
JSON
{
  
"meta": {
  
  
"timestamp": "string",
  
  
"items_page": "string",
  
  
"items_page_total": "string",
  
  
"items_page_size": "string",
  
  
"items_total": "string"
  
},
  
"items": [
  
  
{
  
  
  
"communication": {
  
  
  
  
"id": 0,
  
  
  
  
"uid": "string",
  
  
  
  
"created_at": 0,
  
  
  
  
"modified_at": 0,
  
  
  
  
"active": true,
  
  
  
  
"associated_type": "string",
  
  
  
  
"associated_id": 0,
  
  
  
  
"contact_detail_type_id": 0,
  
  
  
  
"destination": "string",
  
  
  
  
"origin": "string",
  
  
  
  
"direction": "string",
  
  
  
  
"sent_as_user": {
  
  
  
  
  
"id": 0,
  
  
  
  
  
"created_at": 0,
  
  
  
  
  
"modified_at": 0,
  
  
  
  
  
"active": true,
  
  
  
  
  
"is_vet": true,
  
  
  
  
  
"is_salesperson": true,
  
  
  
  
  
"name": "string",
  
  
  
  
  
"code": "string"
  
  
  
  
},
  
  
  
  
"content": "string",
  
  
  
  
"content_format": "string",
  
  
  
  
"status": "string",
  
  
  
  
"subject": "string",
  
  
  
  
"communicating_type": "string",
  
  
  
  
"communicating_id": 0,
  
  
  
  
"template": {
  
  
  
  
  
"id": 0,
  
  
  
  
  
"created_at": 0,
  
  
  
  
  
"modified_at": 0,
  
  
  
  
  
"active": true,
  
  
  
  
  
"name": "string",
  
  
  
  
  
"type": "string",
  
  
  
  
  
"subtype": "string",
  
  
  
  
  
"additional_information": {
  
  
  
  
  
}
  
  
  
  
},
  
  
  
  
"read_at": 0
  
  
  
}
  
  
}
  
],
  
"messages": [
  
  
"string"
  
]
}

Samples​


Communication V4​


Records one or more sent communication records in bulk.​

POST
/v4/communication/sentCommunication

Accepts an array of communication records that have already been sent.
All communications are automatically marked as "Done" status and externally managed.

Authorizations​

bearerAuth
clientCredentials Flow
Token URL"https://api.ezyvet.com/v1/oauth/access_token"
Scopes:
  • "write-communication"Create and update communication resources

Request Body​

application/json
JSON
[
  
{
  
  
"associatedType": "Contact",
  
  
"associatedId": "contact_HfoQJT3F4pk4DPGPn131C",
  
  
"communicationType": "Email",
  
  
"destination": "demo@demo.com",
  
  
"direction": "Outgoing",
  
  
"content": "This is a reminder that Rader is due for their wellness exam.",
  
  
"contentFormat": "PlainText",
  
  
"subject": "Wellness Exam Reminder",
  
  
"userId": "user_B4vrE744DdwUXqFxHntAY",
  
  
"departmentId": "ownershipSeparation_wQU1jqt39kjns3XvzqXqL",
  
  
"communicationTimestamp": "2024-01-15T14:30:00Z",
  
  
"hospitalId": "hospital_apJEA7ntuKKhpa0a9Hlya",
  
  
"origin": "noreply@clinic.com"
  
}
]

Responses​

Successfully recorded communication(s)

Samples​


Contact​

Manages contact records for clients, owners, or other associated individuals.


Fetches a list containing Contacts​

GET
/v1/contact

Authorizations​

bearerAuth
clientCredentials Flow
Token URL"https://api.ezyvet.com/v1/oauth/access_token"
Scopes:
  • "read-contact"Read contact resources

Parameters​

Query Parameters

id

The ID number used by the system to uniquely identify a Contact.

active

If true, the Contact is active and usable in ezyVet.

created_at

The epoch time when the Contact was created.

modified_at

The epoch time when the Contact was last modified.

ownership_id

The ID of the ownership Separation to which this Contact belongs.

code

The custom code override for the Contact.

Type
string
first_name

The Contact's first name.

Type
string
last_name

The Contact's last/family name.

Type
string
business_name

The Contact's business name, if it is a business.

Type
string
is_business

If true, the Contact is a business.

is_customer

If true, the Contact is a customer.

is_supplier

If true, the Contact is a supplier.

is_vet

If true, the Contact is a vet.

is_syndicate

If true, the Contact is a syndicate.

is_staff_member

If true, the Contact is a staff member.

website

The Contact's website.

Type
string
address_postal

The unique identifier of the PostalAddress.

stop_credit

Specifies if the Contact can be invoiced: OK (invoiceable), WARNING (issues a warning when invoiced), STOP (cannot be invoiced).

Type
string
Valid values
"OK""WARNING""STOP"
limit

Sets the limit on the number of items returned (range: 1 - 50).

Default
10
page

Specifies the page number of the result.

Default
1
date_of_birth

The date of birth of the primary contact.

Type
number
Default
0
driver_license_number

The driver license number of the primary contact.

Type
string
Default
null
driver_license_issuer

The issuer of the driver license of the primary contact.

Type
string
Default
null
driver_license_expiry

The expiry date of the driver license of the primary contact.

Responses​

A list of Contacts.

application/json
JSON
{
  
"meta": {
  
  
"timestamp": "string",
  
  
"items_page": "string",
  
  
"items_page_total": "string",
  
  
"items_page_size": "string",
  
  
"items_total": "string"
  
},
  
"items": [
  
  
{
  
  
  
"contact": {
  
  
  
  
"id": "string",
  
  
  
  
"active": "string",
  
  
  
  
"created_at": "string",
  
  
  
  
"modified_at": "string",
  
  
  
  
"code": "string",
  
  
  
  
"first_name": "string",
  
  
  
  
"last_name": "string",
  
  
  
  
"business_name": "string",
  
  
  
  
"is_business": "string",
  
  
  
  
"is_customer": "string",
  
  
  
  
"is_supplier": "string",
  
  
  
  
"is_vet": "string",
  
  
  
  
"is_syndicate": "string",
  
  
  
  
"is_staff_member": "string",
  
  
  
  
"website": "string",
  
  
  
  
"stop_credit": "string",
  
  
  
  
"contact_detail_list": [
  
  
  
  
  
0
  
  
  
  
],
  
  
  
  
"address_physical": "string",
  
  
  
  
"address_postal": "string",
  
  
  
  
"date_of_birth": 0,
  
  
  
  
"driver_license_number": "string",
  
  
  
  
"driver_license_issuer": "string",
  
  
  
  
"driver_license_expiry": 0,
  
  
  
  
"ownership_id": "string"
  
  
  
}
  
  
}
  
],
  
"messages": [
  
]
}

Samples​


Contact Association​

Manages relationships or associations between contacts (e.g., owner and emergency contact).


Fetch a list of contact associations​

GET
/v1/contactassociation

Fetches a list of ContactAssociations.

Authorizations​

bearerAuth
clientCredentials Flow
Token URL"https://api.ezyvet.com/v1/oauth/access_token"
Scopes:
  • "read-contactassociation"Read contact association resources

Parameters​

Query Parameters

id

The ID number used by the system to uniquely identify a ContactAssociation.

Type
string
contact_id

The Contact to fetch the associated contact ids for

Type
string
Default
"61"
active

If true, the ContactAssociation is active and usable in ezyVet.

Type
string
created_at

The epoch time when the ContactAssociation was created.

Type
string
modified_at

The epoch time when the ContactAssociation was last modified.

Type
string
limit

Limits the number of items returned.

Type
number
Default
10
page

Specifies the page number of the result.

Type
number
Default
1

Responses​

A list of ContactAssociations.

application/json
JSON
{
  
"meta": {
  
  
"items_page": 0,
  
  
"items_page_total": 0,
  
  
"items_page_size": 0,
  
  
"items_total": 0,
  
  
"transaction_id": "string",
  
  
"timestamp": 0
  
},
  
"items": [
  
  
{
  
  
  
"contactassociation": {
  
  
  
  
"id": 0,
  
  
  
  
"created_at": 0,
  
  
  
  
"modified_at": 0,
  
  
  
  
"active": true,
  
  
  
  
"contact_id": 0,
  
  
  
  
"associatedcontact_id": 0,
  
  
  
  
"associationclass": "string"
  
  
  
}
  
  
}
  
],
  
"messages": [
  
  
"string"
  
]
}

Samples​


Contact Detail​

Handles specific details for contacts, such as phone numbers or email addresses.


Fetch a ContactDetail list​

GET
/v1/contactdetail

Fetches a list containing ContactDetail(s). (up to 10)

Authorizations​

bearerAuth
clientCredentials Flow
Token URL"https://api.ezyvet.com/v1/oauth/access_token"
Scopes:
  • "read-contactdetail"Read contact detail resources

Parameters​

Query Parameters

id

The ID number used by the system to uniquely identify a ContactDetail.

Type
string
active

If true, the ContactDetail is active and usable in ezyVet.

Type
boolean
Default
true
created_at

The epoch time when the ContactDetail was created.

Type
string
modified_at

The epoch time when the ContactDetail was last modified.

Type
string
name

The name of the ContactDetail, such as "Home Phone" or "Business E-mail".

Type
string
value

The value of the ContactDetail, such as the number, or the email (depending on its ContactDetailType).

Type
string
value_cleaned

The value of the ContactDetail record which has been cleaned of all special characters and prefixed with the country code. This filter can be used for phone or fax numbers but it should not be used for email addresses.

Type
string
contact_id

The ID of the Contact to whom this ContactDetail is assigned.

Type
string
contact_detail_type_id

The ID of the ContactDetailType of this ContactDetail.

Type
string
preferred

If true, this ContactDetail is a preferred contact method for the related Contact.

Type
boolean
Default
false
subscription_groups

A list of subscription groups that this ContactDetail is subscribed to (General, Reminders, Accounts).

Type
array

Responses​

Successful response

application/json
JSON
{
  
"meta": {
  
  
"timestamp": "string",
  
  
"items_page": "string",
  
  
"items_page_total": "string",
  
  
"items_page_size": "string",
  
  
"items_total": "string"
  
},
  
"items": [
  
  
{
  
  
  
"contactdetail": {
  
  
  
  
"id": "string",
  
  
  
  
"active": true,
  
  
  
  
"created_at": "string",
  
  
  
  
"modified_at": "string",
  
  
  
  
"name": "string",
  
  
  
  
"value": "string",
  
  
  
  
"contact_id": "string",
  
  
  
  
"value_cleaned": "string",
  
  
  
  
"contact_detail_type_id": "string",
  
  
  
  
"preferred": false,
  
  
  
  
"subscription_groups": [
  
  
  
  
  
"string"
  
  
  
  
]
  
  
  
}
  
  
}
  
],
  
"messages": [
  
]
}

Samples​


Contact Detail Type​

Defines types of contact details (e.g., home phone, work email).


Fetch a ContactDetailType list​

GET
/v1/contactdetailtype

Fetches a list containing ContactDetailType(s). (up to 10)

Authorizations​

bearerAuth
clientCredentials Flow
Token URL"https://api.ezyvet.com/v1/oauth/access_token"
Scopes:
  • "read-contactdetailtype"Read contact detail type resources

Parameters​

Query Parameters

id

The ID number used by the system to uniquely identify an ContactDetailType.

active

If true, the ContactDetailType is active and usable in ezyVet.

created_at

The epoch time when the ContactDetailType was created.

modified_at

The epoch time when the ContactDetailType was last modified.

name

The name of the ContactDetailType.

Type
string

Responses​

Successful response

application/json
JSON
{
  
"meta": {
  
  
"timestamp": "string",
  
  
"items_page": "string",
  
  
"items_page_total": "string",
  
  
"items_page_size": "string",
  
  
"items_total": "string"
  
},
  
"items": [
  
  
{
  
  
  
"contactdetailtype": {
  
  
  
  
"id": "string",
  
  
  
  
"active": "string",
  
  
  
  
"created_at": "string",
  
  
  
  
"modified_at": "string",
  
  
  
  
"name": "string"
  
  
  
}
  
  
}
  
],
  
"messages": [
  
]
}

Samples​


Country​

Manages country data for addresses.


Fetch a Country list​

GET
/v1/country

Fetches a list containing Country(s). (up to 10)

Authorizations​

bearerAuth
clientCredentials Flow
Token URL"https://api.ezyvet.com/v1/oauth/access_token"
Scopes:
  • "read-country"Read country resources

Parameters​

Query Parameters

id

The ID number used by the system to uniquely identify a Country.

Type
string
active

If true, the Country is active and usable in ezyVet.

Type
string
created_at

The epoch time when the Country was created.

Type
string
modified_at

The epoch time when the Country was last modified.

Type
string
name

The name of the Country.

Type
string
limit

Limits the number of items returned.

Type
string
Default
10
page

Specifies the page number of the result.

Type
string
Default
1

Responses​

A list of countries

application/json
JSON
{
  
"meta": {
  
  
"timestamp": "string",
  
  
"items_page": "string",
  
  
"items_page_total": "string",
  
  
"items_page_size": "string",
  
  
"items_total": "string"
  
},
  
"items": [
  
  
{
  
  
  
"country": {
  
  
  
  
"id": "string",
  
  
  
  
"active": "string",
  
  
  
  
"created_at": 0,
  
  
  
  
"modified_at": 0,
  
  
  
  
"name": "string"
  
  
  
}
  
  
}
  
],
  
"messages": [
  
  
{
  
  
}
  
]
}

Samples​


Contact V2​

An updated version of contact management with additional features or fields.


Fetches a list containing Contacts​

GET
/v2/contact

Authorizations​

bearerAuth
clientCredentials Flow
Token URL"https://api.ezyvet.com/v1/oauth/access_token"
Scopes:
  • "read-contact"Read contact resources

Parameters​

Query Parameters

id

The ID number used by the system to uniquely identify a Contact.

Type
string
uid

The globally unique identifier to identify a Contact.

Type
string
created_at

The epoch time when the Contact was created.

Type
string
modified_at

The epoch time when the Contact was last modified.

Type
string
active

If true, the Contact is active and usable in ezyVet.

Type
string
code

The custom code override for the Contact.

Type
string
first_name

The Contact's first name.

Type
string
last_name

The Contact's last/family name.

Type
string
business_name

The Contact's business name, if it is a business.

Type
string
is_customer

If true, the Contact is a customer.

Type
string
is_vet

If true, the Contact is a vet.

Type
string
is_supplier

If true, the Contact is a supplier.

Type
string
is_syndicate

If true, the Contact is a syndicate.

Type
string
is_staff_member

If true, the Contact is a staff member.

Type
string
stop_credit

Specifies if the Contact can be invoiced: OK (invoiceable), WARNING (issues a warning when invoiced), STOP (cannot be invoiced).

Type
string
Valid values
"OK""WARNING""STOP"
website

The Contact's website.

Type
string
address_physical

The unique identifier of the PhysicalAddress.

Type
string
address_postal

The unique identifier of the PostalAddress.

Type
string

Responses​

Successful response

application/json
JSON
{
  
"meta": {
  
  
"timestamp": "string"
  
},
  
"items": [
  
  
{
  
  
  
"contact": {
  
  
  
  
"id": 0,
  
  
  
  
"uid": "string",
  
  
  
  
"created_at": 0,
  
  
  
  
"modified_at": 0,
  
  
  
  
"active": true,
  
  
  
  
"code": "string",
  
  
  
  
"first_name": "string",
  
  
  
  
"last_name": "string",
  
  
  
  
"business_name": "string",
  
  
  
  
"is_customer": true,
  
  
  
  
"is_business": true,
  
  
  
  
"is_vet": true,
  
  
  
  
"is_supplier": true,
  
  
  
  
"is_syndicate": true,
  
  
  
  
"is_staff_member": true,
  
  
  
  
"stop_credit": "string",
  
  
  
  
"website": "string",
  
  
  
  
"address_physical": 0,
  
  
  
  
"address_postal": 0,
  
  
  
  
"contact_detail_list": [
  
  
  
  
  
{
  
  
  
  
  
  
"id": 0,
  
  
  
  
  
  
"name": "string",
  
  
  
  
  
  
"type_id": 0,
  
  
  
  
  
  
"preferred": true,
  
  
  
  
  
  
"value": "string",
  
  
  
  
  
  
"value_cleaned": "string"
  
  
  
  
  
}
  
  
  
  
]
  
  
  
}
  
  
}
  
],
  
"messages": [
  
]
}

Samples​


Contact V4​

Contact management for customers, vets, suppliers and businesses. Version 4.0 uses token
pagination and returns each contact's addresses, emails, phones, subscriptions and associations
as nested objects.

Filterable columns on GET /v4/contact and the shapes they accept:

Column Accepted value
id scalar — exact match
active scalar — exact match (0 or 1)
code scalar — exact match
name scalar — exact match
createdAt URL-encoded JSON comparator object (eq/gt/lt/gte/lte)
updatedAt URL-encoded JSON comparator object (eq/gt/lt/gte/lte)

Only createdAt and updatedAt accept the comparator object described in the
filtering guide; note that v4 date
filters take RFC-3339 instants (2024-05-17T13:00:00Z), not the Unix epoch values shown
there. Every other filter is scalar exact-match only — sending a comparator object for one is
not supported.

Contact associations

A contact association is a link between two contacts (the UI's Associated Contacts, e.g. a
referring vet linked to a referral clinic, or two household members). It is stored as two
directional rows, A → B and B → A, which always share type; description is
per direction. Associations are exposed nested on the contact, never as a separate resource:

  • Every Contact carries associations[]: the contact's active outgoing rows, one per associated
    contact, whose contactId is the other party (the parent is implied). Each entry has its
    own id, and pairId identifies the reciprocal row on the other contact. Inactive (deleted)
    associations are not listed. The per-contact internal SELF row is never exposed.
  • PATCH /v4/contact/{id} with associations[] replaces the contact's active associations
    with the list sent, keyed by contactId (the same model as roles on
    PATCH /v4/user/{id}): entries with no active association are created (or revive a previously
    deactivated pair between the same contacts), entries matching an active association are updated
    in place, and active associations not in the list are deactivated. [] deactivates them
    all; omitting the field leaves them unchanged. Both rows of every affected pair are written in
    one transaction, and the call is idempotent.
  • POST /v4/contact accepts the same associations[] to link a new contact on creation.
  • referring-vet-management is a workflow scope that grants every v4 contact operation (like
    user-management on the user endpoints), so a referring-vet integration needs only that
    scope; the resource scopes read-contact / write-contact work as before. onBillPercent
    is read-only in this release.
  • Creating, reviving or deactivating an association re-indexes both contacts for search, so the
    linked contact appears in ezyVet's Referring Vet pickers shortly after the call.

List all contacts​

GET
/v4/contact

Retrieve a paginated list of all contacts with optional filtering.

Returns complete contact data including addresses, emails, phones, and subscriptions (same as individual contact endpoints). Successful responses include meta (with nextToken when another page exists).

Pagination (same pattern as GET /v4/species): On the first page, send pageSize and any list filters as query parameters. The nextToken value is a Base64URL-encoded JSON object that embeds lastContactId, pageSize, and a snapshot of the supported filters (id, active, createdAt, updatedAt, code, name). For the next page, send only nextToken (plus optional infrastructure keys such as _ezyhost); do not repeat pageSize or list filters in the query string.

Authorizations​

bearerAuth
clientCredentials Flow
Token URL"https://api.ezyvet.com/v1/oauth/access_token"
Scopes:
  • "read-contact"Read contact resources
or
bearerAuth
clientCredentials Flow
Token URL"https://api.ezyvet.com/v1/oauth/access_token"
Scopes:
  • "referring-vet-management"Workflow scope for referring-vet integrations; grants every v4 contact operation (GET/POST /v4/contact, GET/PATCH /v4/contact/{id})

Parameters​

Query Parameters

pageSize

Sets the number of items to be returned in each page. Default is 2000, Limit is 2000.

Type
integer
Example200
Default
2000
Maximum
2000
nextToken

Opaque Base64URL token for the next page. Embeds lastContactId, pageSize, and the supported list filters from the request that produced it (same pattern as GET /v4/species). When using nextToken, send only nextToken in the query string (no pageSize or list filters).

Type
string
Example"AB3e7Z2i9FJu0j7hLExLp"
id

Filter by contact UID (contact_uid) — exact match only.

Type
string
active

Filter by active flag — exact match only. 1 returns active contacts; 0 returns inactive contacts (stored as contactdata_active IS NULL for v1 parity, so 0 matches NULL as well as any legacy literal 0).

Type
string
createdAt

Filter by created time (contact_time). Value is a URL-encoded JSON object keyed by comparator, per the IDEXX API filtering standard. Supported comparators: eq, gt, lt, gte, lte. Multiple comparators may be combined in one object to express a range (e.g. gte + lte). Examples (raw JSON, before URL-encoding):

  • exact match — createdAt={"eq":"2022-01-05T23:23:43Z"}
  • one-week range — createdAt={"gte":"2024-05-17T00:00:00Z","lte":"2024-05-24T00:00:00Z"}

Each value must be a strict RFC-3339 instant: YYYY-MM-DD + T + HH:MM:SS (seconds required) + Z or ±HH:MM (colon required). Lowercase z, compact ±HHMM, missing seconds, fractional seconds, epoch-seconds, date-only, and bare non-JSON scalars all return 400 Bad Request. Unknown comparator keys (neq, in, between, etc.) also return 400 Bad Request.

Type
string
Example{"gte":"2024-05-17T13:00:00Z","lte":"2024-05-24T00:00:00Z"}
updatedAt

Filter by last updated time (contactdata_time). Value is a URL-encoded JSON object keyed by comparator, per the IDEXX API filtering standard. Supported comparators: eq, gt, lt, gte, lte. Multiple comparators may be combined in one object to express a range (e.g. gte + lte). Examples (raw JSON, before URL-encoding):

  • exact match — updatedAt={"eq":"2022-01-05T23:23:43Z"}
  • one-week range — updatedAt={"gte":"2024-05-17T00:00:00Z","lte":"2024-05-24T00:00:00Z"}

Each value must be a strict RFC-3339 instant: YYYY-MM-DD + T + HH:MM:SS (seconds required) + Z or ±HH:MM (colon required). Lowercase z, compact ±HHMM, missing seconds, fractional seconds, epoch-seconds, date-only, and bare non-JSON scalars all return 400 Bad Request. Unknown comparator keys (neq, in, between, etc.) also return 400 Bad Request.

Type
string
Example{"gte":"2024-05-17T13:00:00Z","lte":"2024-05-24T00:00:00Z"}
code

Filter by contact code (contactdata_code) — exact match only.

Type
string
name

Filter by contact name (contactdata_name) — exact match only.

Type
string

Responses​

Contacts retrieved successfully

application/json
JSON
{
  
"meta": {
  
  
"nextToken": "AB3e7Z2i9FJu0j7hLExLp"
  
},
  
"data": [
  
  
{
  
  
  
"id": "contact-abc123",
  
  
  
"legacyId": 1,
  
  
  
"code": "CUST001",
  
  
  
"name": "John Smith",
  
  
  
"title": "Mr",
  
  
  
"first": "John",
  
  
  
"last": "Smith",
  
  
  
"secondaryTitle": "Mrs",
  
  
  
"secondaryFirst": "Jane",
  
  
  
"secondaryLast": "Smith",
  
  
  
"website": "https://johnsmith.com",
  
  
  
"confirmed": true,
  
  
  
"notes": "Preferred customer",
  
  
  
"active": true,
  
  
  
"hospitalUid": "hosp-9z8y7x",
  
  
  
"ownershipseparationUid": "ownsep-1a2b3c",
  
  
  
"isBusiness": false,
  
  
  
"isCustomer": true,
  
  
  
"isSupplier": false,
  
  
  
"isVet": false,
  
  
  
"isSyndicate": false,
  
  
  
"isStaffMember": false,
  
  
  
"isPharmacy": false,
  
  
  
"associations": [
  
  
  
  
{
  
  
  
  
  
"id": "contactAssociation_7AZREcNqie6sMZAQ63J6J",
  
  
  
  
  
"legacyId": 220,
  
  
  
  
  
"contactId": "contact_DIV2GTZ2YTimamjTOHdTA",
  
  
  
  
  
"type": "Employment",
  
  
  
  
  
"onBillPercent": 0,
  
  
  
  
  
"pairId": "contactAssociation_cBPqqQGMZ6z6J9Up4cPuH",
  
  
  
  
  
"createdAt": "2026-05-09T02:29:54Z",
  
  
  
  
  
"updatedAt": "2026-05-09T02:29:54Z"
  
  
  
  
}
  
  
  
],
  
  
  
"createdAt": "2024-01-15T10:30:00Z",
  
  
  
"updatedAt": "2024-01-16T14:45:00Z",
  
  
  
"addressPhysical": {
  
  
  
  
"id": 1,
  
  
  
  
"name": "John Smith Home",
  
  
  
  
"street1": "123 Main Street",
  
  
  
  
"city": "Los Angeles",
  
  
  
  
"state": "California",
  
  
  
  
"postcode": "90210",
  
  
  
  
"country": "United States"
  
  
  
},
  
  
  
"emails": [
  
  
  
  
{
  
  
  
  
  
"emailId": "email_abc123def456",
  
  
  
  
  
"legacyId": 1,
  
  
  
  
  
"name": "Primary Email",
  
  
  
  
  
"content": "john@example.com",
  
  
  
  
  
"subscriptions": [
  
  
  
  
  
  
{
  
  
  
  
  
  
  
"name": "General"
  
  
  
  
  
  
}
  
  
  
  
  
]
  
  
  
  
}
  
  
  
],
  
  
  
"phones": [
  
  
  
  
{
  
  
  
  
  
"phoneId": "phone_xyz789ghi012",
  
  
  
  
  
"legacyId": 1,
  
  
  
  
  
"name": "Mobile Phone",
  
  
  
  
  
"content": "+16502530000",
  
  
  
  
  
"subscriptions": [
  
  
  
  
  
  
{
  
  
  
  
  
  
  
"name": "General"
  
  
  
  
  
  
}
  
  
  
  
  
]
  
  
  
  
}
  
  
  
]
  
  
}
  
],
  
"errors": [
  
]
}

Samples​


Contact Detail V2​

An updated version of contact detail management with enhanced functionality.


Fetch a ContactDetail list​

GET
/v2/contactdetail

Authorizations​

bearerAuth
clientCredentials Flow
Token URL"https://api.ezyvet.com/v1/oauth/access_token"
Scopes:
  • "read-contactdetail"Read contact detail resources

Parameters​

Query Parameters

id

The ID number used by the system to uniquely identify a ContactDetail.

Type
number
active

If true, the ContactDetail is active and usable in ezyVet.

Type
boolean
Default
true
created_at

The epoch time when the ContactDetail was created.

Type
number
modified_at

The epoch time when the ContactDetail was last modified.

Type
number
name

The name of the ContactDetail, such as 'Home Phone' or 'Business E-mail'.

Type
string
value

The value of the ContactDetail, such as the number, or the email (depending on its ContactDetailType).

Type
string
value_cleaned

The value of the ContactDetail record which has been cleaned of all special characters and prefixed with the country code. This filter can be used for phone or fax numbers but it should not be used for email addresses.

Type
string
contact_id

The ID of the Contact to whom this ContactDetail is assigned.

Type
number
type_id

The ID of the ContactDetailType of this ContactDetail.

Type
number
preferred

If true, this ContactDetail is a preferred contact method for the related Contact.

Type
boolean
Default
false

Responses​

A list of ContactDetails

application/json
JSON
{
  
"meta": {
  
  
"timestamp": "string",
  
  
"items_page": "string",
  
  
"items_page_total": "string",
  
  
"items_page_size": "string",
  
  
"items_total": "string"
  
},
  
"items": [
  
  
{
  
  
  
"contactdetail": {
  
  
  
  
"id": 0,
  
  
  
  
"uid": "string",
  
  
  
  
"active": true,
  
  
  
  
"created_at": 0,
  
  
  
  
"modified_at": 0,
  
  
  
  
"name": "string",
  
  
  
  
"value": "string",
  
  
  
  
"contact_id": 0,
  
  
  
  
"contact_uid": "string",
  
  
  
  
"value_cleaned": "string",
  
  
  
  
"type_id": "string",
  
  
  
  
"preferred": false
  
  
  
}
  
  
}
  
],
  
"messages": [
  
]
}

Samples​


Powered by VitePress OpenAPI