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
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
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
200 - Signed URL generated successfully
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
}
400 - Bad Request - Invalid parameters
413 - File size exceeds maximum allowed limit
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 );