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.
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:
TikTok: https://www.tiktok.com/@cutshall73/video/7543017294226558221
Instagram: https://www.instagram.com/p/DNu8_Fs4mSd/
YouTube: https://www.youtube.com/shorts/T2ThsydNQaM
Prerequisites
Request Example
import requests
headers = {"Authorization": "sk-mavi-..."}
payload = {
"video_urls": [
"https://www.tiktok.com/@cutshall73/video/7543017294226558221",
"https://www.tiktok.com/@abcnews/video/7543794552365124919"
],
"unique_id": "my-project",
"callback_url": "https://your.app/callback",
"quality": "1080"
}
response = requests.post(
"https://api.memories.ai/serve/api/v1/scraper_url",
json=payload,
headers=headers
)
print(response.json())
Parameters
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.
Additional TikTok post URLs. Merged server-side with video_urls before processing. Counts toward the 50-URL cap.
Namespace to group videos in your account.
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.
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
{
"code": "0000",
"msg": "success",
"data": {
"taskId": "31b0fccb-d6f9-4135-922d-1e8828499812"
},
"success": true,
"failed": false
}
Response Fields
Business status code. 0000 indicates success.
Human-readable status message.
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.
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:[
"https://www.tiktok.com/@cutshall73/video/7543017294226558221",
"https://www.tiktok.com/@abcnews/video/7543794552365124919"
]
Optional TikTok post URLs. Server merges these into video_urls before processing. Counts toward the 50-URL cap.
Scope identifier. A folder is auto-created on first use for the authenticated account.
Callback URL for task-complete and per-video indexing-complete notifications.
Example:"https://your.app/callback"
Target video resolution. Must be one of 360/480/720/1080/1440/2160 (string).
Available options:
360,
480,
720,
1080,
1440,
2160
Business status code. 0000 indicates success.
Example:{
"taskId": "31b0fccb-d6f9-4135-922d-1e8828499812"
}