---
title: Voice Memos | API Docs
description: Send audio as an iMessage voice memo with native inline playback.
---

Voice memos are sent through a dedicated endpoint. On **iMessage**, they render with the native inline audio player — the voice-memo bubble you get when recording in the Messages app. On **RCS** and **SMS**, this endpoint falls back to a regular audio attachment, which is the same result you’d get from sending the audio as a media part via the [standard send-message flow](/guides/messaging/sending-messages#message-parts/index.md). In practice the endpoint is useful when you specifically want the iMessage voice-memo affordance for iMessage-capable recipients; for RCS/SMS delivery you can use either path (see [Protocol Selection](/guides/messaging/protocol-selection/index.md)).

## Sending a voice memo

Pass either a publicly-accessible HTTPS `voice_memo_url` or a pre-uploaded `attachment_id` (see [Attachments](/guides/messaging/attachments/index.md)). See the [Send Voice Memo API reference](/api/resources/chats/methods/send_voicememo/index.md) for the full endpoint specification.

### With a URL

- [cURL](#tab-panel-96)
- [TypeScript](#tab-panel-97)
- [Python](#tab-panel-98)
- [Go](#tab-panel-99)

Terminal window

```
curl -X POST https://api.linqapp.com/api/partner/v3/chats/{chatId}/voicememo \
  -H "Authorization: Bearer $LINQ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
      "voice_memo_url": "https://example.com/voice-memo.m4a"
    }'
```

```
await client.chats.sendVoicememo({chatId}, {
  voice_memo_url: "https://example.com/voice-memo.m4a",
});
```

```
client.chats.send_voicememo(
    {chat_id},
    voice_memo_url="https://example.com/voice-memo.m4a",
)
```

```
client.Chats.SendVoicememo(context.TODO(), {chatId}, linq.ChatSendVoicememoParams{
  VoiceMemoUrl: linq.F("https://example.com/voice-memo.m4a"),
})
```

### With a pre-uploaded `attachment_id`

- [cURL](#tab-panel-100)
- [TypeScript](#tab-panel-101)
- [Python](#tab-panel-102)
- [Go](#tab-panel-103)

Terminal window

```
curl -X POST https://api.linqapp.com/api/partner/v3/chats/{chatId}/voicememo \
  -H "Authorization: Bearer $LINQ_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
      "attachment_id": "550e8400-e29b-41d4-a716-446655440000"
    }'
```

```
await client.chats.sendVoicememo({chatId}, {
  attachment_id: "550e8400-e29b-41d4-a716-446655440000",
});
```

```
client.chats.send_voicememo(
    {chat_id},
    attachment_id="550e8400-e29b-41d4-a716-446655440000",
)
```

```
client.Chats.SendVoicememo(context.TODO(), {chatId}, linq.ChatSendVoicememoParams{
  AttachmentId: linq.F("550e8400-e29b-41d4-a716-446655440000"),
})
```

## Supported audio formats

| Format | MIME type                    |
| ------ | ---------------------------- |
| MP3    | `audio/mpeg`                 |
| M4A    | `audio/x-m4a`, `audio/mp4`   |
| AAC    | `audio/aac`                  |
| CAF    | `audio/x-caf`                |
| WAV    | `audio/wav`                  |
| AIFF   | `audio/aiff`, `audio/x-aiff` |
| AMR    | `audio/amr`                  |

## Notes

- **iMessage-specific affordance** — The inline voice-memo bubble is iMessage-only. On RCS and SMS this endpoint delivers the audio as a regular attachment, equivalent to sending a media part via the [standard send-message flow](/guides/messaging/sending-messages#message-parts/index.md) — use whichever path is more convenient for those recipients.
- **HTTPS required** — The source URL must be publicly reachable with a valid TLS certificate. The API downloads the file before sending.
- **File size** — The 10 MB direct-URL limit applies. Larger files should be hosted on a CDN you control.
- **Webhooks** — Voice memo delivery is confirmed via the standard `message.sent` / `message.delivered` / `message.failed` events. See [Webhooks](/guides/webhooks/index.md).
