Skip to content

List Bookable Slots

Returns the bookable slots for a provider and clinic over a date range — the appointment times you can pass to Create Appointment.

Endpoint

GET /v2/slots

Query Parameters

Parameter Type Required Description
provider_id string Yes The treating provider.
clinic_id string Yes The clinic this record belongs to.
appointment_type_id string No The appointment type, from List Appointment Types. A single id, not a list.
from string (date) Yes YYYY-MM-DD.
to string (date) Yes YYYY-MM-DD.

Request

curl --location '{base_url}/v2/slots?provider_id=2094&clinic_id=5831&from=2026-08-27&to=2026-08-27' \
  --header 'Authorization: Bearer JWT_TOKEN'

Response

Success Response

Code: 200 OK

[
  {
    "provider_id": "2094",
    "clinic_id": "5831",
    "appointment_type_id": "318",
    "start_time": "2026-08-27T14:30:00Z",
    "end_time": "2026-08-27T14:30:00Z"
  }
]

Error Response

Code: 400 Bad Request

{
  "code": "bad_request",
  "message": "Validation failed",
  "errors": [
    {
      "field": "patient_id",
      "message": "must be a string"
    }
  ]
}

Every error has the same shape — a machine-readable code, a message, and an errors[] array that's empty when there's nothing field-specific to report. The HTTP status is authoritative.

Status code Meaning
400 Bad Request bad_request The request body or parameters failed validation. errors[] names the offending fields.
401 Unauthorized unauthorized The access token is missing, malformed or expired.
403 Forbidden forbidden The request references a resource outside the token's organisation or clinic scope.
404 Not Found not_found No such resource, or it's outside your scope.
429 Too Many Requests rate_limited Rate limit exceeded. Back off and retry.
500 Internal Server Error internal_error Unexpected server error.
502 Bad Gateway upstream_error Upstream service failed or timed out.