Upload Media
POST /api/external/messages/upload-media
Auth: Authorization: Bearer ck_<api_key> (required)
Content-Type: multipart/form-data
Request parameters
| Field | Required | Type | Description |
|---|---|---|---|
mediaFile | Yes | file | Media file to upload. Maximum size 15 MB. |
phoneNumberId | Yes | string | WhatsApp phone number ID. Also accepts Phone_Number_Id. |
mediaType | No | string | Used in the local storage path segment (e.g. image, document). |
Response example
{
"success": true,
"message": "Media uploaded successfully",
"data": {
"mediaId": "900000000000099",
"mediaUrl": "https://chatyug.com/chat_media/images/chat_example_file.png",
"filename": "chat_example_file.png",
"size": 245760,
"mimetype": "image/png"
}
}Use mediaId when sending media messages through Meta's Cloud API within the customer service window.
Code samples
curl -X POST https://chatyug.com/api/external/messages/upload-media \ -H "Authorization: Bearer ck_your_api_key_here" \ -F "mediaFile=@/path/to/image.png" \ -F "phoneNumberId=100000000000001" \ -F "mediaType=image"
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
const form = new FormData();
form.append('mediaFile', fs.createReadStream('./image.png'));
form.append('phoneNumberId', '100000000000001');
form.append('mediaType', 'image');
await axios.post('https://chatyug.com/api/external/messages/upload-media', form, {
headers: {
Authorization: 'Bearer ck_your_api_key_here',
...form.getHeaders()
}
});import requests
with open('image.png', 'rb') as f:
r = requests.post(
'https://chatyug.com/api/external/messages/upload-media',
files={'mediaFile': f},
data={'phoneNumberId': '100000000000001', 'mediaType': 'image'},
headers={'Authorization': 'Bearer ck_your_api_key_here'}
)$client = new GuzzleHttp\Client();
$client->post('https://chatyug.com/api/external/messages/upload-media', [
'headers' => ['Authorization' => 'Bearer ck_your_api_key_here'],
'multipart' => [
['name' => 'mediaFile', 'contents' => fopen('/path/to/image.png', 'r')],
['name' => 'phoneNumberId', 'contents' => '100000000000001'],
['name' => 'mediaType', 'contents' => 'image']
]
]);