---
title: "Get broadcast template"
method: GET
path: "/broadcastTemplates/{broadcastTemplateId}"
tags: ["Broadcast Templates"]
---

# Get broadcast template

`GET /broadcastTemplates/{broadcastTemplateId}`

Retrieves a specific broadcast template by ID

## Response `200`

Successful operation

- BroadcastTemplate — Represents a reusable template for a bulk broadcast messaging campaign, capturing message content per channel and language, throttling and batching settings, and audience filters used to send mass communications to patients such as reminders or announcements via SMS, email, or voice. Templates move through a draft or complete lifecycle and are consumed by the broadcast builder flow to generate an actual broadcast run.
  - `_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.

## Other responses

- `404` — Broadcast template not found

---

[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)
