> ## Documentation Index
> Fetch the complete documentation index at: https://developer.z-api.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Send audio

> Send an audio to a contact or group on WhatsApp

## Overview

Method responsible for sending audios to your chats. You can work with audios in 2 ways:

* **By Link**: if you have the audio hosted somewhere on the internet, just send the link;
* **By Base64**: if you want to send the audio in Base64 format.

***

#### Example on WhatsApp

<div style={{ display: "flex", justifyContent: "center" }}>
  <img src="https://mintcdn.com/z-api-8aa3bb40/nNYp_QHy_iUs4_xM/images/send-message-audio-eng.jpeg?fit=max&auto=format&n=nNYp_QHy_iUs4_xM&q=85&s=2851879fe7e59e975e154042f5237989" width="300" data-path="images/send-message-audio-eng.jpeg" />

  <img src="https://mintcdn.com/z-api-8aa3bb40/nNYp_QHy_iUs4_xM/images/send-message-audio-wave-eng.jpeg?fit=max&auto=format&n=nNYp_QHy_iUs4_xM&q=85&s=9b71a5a620d4315f8ba13b77288fe8a5" width="300" data-path="images/send-message-audio-wave-eng.jpeg" />
</div>

## Attributes

### Header

<ParamField path="instanceId" type="string" required>
  Your instance ID. Available in the Z-API panel under **Instances**.
</ParamField>

<ParamField path="token" type="string" required>
  Your Z-API instance token.
</ParamField>

### Required

<ParamField body="phone" type="string" required>
  Recipient's phone number (or group ID for group messages) in DDI DDD NUMBER format. E.g.: 551199999999
</ParamField>

<ParamField body="audio" type="string" required>
  Audio link or Base64
</ParamField>

### Optional

<ParamField body="delayMessage" type="number">
  Delay added to the message. You can choose between a range of 1 to 15 sec, meaning how many seconds it will wait before sending the next message. (E.g.: "delayMessage": 5). The default delay if not provided is 1 to 3 sec
</ParamField>

<ParamField body="delayTyping" type="number">
  Delay added to the message. You can choose between a range of 1 to 15 sec, meaning how many seconds it will show "Recording audio..." status. The default delay if not provided is 0
</ParamField>

<ParamField body="viewOnce" type="boolean">
  Whether it will be a view-once message or not
</ParamField>

<ParamField body="async" type="boolean">
  If enabled, the request will respond immediately with success and the file processing will be done in the background
</ParamField>

<ParamField body="waveform" type="boolean">
  Whether the audio will be sent with sound waves or not
</ParamField>

***

## Request Body

**By link:**

```json theme={"theme":{"light":"github-light","dark":"poimandres"}}
{
  "phone": "5511999999999",
  "audio": "https://example.com/audio.mp3",
  "viewOnce": false,
  "waveform": true
}
```

**By Base64:**

```json theme={"theme":{"light":"github-light","dark":"poimandres"}}
{
  "phone": "5511999999999",
  "audio": "data:audio/mpeg;base64,SUQzAwAAAAAAbVRYWFgAAAAgAAAA...",
  "viewOnce": false,
  "waveform": true
}
```

***

## Response

### 200

```json theme={"theme":{"light":"github-light","dark":"poimandres"}}
{
  "zaapId": "3999984263738042930CD6ECDE9VDWSA",
  "messageId": "D241XXXX732339502B68",
  "id": "D241XXXX732339502B68"
}
```

### 405

Make sure you are correctly sending the method specification, that is, verify that you sent POST or GET as specified at the beginning of this topic.

### 415

If you receive a 415 error, make sure to add the "Content-Type" header to your request, which in most cases is "application/json".
