---
title: "List broadcast templates"
method: GET
path: "/broadcastTemplates"
tags: ["Broadcast Templates"]
---

# List broadcast templates

`GET /broadcastTemplates`

Retrieves a list of broadcast templates

## Response `200`

Successful operation

- BroadcastTemplate[]
  - `_id` string — Luma's internal ID of an object.
  - `user` string — The ID of the root account user.
  - `deleted` 0 | 1 — Flag for logical deletion where 1 means deleted.
  - `createdBy` string — The ID of the user who created this object.
  - `updatedBy` string — The ID of the user who updated this object.
  - `createdAt` string, date-time — The date/time when this object was created.
  - `updatedAt` string, date-time — The date/time when this object was updated.
  - `status` 'draft' | 'complete' — Lifecycle marker for the multi-step builder flow. `draft` is a work-in-progress; `complete` (or unset, for pre-feature rows) is consumable by the SFTP filename-driven flow. Defaults to `complete` on programmatic creates.
  - `title` string — Title of the broadcast template (optional while `status: draft`)
  - `message` string — Legacy single-message body (used by the legacy Broadcast flow). For the broadcast-redesign (BroadcastFlow), use the `messages` array.
  - `patientMessageTemplate` string — Template for patient-specific messages
  - `messageOverrides` object[] — Legacy per-language/per-channel overrides paired with `message`. Used by the legacy Broadcast flow.
    - `text` string
    - `language` string
    - `channel` string
    - `subject` string
    - `patientMessageTemplate` string — Luma's internal ID of an object.
    - `secureChat` boolean
  - `messages` object[] — BroadcastFlow-shaped message array. Used by the broadcast-redesign SFTP path to populate a BroadcastFlow from this template (one entry per language × channel combination). Coexists with the legacy `message` + `messageOverrides[]` fields.
    - `enabled` boolean
    - `text` string
    - `language` string — Language code or `default`
    - `channel` string[]
    - `secureChat` boolean
    - `subject` string — Email subject (when `channel` includes `email`)
    - `patientMessageTemplate` string — Luma's internal ID of an object.
  - `campaign` string — Associated campaign identifier
  - `mapping` object — FileMapping reference for the broadcast
  - `secureChat` boolean — Legacy template-level secure chat flag (used by the legacy Broadcast flow). For the new flow, secureChat is per-message under `messages[].secureChat`.
  - `shouldUseUploadedContacts` boolean — Legacy boolean (used by the legacy Broadcast flow). For the new flow, use `configuration.contactPreference` (enum).
  - `shouldUsePrimaryContactOnly` boolean — Legacy boolean (used by the legacy Broadcast flow). For the new flow, use `configuration.contactPreference: primary-contact-only`.
  - `sendAt` string, date-time — Legacy scheduled send time (used by the legacy Broadcast flow). For the new flow, use `configuration.scheduledAt`.
  - `configuration` object — Combined configuration. Legacy `throttling` is for the legacy Broadcast flow; all other sub-fields are BroadcastFlow-shaped and consumed by the broadcast-redesign SFTP path.
    - `throttling` object — Legacy throttling (rate-limit sends).
      - `enabled` boolean
      - `value` number
      - `interval` object
        - `value` number
        - `unit` 'minutes' | 'hours'
    - `batching` object — BroadcastFlow batching — splits large flows into child flows of `batchSize` rows, sent every `batchInterval` `batchUnit`(s).
      - `enabled` boolean
      - `batchSize` integer
      - `batchInterval` integer
      - `batchUnit` 'minutes' | 'hours'
    - `contactPreference` 'all-contacts' | 'active-contact-only' | 'primary-contact-only' | 'uploaded-contact-only' — BroadcastFlow contact preference enum.
    - `messagesPerPatient` 'one-message-per-patient' | 'multiple-messages-per-patient'
    - `disabledChannels` string[] — Channels suppressed for this flow.
    - `scheduledAt` string, date-time, nullable — BroadcastFlow scheduled send time (preferred over legacy `sendAt`).
    - `filters` object — Appointment-based filters (facilities, providers, types, dates).
      - `estimatedAppointmentCount` integer
      - `facilities` IdParam[]
      - `providers` IdParam[]
      - `appointmentTypes` IdParam[]
      - `appointmentStatus` string[]
      - `appointmentDate` object
        - `startDate` string, date-time
        - `endDate` string, date-time
        - `dateFilterType` 'custom-range' | 'specific-date' | 'after-specific-date'
    - `appointments` object — Appointment include/exclude lists.
      - `include` IdParam[]
      - `exclude` IdParam[]
    - `responseHandling` object — How to route patient responses.
      - `onResponse` 'ignore-response' | 'send-to-hub'
      - `assignee` string — Group ObjectId or the literal string `unassigned`.
    - `rowProcessingRange` object — Inclusive CSV row range (used by batched child flows).
      - `from` integer
      - `to` integer
  - `allowedSquigglies` string[] — List of allowed template variables resolvable for this template's mapping.
  - `fileUpload` string — Luma's internal ID of an object.

---

[API](https://skmtc.net/lumahealth/apis/rest-service.md) · [All operations](https://skmtc.net/lumahealth/apis/rest-service/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lumahealth/rest-service/revisions/d3c75c2a2f1d/schema)
