Upload Media

POST /api/external/messages/upload-media

Auth: Authorization: Bearer ck_<api_key> (required)

Content-Type: multipart/form-data

Request parameters

FieldRequiredTypeDescription
mediaFileYesfileMedia file to upload. Maximum size 15 MB.
phoneNumberIdYesstringWhatsApp phone number ID. Also accepts Phone_Number_Id.
mediaTypeNostringUsed 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']
    ]
]);
Meta reference: Media upload reference