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

# List broadcast templates

`GET /broadcastTemplates`

## Request

- Base URL: `https://api.lumahealth.io/api/v2`
- URL: `https://api.lumahealth.io/api/v2/broadcastTemplates`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/lumahealth/apis/rest-service/docs/broadcastTemplates/get.ts> (a function with typed inputs; its response is checked against the schema)

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.dev/lumahealth/apis/rest-service.md) - [All operations](https://skmtc.dev/lumahealth/apis/rest-service/llms.txt) - [OpenAPI document](https://skmtc.dev/lumahealth/apis/rest-service/revisions/f19aeba84a26?raw)
