Skip to documentation
MakeInfluencer.ai
v1

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

POSThttps://www.makeinfluencer.ai/api/v1/assets/presign

Send the file MIME type and exact byte size. Supported image, video, and audio files can be up to 8 MB.

cURL
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 }'
Presign response
{
  "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.

PUT raw bytes
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

Open the MakeInfluencer Library, upload the file in your browser, then choose Copy for AI. Paste the copied permanent URL into the model request.

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.