videoId. You can do this independently of any campaign — for example, to sync your creative library ahead of time — and later use the videoId in Full Control campaigns.
Requires the videos:write scope on your key (see Authentication).
Import a video
POST /v1/videos/import
Provide a public HTTPS URL to an MP4 file (max 50 MB). Soundlink downloads the file, stages it, and starts the background processing pipeline:
202— import accepted, processing in the background (videoIdis omitted until ready):
200— your organization already has this exact video (content duplicate detected by hash). No reprocessing; the existingvideoIdis returned immediately:
Duplicate detection makes imports safe to repeat: re-importing the same file returns the existing
videoId instead of creating a copy or consuming extra plan quota.URL requirements
- HTTPS only — plain
http://URLs are rejected - Must be publicly reachable (no auth walls, no private/internal addresses)
- Content must be MP4, up to 50 MB
- The download must complete within ~45 seconds — very slow hosts fail; redirects are followed (up to 5 hops)
400 invalid_video_url with a specific message.
Poll import status
GET /v1/videos/import/{sessionId}
Poll until status is ready or failed:
sessionId returns 404 video_import_session_not_found.
Use the videoId in campaigns
Onceready, pass the videoId in creativeDirection.selectedCreatives when creating a campaign with full_control:
Limits
The video import rate limit (5/hour) is stricter than the general Public API rate limit and is
counted separately per API key.
Errors
See Errors for the full list.
Next
Creating campaigns — use yourvideoId in a Full Control campaign · API Reference