## Send a voice memo to a chat

`client.chats.sendVoicememo(stringchatID, ChatSendVoicememoParamsbody, RequestOptionsoptions?): ChatSendVoicememoResponse`

**post** `/v3/chats/{chatId}/voicememo`

Send an audio file as an **iMessage voice memo bubble** to all participants in a chat.
Voice memos appear with iMessage's native inline playback UI, unlike regular audio
attachments sent via media parts which appear as downloadable files.

**Supported audio formats:**

- MP3 (audio/mpeg)
- M4A (audio/x-m4a, audio/mp4)
- AAC (audio/aac)
- CAF (audio/x-caf) - Core Audio Format
- WAV (audio/wav)
- AIFF (audio/aiff, audio/x-aiff)
- AMR (audio/amr)

### Parameters

- `chatID: string`

- `body: ChatSendVoicememoParams`

  - `attachment_id?: string`

    Reference to a voice memo file pre-uploaded via `POST /v3/attachments`.
    The file is already stored, so sends using this ID skip the download step.

    Either `voice_memo_url` or `attachment_id` must be provided, but not both.

  - `voice_memo_url?: string`

    URL of the voice memo audio file. Must be a publicly accessible HTTPS URL.

    Either `voice_memo_url` or `attachment_id` must be provided, but not both.

### Returns

- `ChatSendVoicememoResponse`

  Response for sending a voice memo to a chat

  - `voice_memo: VoiceMemo`

    - `id: string`

      Message identifier

    - `chat: Chat`

      - `id: string`

        Chat identifier

      - `handles: Array<ChatHandle>`

        Chat participants

        - `id: string`

          Unique identifier for this handle

        - `handle: string`

          Phone number (E.164) or email address of the participant

        - `joined_at: string`

          When this participant joined the chat

        - `service: ServiceType`

          Messaging service type

          - `"iMessage"`

          - `"SMS"`

          - `"RCS"`

        - `is_me?: boolean | null`

          Whether this handle belongs to the sender (your phone number)

        - `left_at?: string | null`

          When they left (if applicable)

        - `status?: "active" | "left" | "removed" | null`

          Participant status

          - `"active"`

          - `"left"`

          - `"removed"`

      - `is_active: boolean`

        Whether the chat is active

      - `is_group: boolean`

        Whether this is a group chat

      - `service: ServiceType`

        Messaging service type

    - `created_at: string`

      When the voice memo was created

    - `from: string`

      Sender phone number

    - `status: string`

      Current delivery status

    - `to: Array<string>`

      Recipient handles (phone numbers or email addresses)

    - `voice_memo: VoiceMemo`

      - `id: string`

        Attachment identifier

      - `filename: string`

        Original filename

      - `mime_type: string`

        Audio MIME type

      - `size_bytes: number`

        File size in bytes

      - `url: string`

        CDN URL for downloading the voice memo

      - `duration_ms?: number | null`

        Duration in milliseconds

    - `service?: ServiceType | null`

      Messaging service type

### Example

```typescript
import LinqAPIV3 from '@linqapp/sdk';

const client = new LinqAPIV3({
  apiKey: process.env['LINQ_API_V3_API_KEY'], // This is the default and can be omitted
});

const response = await client.chats.sendVoicememo('f19ee7b8-8533-4c5c-83ec-4ef8d6d1ddbd', {
  voice_memo_url: 'https://example.com/voice-memo.m4a',
});

console.log(response.voice_memo);
```

#### Response

```json
{
  "voice_memo": {
    "id": "69a37c7d-af4f-4b5e-af42-e28e98ce873a",
    "chat": {
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
      "handles": [
        {
          "id": "550e8400-e29b-41d4-a716-446655440000",
          "handle": "+15551234567",
          "joined_at": "2025-05-21T15:30:00.000-05:00",
          "service": "iMessage",
          "is_me": false,
          "left_at": "2019-12-27T18:11:19.117Z",
          "status": "active"
        }
      ],
      "is_active": true,
      "is_group": true,
      "service": "iMessage"
    },
    "created_at": "2019-12-27T18:11:19.117Z",
    "from": "+12052535597",
    "status": "queued",
    "to": [
      "+12052532136"
    ],
    "voice_memo": {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "filename": "voice-memo.m4a",
      "mime_type": "audio/x-m4a",
      "size_bytes": 524288,
      "url": "https://cdn.linqapp.com/voice-memos/abc123.m4a",
      "duration_ms": 15000
    },
    "service": "iMessage"
  }
}
```
