Skip to main content
Product: Visual Intelligence — Asset Management Use case: Upload, manage, and download video/image assets used by other Visual Intelligence APIs Host: https://mavi-backend.memories.ai/serve/api/v2 Auth: Authorization: sk-mavi-... (no Bearer prefix)
This is a client-side method to upload files using the signed URL obtained from the /upload/signed-url endpoint.
Pricing:
  • API calls are free
  • Storage fee: $0.001/1GB per day
Quick Start: Use the “Complete Example” section below to get a signed URL and upload a file in one go. Just replace the file path and run the code!

Workflow

  1. Get a signed URL and asset_id from /upload/signed-url
  2. Use the signed URL to upload your file directly to storage
  3. Verify upload completion via /get-metadata (poll until upload_status is SUCCESS)

Complete Example (Ready to Test)

Here’s a complete example that shows how to get a signed URL and use it for upload:

Code Examples (Using Existing Signed URL)

Parameters

Response

Returns HTTP status code and response text from the storage service. Success Response (200):
Error Response (4xx/5xx):

Confirming Upload Completion

After uploading via the signed URL, the MAVI backend automatically detects the file. Use the Get Metadata endpoint with the asset_id (returned in Step 1) to verify the upload is complete:
Only assets with upload_status: "SUCCESS" can be used in subsequent API calls (transcription, editing, etc.). Poll the Get Metadata endpoint until the status is SUCCESS before proceeding.

Notes

  • This upload happens directly to cloud storage (e.g., GCS)
  • No authentication headers needed — the URL contains the signature
  • Signed URLs expire after the time specified in expires_in (typically 26 hours)
  • Make sure to upload the file before the URL expires
  • Supports files up to 5 GB (for files under 500 MB, you can also use the simpler direct upload)