---
title: "Get a translation of an automation message"
method: GET
path: "/v1/campaigns/{campaign_id}/actions/{action_id}/language/{language}"
tags: ["Automations"]
---

# Get a translation of an automation message

`GET /v1/campaigns/{campaign_id}/actions/{action_id}/language/{language}`

## Request

- Base URL: `https://api.customer.io`
- URL: `https://api.customer.io/v1/campaigns/{campaign_id}/actions/{action_id}/language/{language}`
- Auth: HTTP bearer

Returns a translated version of a message in an automation. The message is identified by the `action_id`.

## Response `200`

Returns information for the requested automation `action` language variant.

- object
  - `action` union
    - object
      - `id` integer: The identifier for an action.
      - `broadcast_id` integer: The identifier for a broadcast.
      - `deduplicate_id` string: An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.
      - `name` string: The name of the action, if it exists.
      - `layout` string: The layout used for the action, if it exists.
      - `created` integer: The date time when the referenced ID was created.
      - `updated` integer: The date time when the referenced ID was last updated.
      - `body` string: The body of the action. You cannot modify the body if you created it with our drag-and-drop editor.
      - `type` 'email' | 'in_app' | 'push' | 'twilio' | 'slack' | 'whatsapp': The type of action.
      - `sending_state` 'automatic' | 'draft' | 'off': Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action.
      - `language` string: The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.
      - `from` string: The address that the message is from, relevant if the action `type` is `email`.
      - `from_id` integer: The identifier of the `from` address, commonly known as the "sender". Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.
      - `reply_to` string: The address that receives replies for the message, if applicable.
      - `reply_to_id` integer, nullable: The identifier for the `reply_to` address, if applicable. Use [List sender identities](/integrations/api/app/tag/sender-identities/listSenders/) to find valid IDs.
      - `preprocessor` 'premailer': If CSS pre-processing is enabled, this key is populated with `premailer`. Note, Juice replaced Premailer as the pre-processor, but you will only see `premailer` as the value.
      - `recipient` string: The recipient address for an action.
      - `subject` string: The subject line for an `email` action.
      - `cc` string: The carbon-copy address(es) for this action.
      - `bcc` string: The blind-copy address(es) for this action.
      - `fake_bcc` boolean: If true, rather than sending true copies to BCC addresses, Customer.io sends a copy of the message with the subject line containing the recipient address(es).
      - `preheader_text` string: [Also known as "preview text"](/journeys/channels/email/headers/custom-preheader-text/), this is the small block of text shown in an email inbox next to or underneath the subject line.
      - `body_amp` string: AMP-enabled content for your email. If a recipient's email client doesn't support AMP, they receive your `body` content instead. Make sure you're [set up to send AMP](/journeys/channels/email/layouts/amp-for-email/) first.
      - `campaign_id` integer: The identifier for an automation.
      - `parent_action_id` integer: The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
      - `multi_language_branch_action_id` integer: Returned when the action is a language variant of a multi-language message. This id is the same for each variant of a message, so you can use this to retrieve metrics for a message and all its variants.
      - `headers` string, json: A JSON string containing header objects with `name` and `value`. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.
    - object
      - `id` integer: The identifier for an action.
      - `campaign_id` integer: The identifier for an automation.
      - `parent_action_id` integer: The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
      - `multi_language_branch_action_id` integer: Returned when the action is a language variant of a multi-language message. This id is the same for each variant of a message, so you can use this to retrieve metrics for a message and all its variants.
      - `deduplicate_id` string: An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.
      - `name` string: The name of the action.
      - `layout` string: The layout used for the action, if it exists.
      - `created` integer: The date time when the referenced ID was created.
      - `updated` integer: The date time when the referenced ID was last updated.
      - `body` string: The body of your SMS.
      - `language` string: The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.
      - `type` 'twilio': For SMS/MMS messages, the `type` is always `twilio`.
      - `image_url` string: The URL of the image in your SMS (MMS) message.
      - `sending_state` 'automatic' | 'draft' | 'off': Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action.
      - `recipient` string: The recipient, usually an attribute you reference with Liquid like `{{customer.phone}}`. If you use Liquid, this field is blank in `GET` responses because we resolve the recipient at send time.
    - object: The action object for WhatsApp messages sent from Customer.io using your Facebook Business Account (not Twilio). Messages sent through Twilio still use the `twilio` type and are treated similarly to SMS messages.
      - `id` integer: The identifier for an action.
      - `campaign_id` integer: The identifier for an automation.
      - `parent_action_id` integer: The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
      - `multi_language_branch_action_id` integer: Returned when the action is a language variant of a multi-language message. This id is the same for each variant of a message, so you can use this to retrieve metrics for a message and all its variants.
      - `deduplicate_id` string: An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.
      - `name` string: The name of the action.
      - `created` integer: The date time when the referenced ID was created.
      - `updated` integer: The date time when the referenced ID was last updated.
      - `body` string: A JSON string containing WhatsApp template metadata from Meta and template parameters with Liquid variables. Use `GET /v1/environments/{environment_id}/whatsapp/templates` to list templates.
      - `body_json` string: For visual editor content (if applicable).
      - `language` string: The language variant for your message. If you don't use our [localization feature](/journeys/channels/localization/getting-started), or this is the default message, this value is an empty string.
      - `type` 'whatsapp': For WhatsApp messages sent from Customer.io using your Facebook Business Account (not Twilio), the `type` is always `whatsapp`.
      - `sending_state` 'automatic' | 'draft' | 'off': Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action.
      - `recipient` string: The recipient's phone number in E.164 format, usually referenced with Liquid like `{{customer.phone}}`. If you use Liquid, this field is blank in `GET` responses because we resolve the recipient at send time.
      - `sender_identity_id` integer: The ID of the WhatsApp Business phone number to send from. This corresponds to a phone number registered in your WhatsApp Business Account and synced via `GET /v1/environments/{environment_id}/whatsapp/sync`.
      - `send_to_unsubscribed` boolean: Whether to send this message to unsubscribed customers.
      - `tracked` boolean: Whether links in template parameters should be tracked.
    - object
      - `id` integer: The identifier for an action.
      - `campaign_id` integer: The identifier for an automation.
      - `parent_action_id` integer: The ID of the parent action, if the action occurred within an automation and has a parent (like a randomized split, etc).
      - `multi_language_branch_action_id` integer: Returned when the action is a language variant of a multi-language message. This id is the same for each variant of a message, so you can use this to retrieve metrics for a message and all its variants.
      - `deduplicate_id` string: An identifier in the format `id:timestamp` where the id is for the object you're working with (Automations, Deliveries, Exports, Identities, One-time sends, Segments, and Templates), and the timestamp is the last time the object was updated.
      - `name` string: The name of the action, if it exists.
      - `layout` string: The layout used for the action, if it exists.
      - `created` integer: The date time when the referenced ID was created.
      - `updated` integer: The date time when the referenced ID was last updated.
      - `body` string: The body of the action. You cannot modify the body if you created it with our drag-and-drop editor.
      - `type` 'webhook': The type of action.
      - `url` string: The URL to send a webhook to, applies to `webhook` type actions.
      - `headers` string, json: A JSON string containing header objects with `name` and `value`. Names and values must be strings, with no non-ASCII characters or spaces. You can't overwrite reserved headers.
      - `method` 'get' | 'post' | 'put' | 'delete' | 'patch': The HTTP method for your webhook.
      - `sending_state` 'automatic' | 'draft' | 'off': Determines the sending behavior for the action. `automatic` sends the action automatically when triggered; `draft` queues drafts when the action is triggered; or `off` to disable the action.

## Other responses

- `400`: The `campaignID` or `actionID` is invalid. It could also be that the `language` requested does not exist for this action.
- `404`: The automation and/or action do not exist.
- `429`: Your request is over the 10-per-second limit. `Retry-After` tells you how many seconds you must wait before you send the next request.

## Changes

- **2026-09-18** `80dbb5640491`: 4 info
  - added the optional property `action/oneOf[subschema #1: Email / message]/allOf[subschema #2]/multi_language_branch_action_id` to the response with the `200` status
  - added the optional property `action/oneOf[subschema #2: SMS/MMS]/allOf[subschema #1]/multi_language_branch_action_id` to the response with the `200` status
  - added the optional property `action/oneOf[subschema #3: WhatsApp]/allOf[subschema #1]/multi_language_branch_action_id` to the response with the `200` status
  - added the optional property `action/oneOf[subschema #4: Webhook]/allOf[subschema #1]/multi_language_branch_action_id` to the response with the `200` status
- **2026-09-02** `5da2740beeb5`: 1 info
  - added the media type `application/json` for the response with the status `429`

[Operation history](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/changes/v1/campaigns/:campaign_id/actions/:action_id/language/:language/get.md)

---

[API](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference.md) - [All operations](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/llms.txt) - [OpenAPI document](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/revisions/ac0b282053fe?raw)
