MediaUploadInit media.upload-init@1
Generated at from
openvibe-contracts v0.419.0 and
openvibe-sdk v0.161.0.
- Version
- 1.0.0
- Owner
- media
- Visibility
- public
- Status
- active
- Compatibility
- backward
- Schema
https://openvibe.network/contracts/media/upload-init.v1.json
The object and its presigned multipart session after POST /api/v2/:app/objects. Send parts to part_url_template in any order, then complete.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
id | string | yes | ||
object | media.object | yes | ||
upload | object | yes | ||
upload.method | const | yes |
| |
upload.multipart | media.upload | yes | ||
upload.complete_url | string | yes | ||
upload.multipart_url | string |
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: basic
{
"id": "med_01K5WZX7S7Q4D2B8N3M6V1C9TZ",
"object": {
"id": "med_01K5WZX7S7Q4D2B8N3M6V1C9TZ",
"media_ref": {
"media_id": "med_01K5WZX7S7Q4D2B8N3M6V1C9TZ"
},
"legacy_ref": null,
"app_id": "prj_01K5WZX7S7Q4D2B8N3M6V1C9TA",
"namespace": "app.prj_01K5WZX7S7Q4D2B8N3M6V1C9TA.avatars",
"kind": "file",
"owner": {
"subject": null,
"app": "prj_01K5WZX7S7Q4D2B8N3M6V1C9TA",
"user_id": null
},
"visibility": "private",
"lifecycle_status": "ready",
"mime_type": "image/png",
"size_bytes": 48213,
"content_hash": "3f1c0b8e2a9d7c6b5a4f3e2d1c0b9a8f7e6d5c4b3a2f1e0d9c8b7a6f5e4d3c2b",
"metadata": {
"filename": "a.png"
},
"held": false,
"readiness": {
"metadata": true,
"bytes_verified": true,
"playable": false,
"reason": "not_playback_kind"
},
"public_url": null,
"created_at": "2026-09-26 08:00:00",
"updated_at": "2026-09-26 08:00:01",
"deleted_at": null,
"locations": [
{
"provider": "local",
"storage_class": "hot",
"state": "present",
"size_bytes": 48213,
"verified_at": "2026-09-26 08:00:01",
"canonical": true
}
]
},
"upload": {
"method": "multipart",
"complete_url": "https://openvibe.media/api/v2/demo/objects/med_01K5WZX7S7Q4D2B8N3M6V1C9TZ/complete",
"multipart": {
"upload_id": "mup_01K5WZX7S7Q4D2B8N3M6V1C9TZ",
"object_id": "med_01K5WZX7S7Q4D2B8N3M6V1C9TZ",
"status": "active",
"part_size": 8388608,
"total_size": 8388608,
"parts_expected": 1,
"expires_at": "2026-11-10T00:00:00Z",
"created_at": "2026-11-09 00:00:00",
"parts": [],
"received_bytes": 0,
"missing": [
1
]
}
}
}Rejected: basic
{
"id": "med_01K5WZX7S7Q4D2B8N3M6V1C9TZ",
"upload": {
"method": "multipart"
}
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('media.upload-init@1', value); // { valid, errors: [{ path, message }] }