> ## 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 video

> Send a video to a contact or group on WhatsApp

## Overview

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

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

<Warning>
  For more predictable API behavior, we recommend using videos encoded with the **H.264** codec, which is the format supported by WhatsApp. Videos using other codecs go through an internal conversion process to H.264, which may cause intermittent sending issues or increase the final file size, potentially exceeding WhatsApp's allowed limit.

  The file size must not exceed **100MB**.
</Warning>

***

#### Example on WhatsApp

<div style={{ display: "flex", justifyContent: "center" }}>
  <img src="https://mintcdn.com/z-api-8aa3bb40/nNYp_QHy_iUs4_xM/images/send-message-video-eng.jpeg?fit=max&auto=format&n=nNYp_QHy_iUs4_xM&q=85&s=642484d1948ea3aa6afe91e5a6fdd6ef" width="400" data-path="images/send-message-video-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="video" type="string" required>
  Video link or Base64
</ParamField>

### Optional

<ParamField body="caption" type="string">
  Message to send along with the video
</ParamField>

<ParamField body="messageId" type="string">
  Attribute used to reply to a chat message, just add the messageId of the message you want to reply to
</ParamField>

<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="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="editVideoMessageId" type="string">
  Allows editing the message caption of a previously sent video. It is required to configure the webhook before using this feature.
</ParamField>

***

## Request Body

**By link:**

```json theme={"theme":{"light":"github-light","dark":"poimandres"}}
{
  "phone": "5511999999999",
  "video": "https://example.com/video.mp4",
  "caption": "",
  "viewOnce": false
}
```

**By Base64:**

```json theme={"theme":{"light":"github-light","dark":"poimandres"}}
{
  "phone": "5511999999999",
  "video": "data:video/mp4;base64,AAYXJ0eKEF...",
  "caption": "",
  "viewOnce": false
}
```

***

## 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".
