v64

latestOpenAPI 3.1.0raw.githubusercontent.com2026-08-016280256.4 KB
stacks

Add assets to a stack

Adds one or more existing assets to the stack. An asset already in another stack is reconciled exactly as create_stack does. Ids already in this stack are silently skipped.

An add that changes membership marks the stack user-owned (origin = user), which freezes it against burst re-detection; a request that changes nothing leaves origin unchanged.

If a concurrent stack change invalidates the request mid-flight, it returns 409 and nothing is changed; retry the request unchanged, except where the 409 reports the target stack itself is gone, which is terminal.

post/api/stacks/{stack_id}/assets

Path parameters

stack_idstring required

Stack ID (with asset_stack_ prefix) of the stack to add the assets to.

Stack ID (with asset_stack_ prefix) of the stack to add the assets to.

Request body

asset_idsstring[] required

Asset IDs (with asset_ prefix) to add to the stack — all in the stack's library.

Response

Successful Response

idstring required

Unique stack identifier with 'asset_stack_' prefix

primary_asset_idstring nullable

ID of the asset the user pinned as the stack's cover, or null if none is pinned. Null for an auto-detected burst unless a user has since pinned a cover — there is no server-selected default, so a client showing a stack with no pinned cover picks its own. A pinned cover that has been trashed keeps its ID here; it is cleared only once the asset is permanently deleted.

asset_countinteger required

Number of live assets in this stack. Excludes trashed members, so it can drop below the number of frames originally grouped.

origin'auto_burst' | 'user' required

How a stack came to exist.

auto_burst marks a stack the burst detector created from the time + EXIF-camera signal; user marks a stack a user created or edited (manual create, set-cover, add/remove, unstack). The distinction is what keeps re-detection from stomping a user's correction — the detection pass skips user stacks.

created_atstring date-time required

When this stack was created

updated_atstring date-time required

When this stack was last updated