stacks

Set a stack's cover

Changed on

Pins one of the stack's own live members as its cover (primary_asset_id). Setting a cover marks the stack as user-owned (origin = user), which freezes it — membership included — against burst re-detection, so neither the chosen cover nor the frame grouping is ever silently reverted by a later detection pass.

primary_asset_id cannot be null: there is no manual clear-cover operation. A pin clears automatically when the pinned frame is removed from the stack or permanently deleted.

patch/api/stacks/{stack_id}

Request

  • Base URL: https://api.gumnut.ai
  • URL: https://api.gumnut.ai/api/stacks/{stack_id}
  • Auth: one of:
    • HTTP bearer
    • HTTP bearer

Path parameters

stack_idstring required

Stack ID (with asset_stack_ prefix) of the stack to pin a cover on.

Request body

primary_asset_idstring required

Asset ID (with asset_ prefix) to pin as the stack's cover. Must be a live, current member of this stack — get member IDs from list_assets with stack_id.

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

Changes

    • breaking

      response property detail list-of-types was widened by adding types string to media type application/json of response 422

    • info

      the response property became required for the status

    • info

      added the media type application/json for the response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status