---
title: "Get Decision Engine Message"
method: GET
path: "/decision-engine/flow/{flowId}/messages/{messageId}"
---

# Get Decision Engine Message

`GET /decision-engine/flow/{flowId}/messages/{messageId}`

Get a single message by flow and message ID

## Path parameters

- `flowId` string, required
- `messageId` string, required

## Response `200`

Ok

- union
  - DecisionEngineMessage — Decision Engine Message (Public API)
    - `id` string, required
    - `name` string, required
    - `channelId` string, required
    - `config` object, required
    - `tags` object
    - `guardrails` DecisionEngineMessageGuardrails — Guardrail fields on a message (max sends, eligibility dates, etc.)
      - `maxSendsPerUser` number, double
      - `maxSendsPerUserWindowDays` number, double
      - `minOtherMessagesInBetween` number, double
      - `firstEligibleSendDate` string
      - `lastEligibleSendDate` string
    - `variables` DecisionEngineVariable[]
      - `name` string, required — The variable name (must be unique within a message)
      - `config` object
        - `localizationEnabled` boolean — When true, the Decision Engine uses each variant's localeValues to select locale-appropriate content at runtime. When false or omitted, only the default variant value is used, even if localeValues are present.
        - `maxSendsPerUserWindowDays` number, double — Rolling window in days for the maxSendsPerUser limit
        - `maxSendsPerUser` number, double — Maximum number of times this variable's variants can be sent to a single user
      - `variants` DecisionEngineVariableVariant[], required
        - `value` string, required — The default (non-localized) value for this variant
        - `tags` object — Key-value tags for categorizing this variant
        - `firstEligibleSendDate` string — Earliest date this variant is eligible to be sent (ISO 8601)
        - `lastEligibleSendDate` string — Latest date this variant is eligible to be sent (ISO 8601)
        - `userAudienceFilter` unknown
        - `localeValues` object — Localized values for this variant, keyed by locale code (e.g. "en-US", "de-DE"). These are only used at runtime when `localizationEnabled` is true on the parent variable. You can stage translations by providing localeValues while leaving localizationEnabled unset or false.
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
  - ValidateErrorJSON
    - `message` 'Validation failed', required
    - `details` object, required
  - 'Internal Server Error'

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found

---

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