Skip to main content

Documentation Index

Fetch the complete documentation index at: https://api-tools.memories.ai/llms.txt

Use this file to discover all available pages before exploring further.

Authentication

Every request requires your API key in the Authorization header:
Authorization: sk-mavi-...
Requests without a valid key are rejected with a 401 error. See Create Your Key.

Indexing Pipeline

When you upload content, the platform runs two indexing pipelines in parallel and automatically — you don’t need to trigger them:
PipelineWhat it doesEnables
EmbeddingEncodes visual frames and audio into semantic vectorsNatural-language search, image search
Caption & transcriptionGenerates scene descriptions and transcribes speechTranscript search, audio search

Task Status

Every uploaded item has a processing status:
StatusMeaning
UNPARSEUpload accepted — indexing in progress. Not yet searchable.
PARSEIndexing complete. Fully searchable across all modalities.
To wait for PARSE, either register a callback URL at upload time, or poll the status. The right polling endpoint depends on the upload method — see Upload Overview → How to wait for indexing to finish for the per-method mapping.

A Note on Field Casing

The Visual Search API mixes camelCase and snake_case across endpoints. The same logical concept can appear with different casings in different responses or parameter names:
ConceptCasing varies
Video identifierUpload returns videoNo; list_videos / get_metadata / get_video_ids_by_task_id responses use video_no; request parameters use video_no
Task identifierupload_from_creator returns taskId; get_video_ids_by_task_id request parameter is task_id
Timestamps in search resultsstartTime, endTime (camel) in search responses; start_time, end_time (snake) in search_clips_by_image
Pass the value through verbatim — both casings refer to the same underlying ID. Each endpoint page documents the exact field names it uses.

Callback Notifications

When you provide a callback URL on upload, the platform POSTs to it when indexing finishes:
{
    "videoNo": "VI554046065381212160",
    "status": "PARSE"
}
The platform retries up to 5 times on failure. Use a tool like Beeceptor to test webhook delivery during development.

Namespaces (unique_id)

Every upload and search accepts a unique_id parameter. A namespace is a partition key that scopes content within your account — uploads and searches under the same unique_id form an isolated slice of your library that is invisible to other namespaces. Namespaces are created automatically on first use. They can represent anything that naturally partitions your data:
Use caseExample unique_id
One namespace per end-useruser_12345
One namespace per customer / tenantacme_corp
One namespace per projectproduct_launch_q3
One namespace per environmentstaging
Omit unique_id (or pass "default") to use the default namespace. Use List Unique IDs to enumerate all namespaces under your account.

Rate Limits & Billing

  • All endpoints are rate-limited per account. See Rate Limits.
  • Uploads and searches deduct credits from your account balance. Insufficient balance causes requests to fail.