Skip to main content
The Videos API lets you stock your organization’s video library programmatically: import an MP4 by URL, wait for processing, and get back a 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:
Two possible success responses:
  • 202 — import accepted, processing in the background (videoId is omitted until ready):
  • 200 — your organization already has this exact video (content duplicate detected by hash). No reprocessing; the existing videoId is 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)
Violations return 400 invalid_video_url with a specific message.

Poll import status

GET /v1/videos/import/{sessionId} Poll until status is ready or failed:
Session lookups are scoped to your organization — an unknown or foreign sessionId returns 404 video_import_session_not_found.

Use the videoId in campaigns

Once ready, pass the videoId in creativeDirection.selectedCreatives when creating a campaign with full_control:
Imported videos also appear in your video library in the Soundlink app, alongside videos uploaded there.

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 your videoId in a Full Control campaign · API Reference