API
Log in
Documentation › Campaigns › Upload campaign media
POST

Upload campaign media

POSThttps://app.sendapp.ai/api/campaigns/upload_media
Upload a media file (image, audio, video, document) to storage and get the public URL to use as media_url when creating a campaign draft. multipart/form-data request, maximum size 10 MB.
Parameters
apikey required
Your API Key.
token required
Account token.
file required
The file to upload (multipart, max 10 MB).
Request
curl -X POST 'https://app.sendapp.ai/api/campaigns/upload_media' \
  -F 'apikey=YOUR_API_KEY' \
  -F 'token=YOUR_ACCOUNT_TOKEN' \
  -F 'file=@/path/to/image.jpg'
<?php
$ch = curl_init('https://app.sendapp.ai/api/campaigns/upload_media');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => [
        'apikey' => 'YOUR_API_KEY',
        'token'  => 'YOUR_ACCOUNT_TOKEN',
        'file'   => new CURLFile('/path/to/image.jpg'),
    ],
]);
echo curl_exec($ch);
const form = new FormData();
form.append('apikey', 'YOUR_API_KEY');
form.append('token', 'YOUR_ACCOUNT_TOKEN');
form.append('file', fileInput.files[0]);

const res = await fetch('https://app.sendapp.ai/api/campaigns/upload_media', { method: 'POST', body: form });
console.log(await res.json()); // { status:'success', url:'https://...' }
Response (200 OK)
{
  "status": "success",
  "success": true,
  "url": "https://cdn.sendapp.example/media/abc123.jpg",
  "type": "image",
  "filename": "promo.jpg"
}
Error
{
  "status": "error",
  "success": false,
  "message": "Failed to upload media file."
}