REST API
Upload input assets
Upload image, video, and audio inputs with a short-lived URL, with a browser library fallback for CORS-restricted environments.
Create an upload URL
https://www.makeinfluencer.ai/api/v1/assets/presignSend the file MIME type and exact byte size. Supported image, video, and audio files can be up to 8 MB.
curl --request POST https://www.makeinfluencer.ai/api/v1/assets/presign \
--header "Authorization: Bearer $MAKEINFLUENCER_API_KEY" \
--header "Content-Type: application/json" \
--data '{ "mimeType": "image/png", "sizeBytes": 204800 }'{
"uploadUrl": "https://storage.example/…signed…",
"assetUrl": "https://assets.makeinfluencer.ai/…/asset.png",
"expiresInSeconds": 120,
"method": "PUT",
"headers": { "Content-Type": "image/png" },
"browserUploadUrl": "https://www.makeinfluencer.ai/dashboard/library?tab=uploads"
}Upload file bytes
PUT the raw bytes to uploadUrl before it expires. Send the returned Content-Type header. Do not send the MakeInfluencer Authorization header to the storage URL.
await axios.put(upload.data.uploadUrl, file, {
headers: upload.data.headers,
});Use the permanent asset URL
After a successful PUT, pass assetUrlinto the selected model's image, video, or audio field. The live model contract names the accepted field.
Browser library fallback
Use this when CORS or sandbox egress blocks PUT
This fallback is especially useful for hosted coding agents and MCP clients whose network sandbox cannot upload directly to a presigned storage origin. Browser uploads do not consume generation credits.