Skip to main content
Three endpoints that answer “how much is in there” without listing everything: aggregate totals for the whole bucket, and bounded per-folder summaries for the folders a client is currently showing.

Folder summaries

Auth: API key required. A dashboard session cookie also works. Returns an item count and up to four preview items per folder. Call it only for the folders you are actually rendering, such as the rows currently on screen, so a level with many subfolders does not pay for every summary up front. List Storage deliberately leaves this data out for the same reason.

Query parameters

string
required
Comma-separated folder paths, relative to the storage root. Maximum 200 per request. An empty or missing value returns an empty summaries object rather than an error.photos,videos · photos/2026,archive

Response

object
Keyed by the folder path you asked for.
Status codes: 200 success · 400 more than 200 paths, or a path that escapes the storage root · 500 storage backend failed

Example

Storage stats

Auth: API key required. A dashboard session cookie also works. Aggregate size and file count for stored originals, and for cached transformation variants.

Response

object
Stored originals: size in bytes and fileCount.
object
Cached transformation variants. On a cloud backend this combines the local disk cache with the cache stored in the bucket, so it is one number for both.
string
ISO 8601 timestamp of the counters these figures came from. On local storage the tree is walked per request, so this is always now.
On a cloud backend the figures come from incremental counters rather than a live bucket listing, which is what keeps this endpoint cheap. They can drift if the bucket is changed outside Openinary. Use the recalculate endpoint below to reconcile.
Status codes: 200 success · 500 storage backend failed

Recalculate stats

Auth: API key required. A dashboard session cookie also works. Recomputes the aggregates from a full bucket listing and returns the same shape as GET /storage/stats. Use it when the counters have drifted, typically after objects were added or removed outside Openinary.
This lists the entire bucket. On a large bucket it is slow and it costs list operations at your storage provider. Run it when you have reason to think the counters are wrong, not on a schedule.
Status codes: 200 success · 500 storage backend failed

Example

List Storage

Browse folders and files one level at a time.

List Folders

Every folder path, for building a folder picker.