Upload an ad video
Changed onUploads a video to a Meta ad account from a URL or file, so you can preview it or use it in ads before any ad exists.
Standalone ad-video upload (parallel to POST /v1/ads/images), so a video creative can be rendered via POST /v1/ads/preview or attached via video.id on POST /v1/ads/create before an ad exists.
Accepts either an https videoUrl we download server-side (SSRF-guarded) or raw videoBase64 bytes; exactly one is required. videoBase64 is capped by Vercel's body limit, around 4.5 MB payload in practice, so larger videos must come via videoUrl.
Returns the Meta video.id (reusable wherever video.id is accepted) plus Meta's auto-generated poster URL when available. By default the endpoint waits until Meta reports the video ready (chunked upload + transcode can take minutes; the handler runs up to 800 s) and answers 201.
Async mode. Send async: true to get a 202 as soon as Meta has accepted the bytes, with video.status: processing. Then either poll GET /v1/ads/videos/{videoId} until status is ready, or subscribe to the ad.video.processed webhook. A create call that references the video while it is still processing waits up to 30 s, then answers 409 invalid_resource_state naming the status endpoint. With videoUrl the download and byte transfer still happen inside the request; only Meta's transcode is skipped.
Request
- Base URL: https://zernio.com/api
- URL: https://zernio.com/api/v1/ads/videos
- Auth: HTTP bearer
Request body
Response
Video uploaded and ready
Changes
- info
added the non-success response with the status
- info
- warning
the
request property's maxLength was set to255 - info
added the new optional request property
- warning