Albums
Collections of media, either curated by hand or defined by a saved filter.
List albums
Returns albums with a cover preview, how many files each holds and how many child albums it has. A smart album carries the saved search it resolves in album_query_search.
query Parameters
album_activealbum_createdalbum_descriptionalbum_idalbum_namealbum_parentalbum_updatedcursor^[A-Za-z0-9_-]+$full_text_searchlimitoffsetsort^-?[a-z0-9_]+$Headers
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
List albums › Responses
Success
Create an album
Creates a curated album, which starts empty — add files to it with POST /albums/{id}/files. An album that fills itself from a saved filter is created through POST /albums/smart instead.
Headers
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Create an album › Request Body
album_namealbum_descriptionalbum_cover_filealbum_metadataalbum_aclalbum_activealbum_smartalbum_queryalbum_parentCreate an album › Responses
Created
Get an album
Returns the album with its resolved cover, its file and child counts, and — for a smart album — the filter it resolves.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Get an album › Responses
Success
Delete an album
Removes the album. The files it held stay in the library.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Delete an album › Responses
Success. No content.
Update an album
Applies the album_-prefixed fields present in the body. A smart album's filter is changed through PATCH /albums/{id}/smart, not here.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Update an album › Request Body optional
album_namealbum_descriptionalbum_cover_filealbum_metadataalbum_aclalbum_parentUpdate an album › Responses
Success
Add files
Adds files to a curated album. Ids that match no file are skipped rather than failing the request, so a partly stale selection still lands.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Add files › Responses
Success
Remove files
Takes the files out of the album and leaves them in the library.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Remove files › Responses
Success
Update smart filters
Replaces the saved filter a smart album resolves. Membership is recomputed on read, so the change is visible immediately and no files are moved.
path Parameters
idHeaders
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Update smart filters › Request Body optional
album_namealbum_descriptionquery_searchUpdate smart filters › Responses
Success
List album membership
Returns which files belong to which album, without the file records themselves.
query Parameters
af_albumaf_filecursor^[A-Za-z0-9_-]+$limitoffsetsort^-?[a-z0-9_]+$Headers
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
List album membership › Responses
Success
Create a smart album
A smart album is a saved filter rather than a fixed list: its contents are whatever currently matches, so files join and leave it on their own as the library changes.
Headers
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Create a smart album › Request Body
album_namequery_searchalbum_descriptionCreate a smart album › Responses
Created
Get album statistics
How many albums the workspace has. For counts within one album, read the album itself — it carries its own file and child counts.
Headers
X-Tenant-IdThe workspace this request acts in. Every row the API returns is isolated to it at the database layer by row-level security.
Get album statistics › Responses
Success
