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

# Get waiting-list totals

> Every non-deleted list with its open-entry counts, plus per-service
counts and workspace totals.



## OpenAPI

````yaml GET /api/v2/public/calendar/waitlist/summary
openapi: 3.1.0
info:
  title: Dialtu Public API
  version: '2.0'
  description: >-
    Programmatic access to your Dialtu account: schedule AI voice calls, create
    contacts, push leads into Salesflow pipelines, book calendar appointments
    and read WhatsApp conversation history.


    Every request is authenticated with an API key created in the dashboard
    under **Settings → API Keys**, sent as `Authorization: Bearer pk_...`.
servers:
  - url: https://api.dialtu.com
    description: Production
  - url: https://api.stg.dialtu.com
    description: Staging
security:
  - ApiKeyBearer: []
tags:
  - name: Calls
    description: Schedule outbound AI voice calls.
  - name: Clients
    description: Create contacts in your account.
  - name: Salesflow
    description: Push leads into a pipeline through an API input node.
  - name: Salesflow pipelines
    description: Read a pipeline's stages and add, move or remove clients.
  - name: Calendar
    description: Check bookable capacity, book appointments and manage waiting lists.
  - name: WhatsApp
    description: Read-only conversation history and transcripts.
paths:
  /api/v2/public/calendar/waitlist/summary:
    get:
      tags:
        - Calendar
      summary: Get waiting-list totals
      description: |-
        Every non-deleted list with its open-entry counts, plus per-service
        counts and workspace totals.
      operationId: getWaitlistSummary
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicWaitlistSummaryResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCalendarErrorResponse'
        '401':
          description: Missing, malformed or revoked API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DetailErrorResponse'
              examples:
                missing_header:
                  summary: No Authorization header
                  value:
                    detail: Unauthorized
                invalid_key:
                  summary: Unknown or revoked key
                  value:
                    detail: Invalid or expired API key. Please check your credentials.
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCalendarErrorResponse'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCalendarErrorResponse'
        '422':
          description: The request did not match the documented schema.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestValidationError'
              example:
                detail:
                  - type: missing
                    loc:
                      - body
                      - payload
                      - phone_number
                    msg: Field required
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicCalendarErrorResponse'
      security:
        - ApiKeyBearer: []
components:
  schemas:
    PublicWaitlistSummaryResponse:
      description: Response of *Get waiting-list totals*.
      properties:
        status:
          const: success
          default: success
          description: Always `success`.
          title: Status
          type: string
        data:
          $ref: '#/components/schemas/PublicWaitlistSummaryDataSchema'
          description: The summary.
      required:
        - data
      title: PublicWaitlistSummaryResponse
      type: object
    PublicCalendarErrorResponse:
      description: Error envelope shared by every public calendar endpoint.
      properties:
        status:
          const: error
          default: error
          description: Always `error`.
          title: Status
          type: string
        error_code:
          description: Machine-readable error code; branch on this, never on `message`.
          title: Error Code
          type: string
        message:
          description: Human-readable explanation.
          title: Message
          type: string
        details:
          anyOf:
            - {}
            - type: 'null'
          description: Extra context, e.g. `valid_service_names` or the offending `field`.
          title: Details
      required:
        - error_code
        - message
      title: PublicCalendarErrorResponse
      type: object
    DetailErrorResponse:
      description: 'Plain error body: `{"detail": "..."}`. No `error_code` is included.'
      properties:
        detail:
          description: Human-readable reason for the failure.
          title: Detail
          type: string
      required:
        - detail
      title: DetailErrorResponse
      type: object
    RequestValidationError:
      title: RequestValidationError
      type: object
      description: >-
        Returned when the request body, query string or path could not be parsed
        against the documented schema. Fix the listed fields and retry.
      properties:
        detail:
          type: array
          title: Detail
          description: One entry per invalid field.
          items:
            $ref: '#/components/schemas/RequestValidationErrorItem'
      required:
        - detail
    PublicWaitlistSummaryDataSchema:
      description: Summary payload.
      properties:
        lists:
          description: Per-list summaries.
          items:
            $ref: '#/components/schemas/PublicWaitlistListSummarySchema'
          title: Lists
          type: array
        services:
          description: Per-service counts.
          items:
            $ref: '#/components/schemas/PublicWaitlistServiceSummarySchema'
          title: Services
          type: array
        totals:
          $ref: '#/components/schemas/PublicWaitlistTotalsSchema'
          description: Workspace totals.
      required:
        - totals
      title: PublicWaitlistSummaryDataSchema
      type: object
    RequestValidationErrorItem:
      title: RequestValidationErrorItem
      type: object
      properties:
        loc:
          type: array
          title: Loc
          description: >-
            Where the problem is: the first element is `body`, `query` or
            `path`, followed by the field path.
          items:
            anyOf:
              - type: string
              - type: integer
        msg:
          type: string
          title: Msg
          description: What is wrong with the value.
        type:
          type: string
          title: Type
          description: >-
            Machine-readable validation error type, e.g. `missing` or
            `int_parsing`.
      required:
        - loc
        - msg
        - type
    PublicWaitlistListSummarySchema:
      description: One waiting list with its configuration and counts.
      properties:
        id:
          description: Waiting list ID.
          title: Id
          type: integer
        name:
          description: Waiting list name.
          title: Name
          type: string
        is_active:
          description: Whether the list is switched on.
          title: Is Active
          type: boolean
        status:
          description: needs_setup | broken | active | paused
          title: Status
          type: string
        horizon_days:
          description: How many days ahead the list looks for openings.
          title: Horizon Days
          type: integer
        service_ids:
          description: Services covered by the list.
          items:
            type: integer
          title: Service Ids
          type: array
        counts:
          $ref: '#/components/schemas/PublicWaitlistCountsSchema'
          description: Open-entry counts.
        last_run_at:
          anyOf:
            - type: string
            - type: 'null'
          description: Last automatic run, ISO 8601 UTC.
          title: Last Run At
        next_run_at:
          anyOf:
            - type: string
            - type: 'null'
          description: Next scheduled run, ISO 8601 UTC.
          title: Next Run At
      required:
        - id
        - name
        - is_active
        - status
        - horizon_days
        - counts
      title: PublicWaitlistListSummarySchema
      type: object
    PublicWaitlistServiceSummarySchema:
      description: Open-entry counts for one service on one list.
      properties:
        service_id:
          description: Service ID.
          title: Service Id
          type: integer
        service_name:
          description: Service name.
          title: Service Name
          type: string
        waitlist_id:
          description: Waiting list the counts belong to.
          title: Waitlist Id
          type: integer
        waiting_entries:
          default: 0
          description: Open entries waiting for a seat.
          title: Waiting Entries
          type: integer
        waiting_patients:
          default: 0
          description: Distinct clients among the waiting entries.
          title: Waiting Patients
          type: integer
        queued_entries:
          default: 0
          description: Entries currently holding a seat.
          title: Queued Entries
          type: integer
        snoozed_entries:
          default: 0
          description: Entries snoozed until a later date.
          title: Snoozed Entries
          type: integer
        flagged_entries:
          default: 0
          description: Entries flagged for review.
          title: Flagged Entries
          type: integer
      required:
        - service_id
        - service_name
        - waitlist_id
      title: PublicWaitlistServiceSummarySchema
      type: object
    PublicWaitlistTotalsSchema:
      description: Workspace-wide waiting-list totals.
      properties:
        lists_count:
          default: 0
          description: Number of non-deleted waiting lists.
          title: Lists Count
          type: integer
        waiting_entries:
          default: 0
          description: Open entries waiting across all lists.
          title: Waiting Entries
          type: integer
        waiting_patients:
          default: 0
          description: Distinct clients waiting across all lists.
          title: Waiting Patients
          type: integer
        queued_entries:
          default: 0
          description: Entries currently holding a seat.
          title: Queued Entries
          type: integer
        flagged_entries:
          default: 0
          description: Entries flagged for review.
          title: Flagged Entries
          type: integer
        booked_30d:
          default: 0
          description: Entries that turned into appointments in the last 30 days.
          title: Booked 30D
          type: integer
      title: PublicWaitlistTotalsSchema
      type: object
    PublicWaitlistCountsSchema:
      description: Open-entry counts for one waiting list.
      properties:
        waiting_entries:
          default: 0
          description: Open entries waiting for a seat.
          title: Waiting Entries
          type: integer
        waiting_patients:
          default: 0
          description: Distinct clients among the waiting entries.
          title: Waiting Patients
          type: integer
        queued_entries:
          default: 0
          description: Entries that currently hold a seat and are being contacted.
          title: Queued Entries
          type: integer
        queued_patients:
          default: 0
          description: Distinct clients among the queued entries.
          title: Queued Patients
          type: integer
        snoozed_entries:
          default: 0
          description: Entries snoozed until a later date.
          title: Snoozed Entries
          type: integer
        flagged_entries:
          default: 0
          description: Entries flagged for a person's review.
          title: Flagged Entries
          type: integer
      title: PublicWaitlistCountsSchema
      type: object
  securitySchemes:
    ApiKeyBearer:
      type: http
      scheme: bearer
      bearerFormat: pk_...
      description: >-
        API key created in the dashboard under **Settings → API Keys**. Send it
        as `Authorization: Bearer pk_...`.

````