---
title: "Get widget configuration for a clinic"
method: GET
path: "/public/widget/clinics/{clinicId}/config"
tags: ["Widget"]
---

# Get widget configuration for a clinic

`GET /public/widget/clinics/{clinicId}/config`

## Request

- Base URL: `https://api.clinicos.vet/backend/business`
- URL: `https://api.clinicos.vet/backend/business/public/widget/clinics/{clinicId}/config`
- Auth: HTTP bearer

## Path parameters

- `clinicId` string, required

## Response `200`

OK

- WidgetConfigDto
  - `clinicId` string
  - `clinicName` string
  - `enabled` boolean
  - `timezone` string: IANA timezone for the clinic (e.g., "America/New_York"). Frontend should use this to display times in the clinic's local timezone.
  - `features` WidgetFeaturesDto
    - `chatEnabled` boolean
    - `bookingEnabled` boolean
    - `portalEnabled` boolean
  - `branding` WidgetBrandingDto
    - `primaryColor` string
    - `logoUrl` string, nullable
  - `chatSettings` WidgetChatSettingsDto
    - `welcomeMessage` string
    - `operatingHoursStart` string, nullable
    - `operatingHoursEnd` string, nullable
    - `timezone` string, nullable
  - `allowedDomains` string[], nullable
  - `bookingPolicy` WidgetBookingPolicyDto
    - `minAdvanceBookingHours` union
      - integer
      - string, int32
    - `maxAdvanceBookingDays` union
      - integer
      - string, int32
    - `minCancellationNoticeHours` union
      - integer
      - string, int32
    - `defaultAppointmentTypeId` string, nullable: Appointment type the widget should book by default. Drives location-intent filtering and slot duration. Null means the clinic hasn't configured one, in which case the widget should treat booking as unavailable.
    - `defaultAppointmentTypeName` string, nullable: Display name of the default appointment type, surfaced in confirmation copy.
    - `bookableAppointmentTypes` WidgetAppointmentTypeDto[]: The appointment types a client may self-book (ITE-430), in display order. Falls back to just the default type for clinics that flagged none. Empty = online booking unavailable.
      - `id` string
      - `name` string
      - `description` string, nullable
      - `durationMinutes` union
        - integer
        - string, int32
      - `isDefault` boolean
    - `referralSourceOptions` string[]: Suggested answers to "how did you hear about us" (ITE-413), served rather than compiled into the widget so the list has one owner. Not validation — the widget may send anything, and free text is kept verbatim and bucketed as "Other" at report time.

## Other responses

- `404`: Not Found

## Changes

- **2026-08-26** `a57456aa87b0`: 6 info
  - added the optional property `bookingPolicy/oneOf[#/components/schemas/WidgetBookingPolicyDto]/bookableAppointmentTypes` to the response with the `200` status (media type: text/plain)
  - added the optional property `bookingPolicy/oneOf[#/components/schemas/WidgetBookingPolicyDto]/bookableAppointmentTypes` to the response with the `200` status (media type: application/json)
  - added the optional property `bookingPolicy/oneOf[#/components/schemas/WidgetBookingPolicyDto]/bookableAppointmentTypes` to the response with the `200` status (media type: text/json)
  - added the optional property `bookingPolicy/oneOf[#/components/schemas/WidgetBookingPolicyDto]/referralSourceOptions` to the response with the `200` status (media type: text/plain)
  - …2 more

[Operation history](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/changes/public/widget/clinics/:clinicId/config/get.md)

---

[API](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1.md) - [All operations](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/revisions/099cf36186e0?raw)
