Skip to main content
Generates a signed URL for direct file upload to Google Cloud Storage. Returns a signed URL valid for 15 minutes. Upload file via PUT request, then call /complete to finalize.
POST https://services.leadconnectorhq.com/conversations/messages/upload/initiate

Autorización

Authorization
string
required
Bearer token generado desde el portal Leadway. Ver Autenticación.
Version
string
default:"2021-07-28"
required
Versión de la API.

Body

locationId
string
default:"ve9EPM428h8vShlRW1KT"
required
Account ID
conversationId
string
default:"ve9EPM428h8vShlRW1KT"
required
Conversation ID
filename
string
default:"video.mp4"
required
Original filename with extension
contentType
string
default:"video/mp4"
required
MIME type of the file
fileSize
number
default:"52428800"
File size in bytes (optional, for pre-validation)
channel
string
default:"WHATSAPP"
required
Channel type for size limits (WHATSAPP for 100MB limit, others for 5MB)

Respuestas

uploadUrl
string
required
Signed URL for direct upload to GCS. Use PUT request with file content.
uploadId
string
default:"a1b2c3d4-e5f6-7890-abcd-ef1234567890"
required
Unique upload ID for tracking and completing the upload
filePath
string
default:"account/loc123/conversations/conv456/uuid.mp4"
required
File path in GCS bucket (needed for confirmation endpoint)
expiresAt
number
default:"1701619200000"
required
URL expiration timestamp (Unix milliseconds)
maxFileSize
number
default:"104857600"
required
Maximum allowed file size in bytes
{
  "uploadUrl": "https://storage.googleapis.com/bucket/path?X-Goog-Algorithm=...",
  "uploadId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "filePath": "account/loc123/conversations/conv456/uuid.mp4",
  "expiresAt": 1701619200000,
  "maxFileSize": 104857600
}
{}

Ejemplo

curl -X POST 'https://services.leadconnectorhq.com/conversations/messages/upload/initiate' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Version: 2021-07-28' \
  -H 'Content-Type: application/json' \
  -d '{
  "locationId": "ve9EPM428h8vShlRW1KT",
  "conversationId": "ve9EPM428h8vShlRW1KT",
  "filename": "video.mp4",
  "contentType": "video/mp4",
  "fileSize": 52428800,
  "channel": "WHATSAPP"
}'
const response = await fetch('https://services.leadconnectorhq.com/conversations/messages/upload/initiate', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.LEADWAY_TOKEN}`,
    Version: '2021-07-28',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({"locationId": "ve9EPM428h8vShlRW1KT", "conversationId": "ve9EPM428h8vShlRW1KT", "filename": "video.mp4", "contentType": "video/mp4", "fileSize": 52428800, "channel": "WHATSAPP"}),
});
const data = await response.json();
import os, requests
response = requests.request(
    'POST',
    'https://services.leadconnectorhq.com/conversations/messages/upload/initiate',
    headers={
        'Authorization': f"Bearer {os.environ['LEADWAY_TOKEN']}",
        'Version': '2021-07-28',
        'Content-Type': 'application/json',
    },
    json={"locationId": "ve9EPM428h8vShlRW1KT", "conversationId": "ve9EPM428h8vShlRW1KT", "filename": "video.mp4", "contentType": "video/mp4", "fileSize": 52428800, "channel": "WHATSAPP"},
)
data = response.json()
<?php
$ch = curl_init('https://services.leadconnectorhq.com/conversations/messages/upload/initiate');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('LEADWAY_TOKEN'),
        'Version: 2021-07-28',
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode({'locationId': 've9EPM428h8vShlRW1KT', 'conversationId': 've9EPM428h8vShlRW1KT', 'filename': 'video.mp4', 'contentType': 'video/mp4', 'fileSize': 52428800, 'channel': 'WHATSAPP'}),
]);
$data = json_decode(curl_exec($ch), true);