Skip to content

List Clinics

Lists the organisation's clinics.

Endpoint

GET /v2/clinics

Query Parameters

Parameter Type Required Description
page integer Yes 1-based page number. Defaults to 1.
page_size integer Yes Results per page. Defaults to 25.
status string No ONBOARDING until the record is published, then ACTIVE; INACTIVE once deleted. One of ONBOARDING, ACTIVE, INACTIVE.

Request

curl --location '{base_url}/v2/clinics?page=1&page_size=25' \
  --header 'Authorization: Bearer JWT_TOKEN'

Response

Success Response

Code: 200 OK

{
  "items": [
    {
      "id": "5831",
      "onboarding_clinic_id": "b41f7c92-5e08-4a13-8d6f-2c9147ab3e5d",
      "organisation_id": "7412",
      "name": "Example Therapy \u2014 Riverside",
      "email": "frontdesk@example.com",
      "phone": "+1-555-0143",
      "fax": null,
      "address": {
        "line1": "482 Willow Creek Rd",
        "line2": null,
        "city": "Fairview",
        "state": "OR",
        "postal_code": "97024",
        "country": "US"
      },
      "timezone": "America/Los_Angeles",
      "npi": "1740398215",
      "logo_url": "https://assets.example.com/logo.png",
      "about": null,
      "specialities": [
        "PT",
        "OT"
      ],
      "hours": [
        {
          "days_of_week": [
            "MONDAY",
            "TUESDAY"
          ],
          "start_time": "08:00",
          "end_time": "17:00"
        }
      ],
      "online_booking_enabled": true,
      "max_visits_per_slot": 3,
      "status": "ACTIVE",
      "created_at": "2026-08-27T14:30:00Z",
      "updated_at": "2026-08-27T14:30:00Z"
    }
  ],
  "page": 1,
  "page_size": 25,
  "total": 1,
  "total_pages": 1
}

Response Fields

Field Type Description
items array of object The page of results. See Items.
page integer 1-based page number.
page_size integer Results per page.
total integer Total results matching the query.
total_pages integer Total pages available.

Items

Field Type Description
id string or null The clinic id. null while status is ONBOARDING — no operational record exists yet, which is what stops an unpublished clinic being referenced in a booking.
onboarding_clinic_id string or null The clinic's onboarding-record UUID. Always present for clinics created through onboarding, and the only way to address one before it's published.
organisation_id string or null The organisation this record belongs to. Derived from the access token on writes and never trusted from the body.
name string
email string or null
phone string or null
fax string or null
address object or null See Address.
timezone string or null IANA timezone name.
npi string or null The clinic's NPI, resolved from the organization's default billing profile. Read-only; changes when the default billing profile or its NPI changes.
logo_url string or null
about string or null
specialities array of string
hours array of object Working hours, as one entry per distinct daily pattern. See Hours.
online_booking_enabled boolean Whether this record is bookable through online booking.
max_visits_per_slot integer or null
status string ONBOARDING until the record is published, then ACTIVE; INACTIVE once deleted. One of ONBOARDING, ACTIVE, INACTIVE.
created_at string (date-time) or null
updated_at string (date-time) or null

Address

Field Type Description
line1 string or null
line2 string or null
city string or null
state string or null
postal_code string or null
country string or null

Hours

Field Type Description
days_of_week array of string Any of MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
start_time string Clock time, 24-hour HH:MM.
end_time string Clock time, 24-hour HH:MM.

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.