Skip to main content
POST
/
openapi
/
v1
/
assets
/
material
/
upload
/
complete
Complete single-file upload
curl --request POST \
  --url https://api.vmeg.ai/openapi/v1/assets/material/upload/complete \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-Idempotency-Key: <x-idempotency-key>' \
  --data '
{
  "s3Uri": "<string>",
  "fileName": "<string>",
  "materialId": "<string>",
  "fileHash": "<string>"
}
'
{
  "code": 200,
  "message": "",
  "data": {
    "materialId": "<string>",
    "category": "video",
    "name": "<string>",
    "addressUrl": "<string>",
    "thumbnailUrl": "<string>",
    "audioUrl": "<string>",
    "resolution": "1920x1080",
    "mimeType": "<string>",
    "fileHash": "<string>",
    "filesize": 123,
    "duration": 123,
    "createTime": "<string>",
    "updateTime": "<string>"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.vmeg.ai/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Send your API Key in the Authorization header (Bearer <api_key>). See Authentication.

Headers

X-Idempotency-Key
string
required

Required on mutating POST requests that create tasks or change persisted data (max 64 characters). See Idempotency.

Maximum string length: 64

Body

application/json
s3Uri
string
required

Upload target S3 URI from gen-upload-url or multipart initiate

fileName
string
required

Original file name including extension

materialId
string
required

Material ID from presigned upload. See Materials

fileHash
string
required

MD5 hash of the uploaded file (must match upload request)

Response

200 - application/json

Success

code
integer
required

Business code; 200 means success

Example:

200

message
string

Human-readable detail when code is not success

Example:

""

data
object