Send as multipart/form-data.
The media file to upload (image or video, max 100 MB)
JSON array of tags as a string, e.g. ["tag1", "tag2"]
curl -X POST https://api.usenaive.ai/v1/media/upload/file \
-H "Authorization: Bearer nv_sk_live_..." \
-F "file=@./campaign-video.mp4" \
-F "title=Campaign Video" \
-F 'tags=["campaign","q3"]'
{
"id": "asset-uuid",
"upload_id": "local-1716201600000",
"url": "https://bucket.fly.storage.tigris.dev/uploads/company-uuid/file-uuid.mp4",
"filename": "campaign-video.mp4",
"content_type": "video/mp4",
"size_bytes": 15234567,
"thumbnail_url": null,
"source_type": "manual",
"source_job_id": null,
"title": "Campaign Video",
"description": null,
"tags": ["campaign", "q3"],
"created_at": "2026-05-20T10:00:00Z",
"updated_at": "2026-05-20T10:00:00Z"
}
Cost: Free (storage included)