local— local filesystem storages3— S3-compatible object storage (AWS S3, MinIO, R2, etc.)github-repo— GitHub repository storage
Get storage providers overview
providers.read
Response
Example
Create a storage profile
providers.create
Request body
Unique internal name for the profile (e.g.
my-s3-bucket).Human-readable name shown in the UI.
Provider type. One of:
local, s3, github-repo.Whether the profile is enabled. Defaults to
true.Whether to set this as the default profile. Defaults to
false.Provider-specific non-sensitive configuration (e.g. bucket name, region, root path, repository owner/name).
Provider-specific sensitive configuration (e.g. access key, secret key, GitHub token). Values in this object are stored encrypted and are not returned in GET responses.
Response — 201 Created
Returns the created storage profile object.Example — create an S3 profile
Update a storage profile
providers.update
Path parameters
The unique identifier of the profile to update.
Request body
New internal name. Omit to leave unchanged.
New display name. Omit to leave unchanged.
New enabled state. Omit to leave unchanged.
Updated non-sensitive configuration. Omit to leave unchanged.
Updated sensitive configuration. Omit to leave unchanged.
Response — 200 OK
Returns the updated storage profile object.Example
Delete a storage profile
providers.delete
Path parameters
The unique identifier of the profile to delete.
Response
Example
Set default storage profile
settings.update
Path parameters
The unique identifier of the profile to set as default.
Response — 200 OK
Returns the updated storage profile object.Example
Browse a GitHub Repo directory
providerType: github-repo.
Required permission: providers.read
Path parameters
The unique identifier of a
github-repo storage profile.Query parameters
Directory path to browse. Defaults to the repository root.
Whether to list contents recursively.
Maximum recursion depth when
recursive is true.Filter by entry type:
file, dir, or omit for all.Filter entries by name keyword.
Page number. Defaults to
1.Results per page.
Response
Example
Upsert a file in a GitHub Repo
providers.update
Path parameters
The unique identifier of a
github-repo storage profile.Request body
Path within the repository where the file should be written (e.g.
images/2026/photo.png).Base64-encoded content of the file to write.
Optional commit message. Defaults to a generated message if omitted.
For updates: the current file’s Git blob SHA. Required when updating an existing file to prevent conflicts. Omit when creating a new file.
Response
409 Conflict if the expectedSha does not match the current file SHA.