Digitail Files API

The Files API from Digitail — 1 operation(s) for files.

Operations 6

GET /api/v1/files List all Files #
POST /api/v1/files Create a File #
PUT /api/v1/files/{id} Update a File #
DELETE /api/v1/files/{id} Delete a File #
GET /api/v1/files/{id}/preview Preview a File #
GET /api/v1/files/{id}/download Download a File #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/digitail:digitail-files-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

digitail-files-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Digitail Files API
  description: Digitail API
  contact:
    email: developer@digitail.io
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.0.0
servers:
- url: https://developer.digitail.io
  description: Sandbox server (uses test data)
- url: https://vet.digitail.io
  description: Production server (uses live data)
security:
- passport: []
- Bearer: []
tags:
- name: Files
  description: Interact with uploaded files linked to a pet
paths:
  /api/v1/files:
    get:
      tags:
      - Files
      summary: List all Files
      description: 'Permissions needed: ACCESS_PATIENTS

        Returns list of all files associated with a pet or owner'
      parameters:
      - name: filter[pet_id]
        in: query
        description: Pet ID
        style: form
        explode: false
        required: true
        schema:
          type: integer
      - name: filter[owner_id]
        in: query
        schema:
          type: integer
      - name: filter[record_id]
        in: query
        explode: false
        schema:
          type: integer
      - name: filter[has_record]
        in: query
        explode: false
        schema:
          type: boolean
      - name: filter[allowed_extensions]
        in: query
        explode: true
        schema:
          type: array
          items:
            type: string
      - $ref: '#/paths/~1api~1v1~1vets/get/parameters/3'
      - name: filter[clinic_id]
        in: query
        description: Id of the clinics from where the entity was created
        style: form
        explode: false
        schema:
          type: integer
      - name: include
        in: query
        description: Additional info to include(vet, record, record.visitTypes)
        required: false
        schema:
          type: string
      - name: sort
        in: query
        description: 'Sorting(ex: ''real_name'', ''updated_at'')'
        required: false
        schema:
          type: string
      - $ref: '#/paths/~1api~1v1~1tags/get/parameters/5'
      - $ref: '#/paths/~1api~1v1~1pets/get/parameters/11'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/paths/~1api~1v1~1files/post/responses/201/content/application~1json/schema/properties/data'
                  links:
                    $ref: '#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/links'
                  meta:
                    $ref: '#/paths/~1api~1v1~1pets/get/responses/200/content/application~1json/schema/properties/meta'
        '400':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/400'
        '401':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/401'
        '403':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/403'
        '429':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/429'
      operationId: getApiV1Files
      x-operation-id-source: derived
    post:
      tags:
      - Files
      summary: Create a File
      description: 'Permissions needed: ACCESS_PATIENTS

        Upload a new file and attach it to a pet'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                payload:
                  type: object
                  description: send it as a stringified JSON
                  properties:
                    pet_id:
                      type: integer
                      example: 1
                      required: true
                    record_id:
                      type: integer
                      example: 1
                      required: false
                file:
                  type: string
                  format: binary
      responses:
        '201':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    title: File
                    description: A file that was uploaded to the system and that is linked to a pet. No more than 10MB in size. The file can be a photo, a document, a video, etc. A file can also be associated or not with a record.
                    properties:
                      id:
                        type: integer
                        example: 1
                      pet_id:
                        type: integer
                        example: 1
                      clinic_id:
                        type: integer
                        example: 766
                      file_id:
                        type:
                        - integer
                        - 'null'
                        description: The id of the record that the uploaded file is associated to.
                        example: null
                      name:
                        type: string
                        example: image.jpg
                      name_without_extension:
                        type: string
                        example: image
                      extension:
                        type: string
                        example: jpg
                      thumbnail:
                        type: string
                        example: https://vet.digitail.io/images/files/jpg.svg
                      updated_at:
                        type: string
                        format: date-time
                        example: '2021-10-05T12:52:53.000000Z'
                      download_url:
                        type: string
                        example: https://vet.digitail.io/api/v1/files/1/download
                      preview_url:
                        type: string
                        example: https://vet.digitail.io/api/v1/files/1/preview
        '400':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/400'
        '401':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/401'
        '403':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/403'
        '422':
          $ref: '#/paths/~1api~1v1~1plans/get/responses/422'
        '429':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/429'
      operationId: postApiV1Files
      x-operation-id-source: derived
  /api/v1/files/{id}:
    put:
      tags:
      - Files
      summary: Update a File
      description: 'Permissions needed: ACCESS_PATIENTS

        Update an existing files name.'
      parameters:
      - $ref: '#/paths/~1api~1v1~1sales/delete/parameters/0'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  example: My file
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/paths/~1api~1v1~1files/post/responses/201/content/application~1json/schema/properties/data'
        '400':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/400'
        '401':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/401'
        '403':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/403'
        '422':
          $ref: '#/paths/~1api~1v1~1plans/get/responses/422'
        '429':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/429'
      operationId: putApiV1FilesById
      x-operation-id-source: derived
    delete:
      tags:
      - Files
      summary: Delete a File
      description: 'Permissions needed: ACCESS_PATIENTS

        Completely delete a file from storage'
      parameters:
      - $ref: '#/paths/~1api~1v1~1sales/delete/parameters/0'
      responses:
        '204':
          $ref: '#/paths/~1api~1v1~1sales/delete/responses/204'
        '400':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/400'
        '401':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/401'
        '403':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/403'
        '429':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/429'
      operationId: deleteApiV1FilesById
      x-operation-id-source: derived
  /api/v1/files/{id}/preview:
    get:
      tags:
      - Files
      summary: Preview a File
      description: Preview a file
      parameters:
      - $ref: '#/paths/~1api~1v1~1sales/delete/parameters/0'
      responses:
        '200':
          content:
            text/html: {}
          title: OK
          description: The request has succeeded. The client can read the result of the request in the body and the headers of the response.
        '400':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/400'
        '401':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/401'
        '403':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/403'
        '429':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/429'
      operationId: getApiV1FilesByIdPreview
      x-operation-id-source: derived
  /api/v1/files/{id}/download:
    get:
      tags:
      - Files
      summary: Download a File
      description: Download a file from storage
      parameters:
      - $ref: '#/paths/~1api~1v1~1sales/delete/parameters/0'
      responses:
        '200':
          $ref: '#/paths/~1api~1v1~1files~1%7Bid%7D~1preview/get/responses/200'
          content:
            image/*: {}
            application/pdf: {}
        '400':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/400'
        '401':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/401'
        '403':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/403'
        '429':
          $ref: '#/paths/~1api~1v1~1pets/get/responses/429'
      operationId: getApiV1FilesByIdDownload
      x-operation-id-source: derived
components:
  securitySchemes:
    passport:
      type: oauth2
      description: Laravel passport oauth2 security.
      flows:
        authorizationCode:
          authorizationUrl: https://developer.digitail.io/oauth/authorize
          tokenUrl: https://developer.digitail.io/oauth/token
          refreshUrl: https://developer.digitail.io/oauth/token
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
x-provenance:
  method: harvested
  publisher: Digitail
  source: https://developer.digitail.io/api-docs
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)