Prerequisites
- You’re familiar with the concepts described on the Platform overview.
- You have created a memories.ai API key.
- Video and audio formats: h264, h265, vp9, or hevc.
- Audio track: Required if you intend to use the audio transcription feature.
Host URL
Endpoint
POST /serve/api/v1/upload
Request Example
import os
import requests
headers = {"Authorization": "<API_KEY>"}
file_path = "<VIDEO_FILE_PATH>"
files = {
"file": (os.path.basename(file_path), open(file_path, 'rb'), "video/mp4")
}
data = {
"callback": "<CallBack URL>",
"unique_id": 'test1020',
"datetime_taken": "2025-10-20 11:00:00",
"camera_model": "Canon EOS 5D",
"latitude": "66.66",
"longitude": "66.66",
"tags": ["test1", "test2", "test3", "test4", "test5"],
"retain_original_video": True,
"video_transcription_prompt": '<YOUR_CUSTOMIZED_PROMPT_FOR_VIDEO_FOCUS>'
}
response = requests.post(
"https://api.memories.ai/serve/api/v1/upload",
files=files,
data=data,
headers=headers
)
print(response.json())
Callback Notification Payload
If you provide a callback, memories.ai will send a POST request to it once the video has been uploaded or parsed.
{
"videoNo": "VI554046065381212160",
"status": "PARSE"
}
Request Parameters
The video file to upload.
Callback URL for status updates.
Format: YYYY-MM-DD HH:MM:SS
List of tags (e.g., [“test1”, “test2”]).
Whether to retain the original video file.
video_transcription_prompt
Custom prompt for video focus.
Response Example
{
"code": "0000",
"msg": "success",
"data": {
"videoNo": "VI568102998803353600",
"videoName": "1be6a69f3c6e49bf986235d68807ab1f",
"videoStatus": "UNPARSE",
"uploadTime": "1744905509814"
}
}
Example:"https://your.app/callback"
video_transcription_prompt
Example:"Focus on the speaker and major scene changes."
code
stringinteger
data
objectobject[]string