Skip to main content
POST
Upload Video from Platform URL
Product: Visual Search Use case: Upload videos and images, auto-index them, then search by natural language, image, or transcript phrase Host: https://api.memories.ai/serve/api/v1 Auth: Authorization: sk-mavi-... (no Bearer prefix)
Import up to 50 post URLs in one request into your Private Video Library — searchable by your account only. All URLs must be from the same platform. Related endpoints: Import from Post URLs — Public (shared library) · Import from Creator Profile · Import from Hashtag. Example URLs:

Prerequisites

Request Example

Parameters

video_urls
array
required
List of post URLs to import. Combined with tiktok_post_urls (if provided), the total must not exceed 50 URLs. All URLs must be from the same platform.
tiktok_post_urls
array
Additional TikTok post URLs. Merged server-side with video_urls before processing. Counts toward the 50-URL cap.
folder_id
integer
Optional. Target folder for the uploaded video(s). Omit (or pass -1) to store in your account’s Default folder (created automatically on first use). Pass a folder id from List Folders or Create Folder to store in that folder — it must belong to your account, otherwise the request is rejected.
callback_url
string
URL to receive POST notifications on task progress and per-video indexing completion. The server also accepts the alias callback — pick one and stick with it per project.
quality
string
default:"720"
Target resolution. One of "360", "480", "720", "1080", "1440", "2160". For YouTube, the actual resolution will be ≤ the requested value based on source availability. For TikTok and Instagram, videos are scraped at their original resolution.

Response Example

Response Fields

code
string
Business status code. 0000 indicates success.
msg
string
Human-readable status message.
data.taskId
string
Unique identifier for the import task. Use with Get Task Status to check progress, or match against callback notifications.

Next Steps

Poll Get Task Status with the returned taskId until each derived video’s status reaches PARSE. Empty data.videos covers both “still downloading” and “task_id not found” — combine with a client-side timeout. FAIL is common for DRM-protected YouTube content.

Notes & Limits

  • Rate limiting: See Rate limits.
  • Billing: Each request deducts credits. YouTube URLs consume additional credits.
  • Same-origin constraint: All URLs in one request must be from the same platform — mixed-platform batches are rejected.
  • YouTube: Indexing may be slower than TikTok or Instagram due to scraper capacity.

Authorizations

Authorization
string
header
required

Body

application/json
video_urls
string<uri>[]
required

Platform video URLs. Merged with tiktok_post_urls; combined list must be non-empty and <= 50. All URLs must be from the same platform.

Maximum array length: 50
Example:
tiktok_post_urls
string<uri>[]

Optional TikTok post URLs. Server merges these into video_urls before processing. Counts toward the 50-URL cap.

callback_url
string<uri>

Callback URL for task-complete and per-video indexing-complete notifications.

Example:

"https://your.app/callback"

quality
enum<string>
default:360

Target video resolution. Must be one of 360/480/720/1080/1440/2160 (string).

Available options:
360,
480,
720,
1080,
1440,
2160
Example:

"1080"

folder_id
integer

Optional target folder for the upload. Omit or pass -1 for the account's Default folder (auto-created on first use). A positive id must belong to your account.

Example:

671631448308117500

Response

200 - application/json

Successful response

code
string

Business status code. 0000 indicates success.

Example:

"0000"

msg
string
Example:

"success"

data
object
Example:
success
boolean
Example:

true

failed
boolean
Example:

false