Digitail Reports API
Retrieve reporting data and tags for building dashboards and financial, operational, and performance analytics on top of clinic data.
Retrieve reporting data and tags for building dashboards and financial, operational, and performance analytics on top of clinic data.
openapi: 3.0.3
info:
title: Digitail Open API
version: v1
description: >-
Modeled OpenAPI for the Digitail Open API, a documented REST API for the
Digitail cloud veterinary practice management platform (PIMS). The base URL,
OAuth 2.0 authorization-code + PKCE authentication, JSON media types,
page/per_page pagination, and the 200 requests-per-minute rate limit are
taken from the public documentation at https://documentation.digitail.io/.
Endpoints marked with x-endpoints-modeled are inferred from the documented
resource categories and standard REST conventions rather than verified
against per-endpoint reference pages. Confirmed endpoints (pets,
appointments, vets, clinics) were verified against the public reference.
Obtain OAuth client credentials via the API access registration at
https://digitail.com/api/access.
contact:
name: API Evangelist
email: kin@apievangelist.com
x-endpoints-modeled: true
externalDocs:
description: Digitail API Documentation
url: https://documentation.digitail.io/
servers:
- url: https://developer.digitail.io/api/v1
description: Digitail Open API v1
security:
- oauth2: []
components:
securitySchemes:
oauth2:
type: oauth2
description: >-
OAuth 2.0 authorization-code grant with PKCE. Bearer access token is
long-lived; a refresh token is also returned.
flows:
authorizationCode:
authorizationUrl: https://vet.digitail.io/oauth/authorize
tokenUrl: https://vet.digitail.io/oauth/token
refreshUrl: https://vet.digitail.io/oauth/token
scopes: {}
parameters:
page:
name: page
in: query
description: Page number (default 1).
required: false
schema:
type: integer
default: 1
minimum: 1
perPage:
name: per_page
in: query
description: Results per page (default 15).
required: false
schema:
type: integer
default: 15
minimum: 1
clinicIdFilter:
name: filter[clinic_id]
in: query
description: Filter results by clinic ID.
required: false
schema:
type: integer
idPath:
name: id
in: path
description: Resource identifier.
required: true
schema:
type: integer
responses:
Paginated:
description: A paginated list of resources.
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
type: object
meta:
type: object
properties:
current_page:
type: integer
per_page:
type: integer
total:
type: integer
Resource:
description: A single resource.
content:
application/json:
schema:
type: object
TooManyRequests:
description: Rate limit exceeded (200 requests per minute).
Unauthorized:
description: Missing or invalid OAuth 2.0 bearer token.
paths:
/pets:
get:
operationId: listPets
summary: List all pets
description: List patient records (pets). Confirmed endpoint.
tags: [Pets]
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
- $ref: '#/components/parameters/clinicIdFilter'
responses:
'200':
$ref: '#/components/responses/Paginated'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
/pets/{id}:
get:
operationId: retrievePet
summary: Retrieve a pet
description: Retrieve a single patient record. Confirmed endpoint.
tags: [Pets]
parameters:
- $ref: '#/components/parameters/idPath'
responses:
'200':
$ref: '#/components/responses/Resource'
'401':
$ref: '#/components/responses/Unauthorized'
/appointments:
get:
operationId: listAppointments
summary: Get all appointments
description: List appointments. Confirmed endpoint.
tags: [Appointments]
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
responses:
'200':
$ref: '#/components/responses/Paginated'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/TooManyRequests'
/appointments/{id}:
get:
operationId: retrieveAppointment
summary: Retrieve an appointment
description: Retrieve a single appointment. Confirmed endpoint.
tags: [Appointments]
parameters:
- $ref: '#/components/parameters/idPath'
responses:
'200':
$ref: '#/components/responses/Resource'
'401':
$ref: '#/components/responses/Unauthorized'
/appointment/{id}/change-status:
put:
operationId: changeAppointmentStatus
summary: Change appointment status
description: Change the status of an appointment. Confirmed endpoint.
tags: [Appointments]
parameters:
- $ref: '#/components/parameters/idPath'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
status:
type: string
responses:
'200':
$ref: '#/components/responses/Resource'
'401':
$ref: '#/components/responses/Unauthorized'
/vets/{id}:
get:
operationId: retrieveVet
summary: Retrieve a vet
description: Retrieve a single veterinarian record. Confirmed endpoint.
tags: [Vets]
parameters:
- $ref: '#/components/parameters/idPath'
responses:
'200':
$ref: '#/components/responses/Resource'
'401':
$ref: '#/components/responses/Unauthorized'
/clinic/{id}:
get:
operationId: retrieveClinic
summary: Retrieve a clinic
description: Retrieve a single clinic record. Confirmed endpoint.
tags: [Clinics]
parameters:
- $ref: '#/components/parameters/idPath'
responses:
'200':
$ref: '#/components/responses/Resource'
'401':
$ref: '#/components/responses/Unauthorized'
/pet-parents:
get:
operationId: listPetParents
summary: List pet parents
description: List pet parents (owners). Modeled from the documented Pet Parents resource.
tags: [Pet Parents]
x-endpoints-modeled: true
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
responses:
'200':
$ref: '#/components/responses/Paginated'
/clients:
get:
operationId: listClients
summary: List clients
description: List client accounts. Modeled from the documented Clients resource.
tags: [Clients]
x-endpoints-modeled: true
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
responses:
'200':
$ref: '#/components/responses/Paginated'
/invoices:
get:
operationId: listInvoices
summary: List invoices
description: List invoices. Modeled from the documented Invoices resource.
tags: [Invoices]
x-endpoints-modeled: true
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
responses:
'200':
$ref: '#/components/responses/Paginated'
/charges:
get:
operationId: listCharges
summary: List charges
description: List charges. Modeled from the documented Charges resource.
tags: [Charges]
x-endpoints-modeled: true
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
responses:
'200':
$ref: '#/components/responses/Paginated'
/sales:
get:
operationId: listSales
summary: List sales
description: List sales. Modeled from the documented Sales resource.
tags: [Sales]
x-endpoints-modeled: true
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
responses:
'200':
$ref: '#/components/responses/Paginated'
/labs:
get:
operationId: listLabs
summary: List labs
description: List lab orders and results. Modeled from the documented Labs resource.
tags: [Labs]
x-endpoints-modeled: true
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
responses:
'200':
$ref: '#/components/responses/Paginated'
/records:
get:
operationId: listRecords
summary: List medical records
description: List medical records. Modeled from the documented Records resource.
tags: [Records]
x-endpoints-modeled: true
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
responses:
'200':
$ref: '#/components/responses/Paginated'
/prescriptions:
get:
operationId: listPrescriptions
summary: List prescriptions
description: List prescriptions. Modeled from the documented Prescriptions resource.
tags: [Prescriptions]
x-endpoints-modeled: true
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
responses:
'200':
$ref: '#/components/responses/Paginated'
/medication:
get:
operationId: listMedication
summary: List medication
description: List medications. Modeled from the documented Medication resource.
tags: [Medication]
x-endpoints-modeled: true
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
responses:
'200':
$ref: '#/components/responses/Paginated'
/files:
get:
operationId: listFiles
summary: List files
description: List files and attachments. Modeled from the documented Files resource.
tags: [Files]
x-endpoints-modeled: true
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
responses:
'200':
$ref: '#/components/responses/Paginated'
/reports:
get:
operationId: listReports
summary: List reports
description: Retrieve reporting data. Modeled from the documented Reports resource.
tags: [Reports]
x-endpoints-modeled: true
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
responses:
'200':
$ref: '#/components/responses/Paginated'
/species:
get:
operationId: listSpecies
summary: List species
description: List species reference data. Modeled from the documented Species resource.
tags: [Species]
x-endpoints-modeled: true
responses:
'200':
$ref: '#/components/responses/Paginated'
/breeds:
get:
operationId: listBreeds
summary: List breeds
description: List breed reference data. Modeled from the documented Breeds resource.
tags: [Breeds]
x-endpoints-modeled: true
responses:
'200':
$ref: '#/components/responses/Paginated'
/visit-types:
get:
operationId: listVisitTypes
summary: List visit types
description: List visit types. Modeled from the documented Visit Types resource.
tags: [Visit Types]
x-endpoints-modeled: true
responses:
'200':
$ref: '#/components/responses/Paginated'