Skip to main content
POST
Upload a video
Product: Video Datalake Host: https://api.memories.ai/datalake/v1 Auth: Authorization: sk-mai-...
Pull a video from a public direct link into a collection for indexing. Returns 202 + a video_id and an operation you poll to done. For local files use Upload — from File; for very large files use Resumable Upload.
Pricing: $0.04 / minute of indexed video · See Pricing for the full model.

Response Fields

string
New video ID (vid_ prefix).
string
Ingest Operation handle; poll Get Operation.
string
Always processing right after acceptance.

Notes

Balance precheck: a balance ≤0 returns 402 quota_exceeded.

Authorizations

Authorization
string
header
required

Send Authorization: sk-mai-...

Query Parameters

upload
enum<string>

Set to resumable to start a chunked upload session for large files.

Available options:
resumable

Body

collection_id
string
required

Target collection. The video inherits its embedding model / detectors / face config.

source_url
string

URL mode only: a public direct link. Platform links (YouTube/TikTok) fail with source_unresolved.

fps
number
default:1

Sampling frame rate [0.1, 30]. Default 1.0.

captured_at
string

ISO-8601 capture time (falls back to video EXIF).

location
object
metadata
object

{title, tags:[], custom:{}}. Set title to the original filename.

callback_url
string

HTTPS webhook, ≤512 chars, fired on completion.

idempotency_key
string

≤128 chars. Same key re-submits the existing video.

Response

200 - application/json

Accepted