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

# Get Decision Engine Message

> Get a single message by flow and message ID



## OpenAPI

````yaml https://api.hightouch.io/api/swagger.json get /decision-engine/flow/{flowId}/messages/{messageId}
openapi: 3.0.0
info:
  title: Hightouch API
  version: 1.0.0
  description: Hightouch Public Rest API to access syncs, models, sources and destinations
  contact:
    name: Hightouch
    url: https://hightouch.com
servers:
  - url: https://api.hightouch.com/api/v1
security: []
paths:
  /decision-engine/flow/{flowId}/messages/{messageId}:
    get:
      summary: Get Decision Engine Message
      description: Get a single message by flow and message ID
      operationId: GetMessage
      parameters:
        - description: The UUID of the flow
          in: path
          name: flowId
          required: true
          schema:
            type: string
        - description: The UUID of the message
          in: path
          name: messageId
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/DecisionEngineMessage'
                  - $ref: '#/components/schemas/ValidateErrorJSON'
                  - $ref: '#/components/schemas/InternalServerError'
                nullable: true
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      security:
        - bearerAuth: []
components:
  schemas:
    DecisionEngineMessage:
      description: Decision Engine Message (Public API)
      properties:
        id:
          type: string
        name:
          type: string
        channelId:
          type: string
        config:
          properties: {}
          additionalProperties: {}
          type: object
        tags:
          properties: {}
          additionalProperties: {}
          type: object
        guardrails:
          $ref: '#/components/schemas/DecisionEngineMessageGuardrails'
        variables:
          items:
            $ref: '#/components/schemas/DecisionEngineVariable'
          type: array
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      required:
        - id
        - name
        - channelId
        - config
      type: object
      additionalProperties: false
    ValidateErrorJSON:
      properties:
        message:
          type: string
          enum:
            - Validation failed
          nullable: false
        details:
          properties: {}
          additionalProperties: {}
          type: object
      required:
        - message
        - details
      type: object
      additionalProperties: false
    InternalServerError:
      type: string
      enum:
        - Internal Server Error
      nullable: false
    DecisionEngineMessageGuardrails:
      description: Guardrail fields on a message (max sends, eligibility dates, etc.)
      properties:
        maxSendsPerUser:
          type: number
          format: double
        maxSendsPerUserWindowDays:
          type: number
          format: double
        minOtherMessagesInBetween:
          type: number
          format: double
        firstEligibleSendDate:
          type: string
        lastEligibleSendDate:
          type: string
      type: object
      additionalProperties: false
    DecisionEngineVariable:
      description: Message variable (Public API)
      properties:
        name:
          type: string
          description: The variable name (must be unique within a message)
        config:
          properties:
            localizationEnabled:
              type: boolean
              description: >-
                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:
              type: number
              format: double
              description: Rolling window in days for the maxSendsPerUser limit
            maxSendsPerUser:
              type: number
              format: double
              description: >-
                Maximum number of times this variable's variants can be sent to
                a single user
          type: object
        variants:
          items:
            $ref: '#/components/schemas/DecisionEngineVariableVariant'
          type: array
      required:
        - name
        - variants
      type: object
      additionalProperties: false
    DecisionEngineVariableVariant:
      description: Variant within a message variable (Public API)
      properties:
        value:
          type: string
          description: The default (non-localized) value for this variant
        tags:
          properties: {}
          additionalProperties:
            type: string
          type: object
          description: Key-value tags for categorizing this variant
        firstEligibleSendDate:
          type: string
          description: Earliest date this variant is eligible to be sent (ISO 8601)
        lastEligibleSendDate:
          type: string
          description: Latest date this variant is eligible to be sent (ISO 8601)
        userAudienceFilter: {}
        localeValues:
          properties: {}
          additionalProperties:
            type: string
          type: object
          description: >-
            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.
      required:
        - value
      type: object
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Bearer

````