latestOpenAPI 3.1.0raw.githubusercontent.com2026-08-206779363.7 KB

2c3aca3a6e6d

assets

Append an asset version

Uploads a fully rendered image — with all edits already applied to its pixels — above the original version. An append is accepted only while the original is current; replace the current derived version through its replacement endpoint instead. Exact duplicates store nothing. Metadata is copied from the original, so retained bytes may differ from uploaded bytes.

post/api/assets/{asset_id}/versions

Path parameters

asset_idstring required

Asset ID (with asset_ prefix) to add the version to.

Asset ID (with asset_ prefix) to add the version to.

Query parameters

includestring[] nullable

Optional response expansion. The single accepted value is variants: without it each row's version_urls carries only its lean thumbnail rung; with it, every rung plus the signed exact-byte original. Accepts multiple include= query params or a single comma-delimited value. Unknown values return 422.

Optional response expansion. The single accepted value is variants: without it each row's version_urls carries only its lean thumbnail rung; with it, every rung plus the signed exact-byte original. Accepts multiple include= query params or a single comma-delimited value. Unknown values return 422.

Response

The upload duplicates the current version (same kind, params, and bytes); that version is returned and nothing new is stored.

idstring required

Unique version identifier with 'asset_version_' prefix

positioninteger required

Zero-based index in the chain: 0 is the uploaded original, the highest is the current rendering.

kindstring required

What produced this rendering: original (the upload), edit (an edit rendered by the client), or external:<service>. The namespace is open — treat an unrecognized kind as opaque rather than failing.

paramsobject nullable

How this rendering was produced (e.g. an edit recipe). Opaque to the server; the schema is defined by whichever producer sets kind. null only for the original.

mime_typestring required

MIME type of this rendering's bytes (e.g., 'image/jpeg')

widthinteger required

Width of this rendering in pixels

heightinteger required

Height of this rendering in pixels

file_size_bytesinteger required

Byte size of this rendering's stored bytes.

checksumstring nullable required

Base64-encoded SHA-256 hash of this rendering's stored bytes, for comparing a locally computed hash against the chain (e.g. when reconciling an ambiguous create failure). Not unique: identical bytes may legitimately appear at different positions or on other assets. Transitionally null for roots written during the column's rollout window, until a follow-up backfill lands.

version_urlsobject nullable

URLs for this rendering, shaped like an asset's asset_urls: the lean thumbnail/thumbnail_image rung by default; include=variants adds the remaining rungs and original, this rendering's exact stored bytes.