Skip to main content
POST
Upload a video
Product: Video Datalake Host: https://api.memories.ai/datalake/v1 Auth: Authorization: sk-mai-...
Start a resumable (chunked) upload for large files. Returns a GCS-signed upload_url you PUT the file to, then call Finalize. Recommended for files over ~100 MB.
Pricing: $0.04 / minute of indexed video · See Pricing for the full model.

Response Fields

string
New video ID.
string
GCS resumable-session signed URL (24h TTL).
integer
Recommended chunk size in bytes (16 MiB).

Notes

Client flow: (1) POST {upload_url} with x-goog-resumable: start to get the session URI from the Location header; (2) PUT the file to that URI (chunkable); (3) call Finalize (or wait ≤60s for auto-detect).

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