REST API: Store
Generated from the daemon’s OpenAPI document. Conventions, sign-in, the CSRF header and the WebSocket are on API.
GET /api/store
Section titled “GET /api/store”Administrators only. The Store’s settings with the next check time, every catalog with its status, and the newer versions of installed apps. The topic store/admin carries the same and its changes.
Responses
- 200:
application/json: StoreState
Any failure answers with problem details (application/problem+json) and a stable code from the error reference.
GET /api/store/apps
Section titled “GET /api/store/apps”Administrators only. The apps of the enabled catalogs (or of one, by its id) at the newest version this box can run, whose id, name, description or author contains q.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
catalog |
query | string | no | |
q |
query | string | no |
Responses
- 200:
application/json: StoreAppList
Any failure answers with problem details (application/problem+json) and a stable code from the error reference.
POST /api/store/catalogs
Section titled “POST /api/store/catalogs”Administrators only. Adds a custom catalog (unsigned, shown as unverified) by its repository URL: https:// for a public one, which is fetched at once as a job, or SSH (git@host:owner/repository.git) for a private one, for which the box makes a deploy key; add its public key to the repository and fetch the catalog then.
Request body: application/json: AddCatalogRequest
Responses
- 200:
application/json: CatalogInfo
Any failure answers with problem details (application/problem+json) and a stable code from the error reference.
GET /api/store/catalogs/{catalog}/apps/{appId}
Section titled “GET /api/store/catalogs/{catalog}/apps/{appId}”Administrators only. A catalog app’s detail page: its newest version for this box with the manifest, screenshots, homepage, the link to its source in the catalog, and every published version.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
catalog |
path | string | yes | |
appId |
path | string | yes |
Responses
- 200:
application/json: StoreAppDetails
Any failure answers with problem details (application/problem+json) and a stable code from the error reference.
GET /api/store/catalogs/{catalog}/apps/{appId}/{version}/icon
Section titled “GET /api/store/catalogs/{catalog}/apps/{appId}/{version}/icon”Administrators only. The icon of a catalog app’s version, checked against the index, with Content-Security-Policy: default-src ‘none’; sandbox and nosniff.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
catalog |
path | string | yes | |
appId |
path | string | yes | |
version |
path | string | yes | |
name |
query | string | no |
Responses
- 200:
image/svg+xml: string (byte)
Any failure answers with problem details (application/problem+json) and a stable code from the error reference.
POST /api/store/catalogs/{catalog}/apps/{appId}/{version}/package
Section titled “POST /api/store/catalogs/{catalog}/apps/{appId}/{version}/package”Administrators only. Takes a catalog app’s version from the box’s verified copy, checks it like an uploaded package plus the index’s hashes and images (store.package.hash_mismatch), the box’s version (app.package.box_too_old) and, for an older version, the same dataVersion (app.package.downgrade_unsupported), and keeps it for 15 minutes. Install it with POST /api/apps/packages/{packageId}/install.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
catalog |
path | string | yes | |
appId |
path | string | yes | |
version |
path | string | yes |
Responses
- 200:
application/json: AppPackagePreview
Any failure answers with problem details (application/problem+json) and a stable code from the error reference.
GET /api/store/catalogs/{catalog}/apps/{appId}/{version}/screenshots/{name}
Section titled “GET /api/store/catalogs/{catalog}/apps/{appId}/{version}/screenshots/{name}”Administrators only. A screenshot of a catalog app’s version (PNG, JPEG or WebP), checked against the index, with Content-Security-Policy: default-src ‘none’; sandbox and nosniff.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
catalog |
path | string | yes | |
appId |
path | string | yes | |
version |
path | string | yes | |
name |
path | string | yes |
Responses
- 200:
image/png: string (byte)
Any failure answers with problem details (application/problem+json) and a stable code from the error reference.
PATCH /api/store/catalogs/{key}
Section titled “PATCH /api/store/catalogs/{key}”Administrators only. Switches a catalog on (it is fetched at once) or off, or sets (user:token) or removes (empty) the read token for its private images.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
key |
path | integer (int64) | yes |
Request body: application/json: UpdateCatalogRequest
Responses
- 200:
application/json: CatalogInfo
Any failure answers with problem details (application/problem+json) and a stable code from the error reference.
DELETE /api/store/catalogs/{key}
Section titled “DELETE /api/store/catalogs/{key}”Administrators only. Removes a custom catalog and its copy; apps installed from it stay and get no more updates from it. The project’s catalogs can only be switched off (store.catalog.built_in).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
key |
path | integer (int64) | yes |
Responses
- 204
Any failure answers with problem details (application/problem+json) and a stable code from the error reference.
POST /api/store/catalogs/{key}/sync
Section titled “POST /api/store/catalogs/{key}/sync”Administrators only. Fetches one catalog now as a job. A failure keeps the last verified copy and is shown with the catalog.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
key |
path | integer (int64) | yes |
Responses
- 202:
application/json: Job
Any failure answers with problem details (application/problem+json) and a stable code from the error reference.
POST /api/store/check
Section titled “POST /api/store/check”Administrators only. Checks now as a job: fetches every enabled catalog, then installs automatic updates and announces the others, as the daily check does.
Responses
- 202:
application/json: Job
Any failure answers with problem details (application/problem+json) and a stable code from the error reference.
PUT /api/store/settings
Section titled “PUT /api/store/settings”Administrators only. Sets the update policy (automatic, notify, none), the daily check time (HH:mm in the box’s time zone; the box adds its own delay of up to an hour) and the channel (stable reads each catalog’s branch catalog, beta its branch catalog-next). A new channel fetches every catalog at once.
Request body: application/json: StoreSettingsRequest
Responses
- 200:
application/json: StoreSettings
Any failure answers with problem details (application/problem+json) and a stable code from the error reference.