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

> ## Agent Instructions
> Automate.ax automations are TypeScript programs.
> Use Bun for installation and command examples.
> Use Automate.ax for the product name and automate.ax for the package, CLI, and domain.
> Treat documented public APIs as current; do not invent transitional or deprecated names.

# Get message recording

> Returns the recording for a voice or call message.

`highlevel.getMessageRecording` returns the recording for a voice or call message.

```ts automations/highlevel-get-message-recording.automation.ts theme={null}
import { automation, markSignificant } from "automate.ax"
import { highlevel } from "automate.ax/highlevel"

export default automation("Get message recording", () => {
  markSignificant(
    highlevel.getMessageRecording({
      messageId: "tDtDnQdgm2LXpyiqYvZ6",
    }),
  )
})
```

## Input

| Field       | Type     | Required | Description                 |
| ----------- | -------- | -------- | --------------------------- |
| `messageId` | `string` | Yes      | HighLevel message id value. |

Automate.ax supplies the connected sub-account's location ID. Optional second argument `{ account }` selects a named HighLevel binding.

## Output

| Field         | Type     | Required | Description                                                        |
| ------------- | -------- | -------- | ------------------------------------------------------------------ |
| `contentType` | `string` | Yes      | Recording media type returned by HighLevel, usually `audio/x-wav`. |
| `data`        | `string` | Yes      | Base64-encoded recording bytes.                                    |

This action calls `GET /conversations/messages/{messageId}/locations/{locationId}/recording` with HighLevel API version `2021-04-15` and requires `conversations/message.readonly`. HighLevel validation and permission errors fail the action. Rate limits honor the provider's retry timing.
