> ## Documentation Index
> Fetch the complete documentation index at: https://developers.huechat.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List appointments and catalog

> Requires appointments:read. Results are restricted to the API key's account and an RFC3339 range of at most 366 days. Use the dedicated catalog, resources, services and availability endpoints for focused integration reads.



## OpenAPI

````yaml /api-reference/openapi.json get /api/v2/accounts/{accountId}/appointments
openapi: 3.0.3
info:
  contact:
    name: HueChat support
    email: support@huechat.ai
    url: https://huechat.ai/contact
  description: >-
    Account-scoped REST API for HueChat: conversations, messages, contacts,
    inboxes, teams, agents, AI agents and knowledge, WhatsApp templates and
    broadcasts, workflows, chat menus, appointments and webhooks, authenticated
    with account-scoped API keys. Every route is scoped to your own account.
  license:
    name: Proprietary
    url: https://huechat.ai/terms
  termsOfService: https://huechat.ai/terms
  title: HueChat API
  version: 2.0.0
servers:
  - url: https://app.huechat.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: AI Agents
    description: >-
      Assistants you build to answer customers on their own: persona, language,
      guardrails, tools and a knowledge base, published to inboxes, replying in
      Arabic or English until they hand off to a human. Create, publish, test,
      monitor quality and roll back versions.
  - name: Agents
    description: The human agents on your account and their availability.
  - name: Broadcasts
    description: >-
      Send a WhatsApp template to a list of contacts from a CSV or saved
      audience, with scheduling, pause and resume, and delivery reports.
  - name: Chat Menus
    description: >-
      Numbered or button-driven menus a customer sees at the start of a
      conversation.
  - name: Contacts
    description: >-
      The people your team talks to: phone, email, name, custom attributes,
      labels and notes. One contact can have conversations on several channels.
  - name: Conversations
    description: >-
      A conversation is one thread between a contact and your team on one
      channel, with status, assignee, team, labels, priority and custom
      attributes. List, filter, search, assign, resolve and annotate them.
  - name: Inboxes
    description: >-
      Connected channels: a WhatsApp Business number, an Instagram or Messenger
      page, an email address or a website live-chat widget. Inboxes decide where
      a conversation comes from and who can see it.
  - name: Knowledge
    description: >-
      Documents, web pages and text that ground an AI agent's answers. Upload,
      point at a URL or paste text; HueChat indexes it and the agent cites it.
  - name: Messages
    description: >-
      Everything said inside a conversation: text, attachments, WhatsApp
      templates and interactive replies. Sending through the API delivers on the
      conversation's channel and shows in the inbox like any agent reply.
  - name: Outbound Webhooks
    description: >-
      Signed webhooks (v2): HMAC-SHA256 signature on every delivery, test
      events, delivery logs and secret rotation.
  - name: Teams
    description: Groups of agents used for assignment and reporting.
  - name: Templates
    description: >-
      Pre-approved WhatsApp message formats required by Meta for
      business-initiated messages. Create, sync from Meta, AI-generate,
      test-send and read analytics.
  - name: Webhooks
    description: >-
      Account webhooks (v1): a URL plus event subscriptions, as configured in
      the dashboard. Unsigned; prefer Outbound Webhooks for new integrations.
  - name: Workflows
    description: >-
      Automation flows built from triggers and steps: route, tag, reply, wait,
      hand off. Create, publish, version and toggle.
paths:
  /api/v2/accounts/{accountId}/appointments:
    get:
      tags:
        - Appointments
      summary: List appointments and catalog
      description: >-
        Requires appointments:read. Results are restricted to the API key's
        account and an RFC3339 range of at most 366 days. Use the dedicated
        catalog, resources, services and availability endpoints for focused
        integration reads.
      parameters:
        - description: HueChat account ID
          name: accountId
          in: path
          required: true
          schema:
            type: integer
        - description: Range start (RFC3339)
          name: start
          in: query
          schema:
            type: string
        - description: Range end (RFC3339)
          name: end
          in: query
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/huechat.AppointmentOverviewAPIResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/huechat.AppointmentAPIError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/huechat.AppointmentAPIError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/huechat.AppointmentAPIError'
        '429':
          description: Too Many Requests
          headers:
            Retry-After:
              description: 60 seconds before retrying after the API key quota is exceeded
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/huechat.AppointmentAPIError'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/huechat.AppointmentAPIError'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    huechat.AppointmentOverviewAPIResponse:
      type: object
      properties:
        appointments:
          type: array
          items:
            $ref: '#/components/schemas/huechat.AppointmentResponse'
        availability_exceptions:
          type: array
          items:
            $ref: >-
              #/components/schemas/huechat.AppointmentAvailabilityExceptionAPIResponse
        availability_rules:
          type: array
          items:
            $ref: >-
              #/components/schemas/huechat.AppointmentAvailabilityRuleAPIResponse
        resources:
          type: array
          items:
            $ref: '#/components/schemas/huechat.AppointmentResourceAPIResponse'
        service_resources:
          type: array
          items:
            $ref: '#/components/schemas/huechat.AppointmentServiceResourceAPIResponse'
        services:
          type: array
          items:
            $ref: '#/components/schemas/huechat.AppointmentServiceAPIResponse'
        settings:
          $ref: '#/components/schemas/huechat.AppointmentSettingsAPIResponse'
    huechat.AppointmentAPIError:
      type: object
      properties:
        error:
          type: string
        limit:
          type: string
    huechat.AppointmentResponse:
      type: object
      properties:
        account_id:
          type: integer
        buffer_after_minutes:
          type: integer
        buffer_before_minutes:
          type: integer
        busy_ends_at:
          type: string
          format: date-time
        busy_starts_at:
          type: string
          format: date-time
        cancellation_reason:
          type: string
        cancelled_at:
          type: string
          format: date-time
        completed_at:
          type: string
          format: date-time
        confirmed_at:
          type: string
          format: date-time
        contact_id:
          type: integer
        conversation_id:
          type: integer
        created_at:
          type: string
          format: date-time
        created_by_ai_agent_id:
          type: string
          format: uuid
        created_by_user_id:
          type: integer
        customer_email:
          type: string
        customer_name:
          type: string
        customer_phone:
          type: string
        duration_minutes:
          type: integer
        ends_at:
          type: string
          format: date-time
        external_id:
          type: string
        id:
          type: string
          format: uuid
        notes:
          type: string
        public_id:
          type: string
        resource_color:
          type: string
        resource_id:
          type: string
          format: uuid
        resource_name:
          type: string
        resource_type:
          type: string
        service_color:
          type: string
        service_currency:
          type: string
        service_description:
          type: string
        service_id:
          type: string
          format: uuid
        service_name:
          type: string
        service_price:
          type: number
        source:
          type: string
        starts_at:
          type: string
          format: date-time
        status:
          type: string
        updated_at:
          type: string
          format: date-time
        version:
          type: integer
    huechat.AppointmentAvailabilityExceptionAPIResponse:
      type: object
      properties:
        account_id:
          type: integer
        created_at:
          type: string
          format: date-time
        ends_at:
          type: string
          format: date-time
        id:
          type: string
          format: uuid
        kind:
          type: string
        reason:
          type: string
        resource_id:
          type: string
          format: uuid
        starts_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    huechat.AppointmentAvailabilityRuleAPIResponse:
      type: object
      properties:
        account_id:
          type: integer
        created_at:
          type: string
          format: date-time
        day_of_week:
          type: integer
        effective_from:
          type: string
          format: date
        effective_to:
          type: string
          format: date
        end_minute:
          type: integer
        id:
          type: string
          format: uuid
        is_active:
          type: boolean
        resource_id:
          type: string
          format: uuid
        start_minute:
          type: integer
        updated_at:
          type: string
          format: date-time
    huechat.AppointmentResourceAPIResponse:
      type: object
      properties:
        account_id:
          type: integer
          example: 3
        color:
          type: string
        created_at:
          type: string
          format: date-time
        description:
          type: string
        id:
          type: string
          format: uuid
        is_active:
          type: boolean
        metadata:
          type: object
        name:
          type: string
        position:
          type: integer
        resource_type:
          type: string
        timezone:
          type: string
        updated_at:
          type: string
          format: date-time
    huechat.AppointmentServiceResourceAPIResponse:
      type: object
      properties:
        resource_id:
          type: string
          format: uuid
        service_id:
          type: string
          format: uuid
    huechat.AppointmentServiceAPIResponse:
      type: object
      properties:
        account_id:
          type: integer
          example: 3
        buffer_after_minutes:
          type: integer
        buffer_before_minutes:
          type: integer
        color:
          type: string
        created_at:
          type: string
          format: date-time
        currency:
          type: string
        description:
          type: string
        duration_minutes:
          type: integer
        id:
          type: string
          format: uuid
        is_active:
          type: boolean
        metadata:
          type: object
        name:
          type: string
        position:
          type: integer
        price:
          type: number
        updated_at:
          type: string
          format: date-time
    huechat.AppointmentSettingsAPIResponse:
      type: object
      properties:
        account_id:
          type: integer
          example: 3
        booking_mode:
          type: string
          enum:
            - native
            - external
          example: native
        cancellation_notice_minutes:
          type: integer
          example: 120
        confirmation_mode:
          type: string
          enum:
            - manual
            - automatic
          example: automatic
        created_at:
          type: string
          format: date-time
        default_view:
          type: string
          enum:
            - day
            - week
            - month
            - list
          example: week
        maximum_advance_days:
          type: integer
          example: 90
        minimum_notice_minutes:
          type: integer
          example: 60
        native_enabled:
          type: boolean
          example: true
        resource_label:
          type: string
          example: Doctor
        slot_interval_minutes:
          type: integer
          enum:
            - 5
            - 10
            - 15
            - 20
            - 30
            - 45
            - 60
            - 90
            - 120
          example: 15
        timezone:
          type: string
          example: Asia/Riyadh
        updated_at:
          type: string
          format: date-time
        week_starts_on:
          type: integer
          maximum: 6
          minimum: 0
          example: 0
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Your personal access token from Settings → Profile, or a scoped API key
        (`hc_…`) created at Settings → Developer → API keys. Send it as
        `Authorization: Bearer <token>`.

````