---
title: "Get a message template"
method: GET
path: "/message-templates/{message_template_id}"
tags: ["Message templates"]
---

# Get a message template

`GET /message-templates/{message_template_id}`

Get information about a specific message template.

## Path parameters

- `message_template_id` string, required

## Headers

- `Accept-Language` string

## Response `200`

OK

- object
  - `data` MessageTemplate — Message template resource.
    - `message_template_id` string — The unique ID of the message template.
    - `consent_free_template` true | false — If true, customer can receive message without any consent(GDPR, etc.).
    - `subject` string, required — Subject of the message template. Mandatory only in case of email template.
    - `sender` string, required — Sender of the message template.
    - `name` string, required — Name of the message template.
    - `preview_url` string, nullable — URL of the full-size preview image of the message template. May be null if no visual preview is available for this template type.
    - `icon_url` string, nullable — URL of the icon image of the message template. May be null if no visual preview is available for this template type.
    - `message_template_group_id` 1 | 2 | 3, required — The unique ID of the message template group. *Possible values are: 1 - newsletter template / 2 - system template (registration message, order summary message, etc.) / 3 - transactional communication (for hotel, traveling,...)*
    - `communication_channel_id` 1 | 2 | 4 | 5 | 9, required — The unique ID of the communication channel. *Possible values are: 1 - email / 2 - SMS / 4 - PUSH notification (Apple or Google)/ 5 - internal system notification / 9 - Viber messages* [GET /communication-channels](https://carecloud.readme.io/reference/getcommunicationchannels)
    - `template_data` Parameter[] — Template data could contains array of customized parameters. They may have influence on template display or add values to template.
      - `parameter_name` string, required — Name of the parameter.
      - `value` string, required — Value of the parameter.
    - `last_change` string — Timestamp of the last change. Format: `YYYY-MM-DD HH:MM:SS`. All times are in the local timezone.

## Other responses

- `400` — Bad input parameter. The response body's `error.error_data.invalid_params[]` array lists the parameters that caused the failure, each carrying a `reason` code. See the `BadRequestErrorBody` schema for the generic reason taxonomy. Operations with domain-specific business rules document additional reasons at the operation level.
- `401` — The client has invalid credentials or auth token.
- `403` — The client does not exist or the client tried to access an unauthorized property or resource.
- `404` — The resource was not found.
- `405` — The resource does not support the specified HTTP method.
- `429` — Too many requests - more than the resource limit.
- `500` — Server is not working as expected.
- `503` — Temporary state when the service is temporarily unavailable, overloaded or there is a maintenance window.

---

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