---
title: Get all Appointments
slug: get-all-appointments
docTags: 
createdAt: 2026-04-21T15:22:49.957Z
---

{
  "id": "YJ9Ooa_WhVgcae1xlIi_y",
  "type": "api-oas-v2",
  "data": {
    "method": "GET",
    "url": "https://developer.digitail.io/api/v1/appointments",
    "servers": [
      {
        "url": "https://developer.digitail.io/api/v1/appointments",
        "description": "Sandbox server (uses test data)"
      },
      {
        "url": "https://vet.digitail.io/api/v1/appointments",
        "description": "Production server (uses live data)"
      }
    ],
    "name": "Get all Appointments",
    "description": "<p>Permissions needed: VIEW_APPOINTMENTS\nGet all appointments in a given interval for a given clinic and vet</p>",
    "contentType": "application/json",
    "request": {
      "pathParameters": [],
      "headerParameters": [
        {
          "name": "accept",
          "type": "string",
          "kind": "optional",
          "description": "Generated from available response content types",
          "enum": [
            "application/json"
          ],
          "default": "application/json"
        }
      ],
      "queryParameters": [
        {
          "kind": "optional",
          "name": "filter[patient_id]",
          "type": "array",
          "description": "Ids of the patients that are related to the entity",
          "schema": [],
          "itemType": "integer",
          "customType": "integer[]"
        },
        {
          "kind": "optional",
          "name": "filter[visit_type_id]",
          "type": "string",
          "description": "Filter by visit type ID"
        },
        {
          "kind": "optional",
          "name": "filter[date_before]",
          "type": "string",
          "description": "<p>Appointments whose start time (<code>datetime_start_utc</code>) is on or before this date (Y-m-d). Filters on the appointment slot, not on when the appointment was created or updated. The whole supplied day is included, read in the clinic's timezone (up to and including 00</p><div></div> at the start of the next day).<p></p>"
        },
        {
          "kind": "optional",
          "name": "filter[date_after]",
          "type": "string",
          "description": "<p>Appointments whose start time (<code>datetime_start_utc</code>) is on or after this date (Y-m-d). Filters on the appointment slot, not on when the appointment was created or updated — use <code>filter[last_fetched]</code> for incremental sync by modification time.</p>"
        },
        {
          "kind": "optional",
          "name": "filter[date_after_utc]",
          "type": "string",
          "description": "<p>Appointments whose start time (<code>datetime_start_utc</code>) is strictly after this moment, read as UTC rather than the clinic's timezone. Format: <code>YYYY-MM-DD HH:MM:SS</code>. Unlike <code>filter[date_after]</code> this needs no clinic context, so it is the one to use when the request is not scoped to a single clinic.</p>"
        },
        {
          "kind": "optional",
          "name": "filter[statuses]",
          "type": "array",
          "description": "<p>Statuses of appointments to fetch. Options <code>0</code> - Pending <code>1</code> - Pending Client Approval <code>2</code> - Pending Clinic Approval <code>3</code> - Rescheduled Clinic Approval <code>4</code> - Rescheduled Client Approval <code>5</code> - Confirmed <code>6</code> - Canceled By Client <code>7</code> - Canceled By Clinic' <code>8</code> - Automatically Created' <code>9</code> - No Show</p>",
          "schema": [],
          "itemType": "integer",
          "customType": "integer[]"
        },
        {
          "kind": "optional",
          "name": "filter[source]",
          "type": "integer",
          "description": "<p>Where the appointment was booked from. Options <code>0</code> - Clinic <code>1</code> - Web <code>2</code> - Mobile app</p>"
        },
        {
          "kind": "optional",
          "name": "filter[patient.owners.id]",
          "type": "array",
          "description": "Pet Parent ID",
          "schema": [],
          "itemType": "integer",
          "customType": "integer[]"
        },
        {
          "kind": "optional",
          "name": "filter[date_between]",
          "type": "array",
          "description": "<p>Dates Between (start_date, end_date), format: YYYY-MM-DD</p>",
          "schema": [],
          "itemType": "string",
          "customType": "string[]"
        },
        {
          "kind": "optional",
          "name": "filter[date_between_utc]",
          "type": "array",
          "description": "<p>Same as <code>filter[date_between]</code>, but the supplied dates are interpreted as UTC rather than the clinic's timezone. Format: <code>YYYY-MM-DD,YYYY-MM-DD</code>.</p>",
          "schema": [],
          "itemType": "string",
          "customType": "string[]"
        },
        {
          "kind": "optional",
          "name": "filter[last_fetched]",
          "type": "string",
          "description": "<p>Returns appointments whose <code>updated_at</code> is strictly greater than this moment. Use this for incremental sync: it catches appointments modified since your last poll regardless of when they are scheduled. Send an ISO-8601 datetime; include the offset or a <code>Z</code> suffix (e.g. <code>2026-06-21T00:00:00Z</code>) so the moment is unambiguous — a value without one is read in the clinic's timezone. <code>updated_at</code> has one-second resolution and the comparison is exclusive, so subtract a small overlap (a minute is plenty) from your last cursor rather than passing it verbatim, otherwise a change written in the same second as your previous poll can be skipped.</p>"
        },
        {
          "kind": "optional",
          "name": "include",
          "type": "string",
          "description": "<p>Additional info to include. You can use multiple, comma separated. Options:\npatient, patient.species, patient.breed, patient.crossBreed, patient.owners, patient.owners.chatUser, patient.owners.appDownloadNotification, patient.owners.clients,\nroom, event, services (service-packages), visitType, visitType.tailsIntakeRule, visitType.defaultDropOffVet,\nclinic, clinic.chatUser, clinic.rooms, clinic.schedules, clinic.schedules.intervals,\nvet, vet.vetRolesAll, requests, notes, visit, activityLog, externalRefRecord, sentNotifications, toBeSentNotifications,\npaymentDeposits, paymentDeposits.paymentLinks, paymentDeposits.appointments, paymentDeposits.appointments.patient,\ndropOff, dropOff.vet</p>\n<p><code>service</code>, <code>service.serviceDetails</code> and <code>service.category</code> are still accepted for backwards\ncompatibility but return no data — use <code>services</code> instead. <code>consentForms</code> is only available on\n<code>GET /api/v1/appointments/{id}</code>.</p>"
        },
        {
          "kind": "optional",
          "name": "sort",
          "type": "string",
          "description": "<p>Sort by. You can use multiple, comma separated. Options: datetime_start_utc</p>"
        }
      ],
      "bodyDataParameters": [],
      "formDataParameters": [],
      "oAuthParameters": [
        {
          "id": "passport",
          "name": "passport",
          "kind": "optional",
          "type": "oauth2",
          "description": "Laravel passport oauth2 security.",
          "oauth2Flows": {
            "authorizationCode": {
              "authorizationUrl": "https://digitail.test/oauth/authorize",
              "tokenUrl": "https://digitail.test/oauth/token",
              "refreshUrl": "https://digitail.test/oauth/token"
            }
          }
        },
        {
          "id": "Bearer",
          "name": "Bearer",
          "kind": "optional",
          "type": "http",
          "scheme": "bearer"
        }
      ],
      "cookieParameters": []
    },
    "responses": [
      {
        "statusCode": "200",
        "description": "Successful operation",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "schema": [
              {
                "name": "data",
                "kind": "optional",
                "type": "array",
                "description": "",
                "modelRef": "#/paths/~1api~1v1~1appointments/post/responses/200/content/application~1json/schema/properties/data",
                "customType": "data[]",
                "schema": []
              }
            ],
            "isExpanded": true
          }
        ]
      }
    ],
    "hasXCodeSamples": false,
    "examples": {
      "languages": [
        {
          "id": "vMwp5rsPkbfCMRFs5K8KE",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request GET \\\n     --url https://developer.digitail.io/api/v1/appointments \\\n     --header 'accept: application/json'"
        },
        {
          "id": "airCGyE8GBRZVRYJPbny6",
          "language": "javascript",
          "label": "javascript",
          "code": "var myHeaders = new Headers();\nmyHeaders.append(\"accept\", \"application/json\");\nmyHeaders.append(\"content-type\", \"application/json\");\n\nvar requestOptions = {\n   method: 'GET',\n   headers: myHeaders,\n   redirect: 'follow'\n};\n\nfetch(\"https://developer.digitail.io/api/v1/appointments\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
        },
        {
          "id": "x9L-pPC7yTaae1aUYCOat",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://developer.digitail.io/api/v1/appointments\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Get.new(url)\nrequest[\"accept\"] = \"application/json\"\nrequest[\"content-type\"] = \"application/json\"\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "Iy7n89FE2vXpOML2Eo8FE",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"https://developer.digitail.io/api/v1/appointments\"\n\npayload = {}\nheaders = {\n   'accept': 'application/json',\n   'content-type': 'application/json'\n}\n\nresponse = requests.request(\"GET\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        }
      ],
      "selectedLanguageId": "vMwp5rsPkbfCMRFs5K8KE"
    },
    "results": {
      "languages": [
        {
          "id": "cacEYpQuYN1BbwMLhn1af",
          "language": "200",
          "code": "// Successful operation\n{\n  \"data\": [\n    \"\"\n  ]\n}"
        }
      ],
      "selectedLanguageId": "cacEYpQuYN1BbwMLhn1af"
    }
  },
  "children": [
    {
      "text": ""
    }
  ]
}