Digitail Files API
Upload, attach, and retrieve files and documents - such as imaging, scanned records, and attachments - tied to pets, clients, and records.
Upload, attach, and retrieve files and documents - such as imaging, scanned records, and attachments - tied to pets, clients, and records.
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'