Skip to main content
GET
/
serve
/
api
/
v1
/
get_metadata
Get Video Metadata
curl --request GET \
  --url https://api.memories.ai/serve/api/v1/get_metadata \
  --header 'Authorization: <api-key>'
{
  "code": "0000",
  "msg": "success",
  "data": {
    "video_no": "VI606404158946574336",
    "video_name": "182082-867762198_tiny",
    "duration": 12,
    "size": 3284512,
    "status": "PARSE",
    "create_time": 1754037217992,
    "resolution_label": "720P",
    "fps": 30,
    "width": 1280,
    "height": 720,
    "datetime_taken": 1729388400000,
    "camera_model": "Canon EOS 5D",
    "latitude": 39.9042,
    "longitude": 116.4074,
    "tags": [
      "holiday",
      "beijing",
      "api"
    ]
  },
  "success": true,
  "failed": false
}

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.

Prerequisites

  • You’re familiar with the concepts described on the Platform overview.
  • You have created a memories.ai API key.
  • You have uploaded the target video using the Upload API (metadata fields only become available after the video finishes parsing and its summary row is populated).

Host URL

https://api.memories.ai

Endpoint

GET /serve/api/v1/get_metadata
/serve/api/v1/get_metadata

Authentication

Pass your API key in the Authorization request header. Requests without a valid API key are rejected.
Authorization: <API_KEY>

Request Example

import requests

url = "https://api.memories.ai/serve/api/v1/get_metadata"
params = {
    "video_no": "VI606404158946574336",
    "unique_id": "default"
}
headers = {"Authorization": "<API_KEY>"}

response = requests.get(url, headers=headers, params=params)
print(response.json())

Query Parameters

video_no
string
required
The video identifier returned by the upload API (e.g. VI606404158946574336). Must be non-empty.
unique_id
string
default:"default"
Scope identifier for the authenticated account (corresponds to the upload-time unique_id). Must be non-empty when explicitly provided.

Notes & Limits

  • Rate limiting: The endpoint is protected by a per-account rate limit. Exceeding the limit returns an error indicating the request has exceeded the limit.
  • Metadata availability: The capture-time metadata fields (datetime_taken / camera_model / latitude / longitude / tags) are only present when the corresponding value was supplied at upload and the video’s summary row has been written (i.e. after parsing completes). Videos not yet parsed return the basic fields only.
  • Not found: If the video does not exist (or does not belong to this account), the response data is null.

Response Example

{
    "code": "0000",
    "msg": "success",
    "data": {
        "video_no": "VI606404158946574336",
        "video_name": "182082-867762198_tiny",
        "duration": 12,
        "size": 3284512,
        "status": "PARSE",
        "create_time": 1754037217992,
        "resolution_label": "720P",
        "fps": 30,
        "width": 1280,
        "height": 720,
        "datetime_taken": 1729388400000,
        "camera_model": "Canon EOS 5D",
        "latitude": 39.9042,
        "longitude": 116.4074,
        "tags": ["holiday", "beijing", "api"]
    },
    "success": true,
    "failed": false
}

Response Fields

code
string
Business status code. 0000 indicates success.
msg
string
Human-readable status message.
data
object
The video item. null when the video is not found.

Basic fields

data.video_no
string
Unique video identifier.
data.video_name
string
Internal stored name of the video.
data.duration
integer
Video duration in seconds.
data.size
integer
File size in bytes.
data.create_time
integer
Upload time in milliseconds since epoch.
data.status
string
Processing status. One of PARSE, UNPARSE, FAILED.
data.cause
string
Failure reason — only present when status=FAILED.
data.resolution_label
string
Human-readable resolution label (e.g. 720P, 1080P).
data.fps
integer
Frames per second.
data.width
integer
Frame width in pixels.
data.height
integer
Frame height in pixels.

Metadata fields

These are only present when the corresponding value was supplied at upload time and the video’s summary row has been written.
data.datetime_taken
integer
Capture timestamp in milliseconds since epoch.
data.camera_model
string
Camera/device model recorded at upload.
data.latitude
number
Decimal latitude.
data.longitude
number
Decimal longitude.
data.tags
array
User-defined tags. The server automatically appends an api tag on every API upload.

Authorizations

Authorization
string
header
required

Query Parameters

video_no
string
required

Video identifier. Must be non-empty.

unique_id
string
default:default

Scope identifier for the authenticated account.

Response

200 - application/json

Successful response

code
string
Example:

"0000"

msg
string
Example:

"success"

data
object
success
boolean
Example:

true

failed
boolean
Example:

false