Skip to main content
GET
Get Task Status
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)
Track a batch upload task — the kind where one request expands into multiple videos — and retrieve the video_no of each video the task produced. This endpoint is for tasks that return a taskId, namely Upload from Social Media. Once the task downloads each video, it queues each one for indexing; this endpoint reports the per-video parse status as it progresses.
This endpoint is not for single-file uploads. Upload Video and Upload Image return a videoNo directly — there is no task to track. To poll the indexing status of a single video, call Get Metadata with the video_no instead, or register a callback URL at upload time.

Prerequisites

Endpoint

GET /serve/api/v1/get_video_ids_by_task_id

Request Example

The request parameter is named task_id (snake_case), but the upload response returns taskId (camelCase). They refer to the same value — pass the string through as-is.

Request Parameters

task_id
string
required
The taskId returned by Upload from Social Media. Pass the string verbatim — the parameter name is snake_case here even though the upload response field is camelCase.

Response Example

Empty data.videos is ambiguous. A successful response with code: "0000" and data.videos: [] covers two cases that the server does not distinguish:
  1. The task is still downloading content from the source platform (videos haven’t been queued yet).
  2. The task_id does not exist or does not belong to this account.
Your polling loop should rely on a separate timeout to give up — there is no error code to detect “wrong task_id”.

Response Fields

code
string
Business status code. "0000" indicates success. Note that an unknown task_id also returns "0000".
msg
string
Human-readable status message.
data.videos
array
Per-video status entries produced by the task. Empty until the task has finished downloading each source post.
data.videos[].video_no
string
Unique identifier of the derived video. Use this in subsequent operations (search, get_metadata, download, delete).
data.videos[].video_name
string
Best-effort name for the derived video — typically the source post’s title, hashtag, or caption.
data.videos[].duration
string
Video duration in seconds, returned as a string.
data.videos[].create_time
string
Upload-into-library timestamp in milliseconds since epoch, returned as a string.
data.videos[].status
string
Processing status for this derived video. One of:
  • PARSE — Processing complete, video is searchable.
  • UNPARSE — Queued or being processed.
  • FAIL — Processing failed (e.g. source URL blocked, DRM-protected, or unsupported format). Common with media-channel YouTube content (NYT Cooking, Bon Appétit, etc.).
data.videos[].video_url
string
Hosted CDN URL of the stored video (on mavi-resource.openinterx.com). Suitable as a file_uri for Gemini VLM once status is PARSE.
data.videos[].bucket
string
GCS bucket of the original video file. Omitted when the storage location cannot be resolved.
data.videos[].blob
string
GCS blob (object) path of the video file. Use it with bucket at GET /serve/api/v2/download?bucket=&blob= to fetch the file directly.

Authorizations

Authorization
string
header
required

Query Parameters

task_id
string
required

The task ID returned by an upload or scraping request.

Response

200 - application/json

Successful response

code
Example:

"0000"

msg
string
Example:

"success"

data
success
boolean
Example:

true

failed
boolean
Example:

false