Download OpenAPI specification:
The HTTP surface of the Pulse upload protocol, as implemented by @mieweb/pulsevault. Generated from the plugin's route schemas — see PROTOCOL.md for the full contract.
TUS v1 resumable upload protocol.
POST creates a new upload. The Upload-Metadata header must include base64-encoded key/value pairs:artifactId (or the legacy videoid/projectid aliases) — a UUID generated by your server.filename — original filename; the extension must match the kind's allowed list.kind — video (default), project, captions, or thumbnail. Determines the storage subdir and which completion hooks fire.relatedTo — optional UUID of another artifact this one belongs to (e.g. the captions, beat manifest or thumbnail belonging to a pulse's video).checksum — optional <algorithm>:<hex digest> of the finished file, verified post-upload if a checksum validator is configured.PATCH appends a chunk at the offset given by Upload-Offset, with Content-Type: application/offset+octet-stream.HEAD returns the current offset for a resumable upload.DELETE removes the upload and its artifact, whether in flight (a cancel) or finished. Authorized as delete.See https://tus.io/protocols/resumable-upload for the full protocol.
{- "ok": true,
- "error": "string"
}TUS v1 resumable upload protocol.
POST creates a new upload. The Upload-Metadata header must include base64-encoded key/value pairs:artifactId (or the legacy videoid/projectid aliases) — a UUID generated by your server.filename — original filename; the extension must match the kind's allowed list.kind — video (default), project, captions, or thumbnail. Determines the storage subdir and which completion hooks fire.relatedTo — optional UUID of another artifact this one belongs to (e.g. the captions, beat manifest or thumbnail belonging to a pulse's video).checksum — optional <algorithm>:<hex digest> of the finished file, verified post-upload if a checksum validator is configured.PATCH appends a chunk at the offset given by Upload-Offset, with Content-Type: application/offset+octet-stream.HEAD returns the current offset for a resumable upload.DELETE removes the upload and its artifact, whether in flight (a cancel) or finished. Authorized as delete.See https://tus.io/protocols/resumable-upload for the full protocol.
{- "ok": true,
- "error": "string"
}TUS v1 resumable upload protocol.
POST creates a new upload. The Upload-Metadata header must include base64-encoded key/value pairs:artifactId (or the legacy videoid/projectid aliases) — a UUID generated by your server.filename — original filename; the extension must match the kind's allowed list.kind — video (default), project, captions, or thumbnail. Determines the storage subdir and which completion hooks fire.relatedTo — optional UUID of another artifact this one belongs to (e.g. the captions, beat manifest or thumbnail belonging to a pulse's video).checksum — optional <algorithm>:<hex digest> of the finished file, verified post-upload if a checksum validator is configured.PATCH appends a chunk at the offset given by Upload-Offset, with Content-Type: application/offset+octet-stream.HEAD returns the current offset for a resumable upload.DELETE removes the upload and its artifact, whether in flight (a cancel) or finished. Authorized as delete.See https://tus.io/protocols/resumable-upload for the full protocol.
{- "ok": true,
- "error": "string"
}TUS v1 resumable upload protocol.
POST creates a new upload. The Upload-Metadata header must include base64-encoded key/value pairs:artifactId (or the legacy videoid/projectid aliases) — a UUID generated by your server.filename — original filename; the extension must match the kind's allowed list.kind — video (default), project, captions, or thumbnail. Determines the storage subdir and which completion hooks fire.relatedTo — optional UUID of another artifact this one belongs to (e.g. the captions, beat manifest or thumbnail belonging to a pulse's video).checksum — optional <algorithm>:<hex digest> of the finished file, verified post-upload if a checksum validator is configured.PATCH appends a chunk at the offset given by Upload-Offset, with Content-Type: application/offset+octet-stream.HEAD returns the current offset for a resumable upload.DELETE removes the upload and its artifact, whether in flight (a cancel) or finished. Authorized as delete.See https://tus.io/protocols/resumable-upload for the full protocol.
{- "ok": true,
- "error": "string"
}TUS v1 resumable upload protocol.
POST creates a new upload. The Upload-Metadata header must include base64-encoded key/value pairs:artifactId (or the legacy videoid/projectid aliases) — a UUID generated by your server.filename — original filename; the extension must match the kind's allowed list.kind — video (default), project, captions, or thumbnail. Determines the storage subdir and which completion hooks fire.relatedTo — optional UUID of another artifact this one belongs to (e.g. the captions, beat manifest or thumbnail belonging to a pulse's video).checksum — optional <algorithm>:<hex digest> of the finished file, verified post-upload if a checksum validator is configured.PATCH appends a chunk at the offset given by Upload-Offset, with Content-Type: application/offset+octet-stream.HEAD returns the current offset for a resumable upload.DELETE removes the upload and its artifact, whether in flight (a cancel) or finished. Authorized as delete.See https://tus.io/protocols/resumable-upload for the full protocol.
{- "ok": true,
- "error": "string"
}TUS v1 resumable upload protocol.
POST creates a new upload. The Upload-Metadata header must include base64-encoded key/value pairs:artifactId (or the legacy videoid/projectid aliases) — a UUID generated by your server.filename — original filename; the extension must match the kind's allowed list.kind — video (default), project, captions, or thumbnail. Determines the storage subdir and which completion hooks fire.relatedTo — optional UUID of another artifact this one belongs to (e.g. the captions, beat manifest or thumbnail belonging to a pulse's video).checksum — optional <algorithm>:<hex digest> of the finished file, verified post-upload if a checksum validator is configured.PATCH appends a chunk at the offset given by Upload-Offset, with Content-Type: application/offset+octet-stream.HEAD returns the current offset for a resumable upload.DELETE removes the upload and its artifact, whether in flight (a cancel) or finished. Authorized as delete.See https://tus.io/protocols/resumable-upload for the full protocol.
| * required | string |
{- "ok": true,
- "error": "string"
}TUS v1 resumable upload protocol.
POST creates a new upload. The Upload-Metadata header must include base64-encoded key/value pairs:artifactId (or the legacy videoid/projectid aliases) — a UUID generated by your server.filename — original filename; the extension must match the kind's allowed list.kind — video (default), project, captions, or thumbnail. Determines the storage subdir and which completion hooks fire.relatedTo — optional UUID of another artifact this one belongs to (e.g. the captions, beat manifest or thumbnail belonging to a pulse's video).checksum — optional <algorithm>:<hex digest> of the finished file, verified post-upload if a checksum validator is configured.PATCH appends a chunk at the offset given by Upload-Offset, with Content-Type: application/offset+octet-stream.HEAD returns the current offset for a resumable upload.DELETE removes the upload and its artifact, whether in flight (a cancel) or finished. Authorized as delete.See https://tus.io/protocols/resumable-upload for the full protocol.
| * required | string |
{- "ok": true,
- "error": "string"
}TUS v1 resumable upload protocol.
POST creates a new upload. The Upload-Metadata header must include base64-encoded key/value pairs:artifactId (or the legacy videoid/projectid aliases) — a UUID generated by your server.filename — original filename; the extension must match the kind's allowed list.kind — video (default), project, captions, or thumbnail. Determines the storage subdir and which completion hooks fire.relatedTo — optional UUID of another artifact this one belongs to (e.g. the captions, beat manifest or thumbnail belonging to a pulse's video).checksum — optional <algorithm>:<hex digest> of the finished file, verified post-upload if a checksum validator is configured.PATCH appends a chunk at the offset given by Upload-Offset, with Content-Type: application/offset+octet-stream.HEAD returns the current offset for a resumable upload.DELETE removes the upload and its artifact, whether in flight (a cancel) or finished. Authorized as delete.See https://tus.io/protocols/resumable-upload for the full protocol.
| * required | string |
{- "ok": true,
- "error": "string"
}TUS v1 resumable upload protocol.
POST creates a new upload. The Upload-Metadata header must include base64-encoded key/value pairs:artifactId (or the legacy videoid/projectid aliases) — a UUID generated by your server.filename — original filename; the extension must match the kind's allowed list.kind — video (default), project, captions, or thumbnail. Determines the storage subdir and which completion hooks fire.relatedTo — optional UUID of another artifact this one belongs to (e.g. the captions, beat manifest or thumbnail belonging to a pulse's video).checksum — optional <algorithm>:<hex digest> of the finished file, verified post-upload if a checksum validator is configured.PATCH appends a chunk at the offset given by Upload-Offset, with Content-Type: application/offset+octet-stream.HEAD returns the current offset for a resumable upload.DELETE removes the upload and its artifact, whether in flight (a cancel) or finished. Authorized as delete.See https://tus.io/protocols/resumable-upload for the full protocol.
| * required | string |
{- "ok": true,
- "error": "string"
}TUS v1 resumable upload protocol.
POST creates a new upload. The Upload-Metadata header must include base64-encoded key/value pairs:artifactId (or the legacy videoid/projectid aliases) — a UUID generated by your server.filename — original filename; the extension must match the kind's allowed list.kind — video (default), project, captions, or thumbnail. Determines the storage subdir and which completion hooks fire.relatedTo — optional UUID of another artifact this one belongs to (e.g. the captions, beat manifest or thumbnail belonging to a pulse's video).checksum — optional <algorithm>:<hex digest> of the finished file, verified post-upload if a checksum validator is configured.PATCH appends a chunk at the offset given by Upload-Offset, with Content-Type: application/offset+octet-stream.HEAD returns the current offset for a resumable upload.DELETE removes the upload and its artifact, whether in flight (a cancel) or finished. Authorized as delete.See https://tus.io/protocols/resumable-upload for the full protocol.
| * required | string |
{- "ok": true,
- "error": "string"
}Unauthenticated — the response carries no secrets. Lets a client detect protocol compatibility, allowed artifact kinds/extensions and the upload size cap before pairing.
{- "protocolVersion": 1,
- "protocolRevision": "string",
- "minSupportedVersion": 1,
- "maxSupportedVersion": 1,
- "kinds": [
- "video"
], - "allowedExtensions": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "maxUploadSize": 0,
- "checksum": {
- "algorithms": [
- "string"
]
}, - "viewLinks": true
}Deletes all storage for an artifactId (bytes + sidecar metadata), regardless of kind. Runs the authorize hook with phase: "delete" before the adapter's remove is called. Returns 204 on success, 404 if the artifactId was unknown, 501 if the adapter does not implement remove.
| artifactId required | string <uuid> UUID of the upload to delete. |
{- "ok": true,
- "error": "string"
}Resolves the artifactId through the configured storage adapter and either streams the bytes or redirects (for CDN-backed adapters). The artifact's kind (video, project, or captions) is resolved from storage, not the URL. Runs the authorize hook before resolve.
| artifactId required | string <uuid> UUID returned from the upload flow. |
| token | string Optional bearer token for pre-authenticated watch links. Forwarded to the |
{- "ok": true,
- "error": "string"
}Returns a token that opens the artifact (and the artifacts relatedTo it) as GET /artifacts/:artifactId?token=, and nothing more — no uploads, deletes or further links. Runs the authorize hook with phase: "share"; the host's issueViewLink decides how long the link works. 404 unless the server enables view links (/capabilities viewLinks) and the artifact is finished; 403 when the host refuses a link for it.
| artifactId required | string <uuid> UUID of the finished artifact to link to. |
{- "token": "string",
- "expiresAt": 0
}Reports the artifact's state (unknown, uploading, processing while a web-ready conversion rewrites it, ready), its kind and relatedTo, the bytes received against its declared length, whether the host's onUploadComplete has finished (acknowledged), and what the host recorded with recordOutcome (outcome). Runs the authorize hook with phase: "status"; createCapabilityAuthorize grants it to the pairing token and to a view token. Never cached.
| artifactId required | string <uuid> UUID of the upload to report on. |
| token | string Optional bearer token (the pairing token or a view token), forwarded to the |
{- "artifactId": "706a3f1e-c357-4634-b1bf-20c221b5bb4e",
- "state": "unknown",
- "kind": "video",
- "relatedTo": "378c13a9-e20d-414b-882a-16755f7f0eba",
- "name": "string",
- "bytesReceived": 0,
- "size": 0,
- "acknowledged": true,
- "outcome": null
}Streams or redirects to the finished thumbnail relatedTo the video, exactly as GET /artifacts/:artifactId would serve it. Runs the authorize hook with phase: "resolve" on the video, so whoever may watch it may see its poster. 404 until the poster has landed.
| artifactId required | string <uuid> UUID of the video (the pulse's anchor artifact). |
| token | string Optional bearer token for pre-authenticated watch links, forwarded to the |
{- "ok": true,
- "error": "string"
}