Skip to content
Coritan Docs

Client API: Container Apps: Software

The 35 Client API operations for software.

View as Markdown

Part of Container Apps.

Method Path Summary
GET /api/v1/client/servers/{uuid}/software List installed software records for a server
GET /api/v1/client/servers/{uuid}/software/addons Every addon in the folders the server loads from, tracked or hand-uploaded
DELETE /api/v1/client/servers/{uuid}/software/addons/records/{record_uuid} Drop a tracking record whose files are gone, without touching the disk
POST /api/v1/client/servers/{uuid}/software/addons/remove Delete one addon from disk, through the tracked uninstall when it has a record
POST /api/v1/client/servers/{uuid}/software/addons/toggle Switch one addon file on or off (Foo.jar <- Foo.jar.disabled)
POST /api/v1/client/servers/{uuid}/software/bedrock Turn Bedrock crossplay on or off for a Java server
GET /api/v1/client/servers/{uuid}/software/bedrock/packs Behavior and resource packs on disk, which are active in the world, and importable uploads
POST /api/v1/client/servers/{uuid}/software/bedrock/packs/disable-all Empty the world's activation lists so it boots on vanilla content; folders stay
POST /api/v1/client/servers/{uuid}/software/bedrock/packs/import Queue an import of an uploaded .mcaddon / .mcpack / .zip already on the server
POST /api/v1/client/servers/{uuid}/software/bedrock/packs/{pack_uuid}/active Add a pack to, or drop it from, the world's activation list
POST /api/v1/client/servers/{uuid}/software/bedrock/packs/{pack_uuid}/remove Deactivate a pack, delete its folder, and drop its tracking row
PUT /api/v1/client/servers/{uuid}/software/bedrock/texturepack-required Texturepack-required: players must accept the resource packs to join
GET /api/v1/client/servers/{uuid}/software/catalog Server software the machine can be switched to, grouped for display
GET /api/v1/client/servers/{uuid}/software/catalog/{key}/versions Installable versions for one catalog entry, with runtime recommendations
GET /api/v1/client/servers/{uuid}/software/catalog/{key}/versions/{version}/builds Publisher builds of one game version: the loader versions for Fabric/Forge
POST /api/v1/client/servers/{uuid}/software/change Switch the server to different software, or a different version of it
GET /api/v1/client/servers/{uuid}/software/context Return loader/game-version context for marketplace tab gating
GET /api/v1/client/servers/{uuid}/software/dependencies/{source_uuid}/{identifier} What a version requires, named, with what is already installed marked
POST /api/v1/client/servers/{uuid}/software/install Queue a software install job
GET /api/v1/client/servers/{uuid}/software/installs List recent software install jobs for a server
GET /api/v1/client/servers/{uuid}/software/installs/{install_uuid} Get a single software install job
POST /api/v1/client/servers/{uuid}/software/installs/{install_uuid}/cancel Cancel a queued software install
POST /api/v1/client/servers/{uuid}/software/installs/{install_uuid}/retry Queue a fresh install job with the same parameters as a failed one
GET /api/v1/client/servers/{uuid}/software/jvm The heap slider and the allowlisted startup flags, as the panel shows them
PATCH /api/v1/client/servers/{uuid}/software/jvm Move the heap, pick startup flags from the catalog, or reset both
GET /api/v1/client/servers/{uuid}/software/resource-pack The server resource pack as server.properties declares it
PUT /api/v1/client/servers/{uuid}/software/resource-pack Point players at a pack, from a URL or a marketplace resource pack version
DELETE /api/v1/client/servers/{uuid}/software/resource-pack Stop offering a server resource pack
POST /api/v1/client/servers/{uuid}/software/safe-mode Arm a one-shot --safeMode start (vanilla datapack only), optionally starting now
POST /api/v1/client/servers/{uuid}/software/search Search available software (JSON body preferred; query params kept for back-compat)
GET /api/v1/client/servers/{uuid}/software/sources List enabled software sources for a kind
GET /api/v1/client/servers/{uuid}/software/updates Newer compatible builds for the addons the marketplace installed
GET /api/v1/client/servers/{uuid}/software/versions/{source_uuid}/{identifier} Get available versions for software
DELETE /api/v1/client/servers/{uuid}/software/{record_uuid} Uninstall a tracked software artifact
POST /api/v1/client/servers/{uuid}/software/{record_uuid}/update Queue an in-place update: the old file is removed, the new build installed

List installed software records for a server

Section titled List installed software records for a server

GET /api/v1/client/servers/{uuid}/software

List installed software records for a server.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Every addon in the folders the server loads from, tracked or hand-uploaded

Section titled Every addon in the folders the server loads from, tracked or hand-uploaded

GET /api/v1/client/servers/{uuid}/software/addons

Every addon in the folders the server loads from, tracked or hand-uploaded.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required Description
uuid path string yes
kind query string or null no plugin, mod or datapack; omit for every kind
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Drop a tracking record whose files are gone, without touching the disk

Section titled Drop a tracking record whose files are gone, without touching the disk

DELETE /api/v1/client/servers/{uuid}/software/addons/records/{record_uuid}

Drop a tracking record whose files are gone, without touching the disk.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
record_uuid path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Delete one addon from disk, through the tracked uninstall when it has a record

Section titled Delete one addon from disk, through the tracked uninstall when it has a record

POST /api/v1/client/servers/{uuid}/software/addons/remove

Delete one addon from disk, through the tracked uninstall when it has a record.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes

application/json (required)

Type: Body.

Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Switch one addon file on or off (Foo.jar <- Foo.jar.disabled)

Section titled Switch one addon file on or off (Foo.jar <- Foo.jar.disabled)

POST /api/v1/client/servers/{uuid}/software/addons/toggle

Switch one addon file on or off (Foo.jar <-> Foo.jar.disabled).

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes

application/json (required)

Type: Body.

Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Turn Bedrock crossplay on or off for a Java server

Section titled Turn Bedrock crossplay on or off for a Java server

POST /api/v1/client/servers/{uuid}/software/bedrock

Turn Bedrock crossplay on or off for a Java server.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes

application/json (required)

Type: Body.

Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Behavior and resource packs on disk, which are active in the world, and importable uploads

Section titled Behavior and resource packs on disk, which are active in the world, and importable uploads

GET /api/v1/client/servers/{uuid}/software/bedrock/packs

Behavior and resource packs on disk, which are active in the world, and importable uploads.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Empty the world's activation lists so it boots on vanilla content; folders stay

Section titled Empty the world's activation lists so it boots on vanilla content; folders stay

POST /api/v1/client/servers/{uuid}/software/bedrock/packs/disable-all

Empty the world's activation lists so it boots on vanilla content; folders stay.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Queue an import of an uploaded .mcaddon / .mcpack / .zip already on the server

Section titled Queue an import of an uploaded .mcaddon / .mcpack / .zip already on the server

POST /api/v1/client/servers/{uuid}/software/bedrock/packs/import

Queue an import of an uploaded .mcaddon / .mcpack / .zip already on the server.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes

application/json (required)

Type: Body.

Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Add a pack to, or drop it from, the world's activation list

Section titled Add a pack to, or drop it from, the world's activation list

POST /api/v1/client/servers/{uuid}/software/bedrock/packs/{pack_uuid}/active

Add a pack to, or drop it from, the world's activation list.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
pack_uuid path string yes

application/json (required)

Type: Body.

Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Deactivate a pack, delete its folder, and drop its tracking row

Section titled Deactivate a pack, delete its folder, and drop its tracking row

POST /api/v1/client/servers/{uuid}/software/bedrock/packs/{pack_uuid}/remove

Deactivate a pack, delete its folder, and drop its tracking row.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
pack_uuid path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Texturepack-required: players must accept the resource packs to join

Section titled Texturepack-required: players must accept the resource packs to join

PUT /api/v1/client/servers/{uuid}/software/bedrock/texturepack-required

texturepack-required: players must accept the resource packs to join.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes

application/json (required)

Type: Body.

Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Server software the machine can be switched to, grouped for display

Section titled Server software the machine can be switched to, grouped for display

GET /api/v1/client/servers/{uuid}/software/catalog

Server software the machine can be switched to, grouped for display.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Installable versions for one catalog entry, with runtime recommendations

Section titled Installable versions for one catalog entry, with runtime recommendations

GET /api/v1/client/servers/{uuid}/software/catalog/{key}/versions

Installable versions for one catalog entry, with runtime recommendations.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required Description
uuid path string yes
key path string yes
limit query integer no Default: 200.
include_unsupported query boolean no Default: False.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Publisher builds of one game version: the loader versions for Fabric/Forge

Section titled Publisher builds of one game version: the loader versions for Fabric/Forge

GET /api/v1/client/servers/{uuid}/software/catalog/{key}/versions/{version}/builds

Publisher builds of one game version: the loader versions for Fabric/Forge.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
key path string yes
version path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Switch the server to different software, or a different version of it

Section titled Switch the server to different software, or a different version of it

POST /api/v1/client/servers/{uuid}/software/change

Switch the server to different software, or a different version of it.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes

application/json (required)

Type: Body.

Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Return loader/game-version context for marketplace tab gating

Section titled Return loader/game-version context for marketplace tab gating

GET /api/v1/client/servers/{uuid}/software/context

Return loader/game-version context for marketplace tab gating.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

What a version requires, named, with what is already installed marked

Section titled What a version requires, named, with what is already installed marked

GET /api/v1/client/servers/{uuid}/software/dependencies/{source_uuid}/{identifier}

What a version requires, named, with what is already installed marked.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required Description
uuid path string yes
source_uuid path string yes
identifier path string yes
version query string no The version whose dependencies to resolve; latest resolves as the installer would Default: latest.
kind query string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

POST /api/v1/client/servers/{uuid}/software/install

Queue a software install job.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
source_uuid query string or null no
identifier query string or null no
software_id query string or null no
version query string or null no
kind query string or null no

application/json

Type: object or null.

Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

List recent software install jobs for a server

Section titled List recent software install jobs for a server

GET /api/v1/client/servers/{uuid}/software/installs

List recent software install jobs for a server.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
status query string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Get a single software install job

Section titled Get a single software install job

GET /api/v1/client/servers/{uuid}/software/installs/{install_uuid}

Get a single software install job.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
install_uuid path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Cancel a queued software install

Section titled Cancel a queued software install

POST /api/v1/client/servers/{uuid}/software/installs/{install_uuid}/cancel

Cancel a queued software install.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
install_uuid path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Queue a fresh install job with the same parameters as a failed one

Section titled Queue a fresh install job with the same parameters as a failed one

POST /api/v1/client/servers/{uuid}/software/installs/{install_uuid}/retry

Queue a fresh install job with the same parameters as a failed one.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
install_uuid path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

The heap slider and the allowlisted startup flags, as the panel shows them

Section titled The heap slider and the allowlisted startup flags, as the panel shows them

GET /api/v1/client/servers/{uuid}/software/jvm

The heap slider and the allowlisted startup flags, as the panel shows them.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Move the heap, pick startup flags from the catalog, or reset both

Section titled Move the heap, pick startup flags from the catalog, or reset both

PATCH /api/v1/client/servers/{uuid}/software/jvm

Move the heap, pick startup flags from the catalog, or reset both. Applies on restart.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes

application/json (required)

Type: Body.

Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

The server resource pack as server.properties declares it

Section titled The server resource pack as server.properties declares it

GET /api/v1/client/servers/{uuid}/software/resource-pack

The server resource pack as server.properties declares it.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Point players at a pack, from a URL or a marketplace resource pack version

Section titled Point players at a pack, from a URL or a marketplace resource pack version

PUT /api/v1/client/servers/{uuid}/software/resource-pack

Point players at a pack, from a URL or a marketplace resource pack version.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes

application/json (required)

Type: Body.

Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Stop offering a server resource pack

Section titled Stop offering a server resource pack

DELETE /api/v1/client/servers/{uuid}/software/resource-pack

Stop offering a server resource pack.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Arm a one-shot --safeMode start (vanilla datapack only), optionally starting now

Section titled Arm a one-shot --safeMode start (vanilla datapack only), optionally starting now

POST /api/v1/client/servers/{uuid}/software/safe-mode

Arm a one-shot --safeMode start (vanilla datapack only), optionally starting now.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes

application/json (required)

Type: Body.

Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Search available software (JSON body preferred; query params kept for back-compat)

Section titled Search available software (JSON body preferred; query params kept for back-compat)

POST /api/v1/client/servers/{uuid}/software/search

Search available software (JSON body preferred; query params kept for back-compat).

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required Description
uuid path string yes
query query string or null no
page query integer no Default: 1.
limit query integer no Default: 20.
source_uuid query string or null no
kind query string or null no
sort query string or null no

application/json

Type: object or null.

Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

List enabled software sources for a kind

Section titled List enabled software sources for a kind

GET /api/v1/client/servers/{uuid}/software/sources

List enabled software sources for a kind.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
kind query string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Newer compatible builds for the addons the marketplace installed

Section titled Newer compatible builds for the addons the marketplace installed

GET /api/v1/client/servers/{uuid}/software/updates

Newer compatible builds for the addons the marketplace installed.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required Description
uuid path string yes
kind query string or null no
include_current query boolean no Also return addons already on the newest build Default: False.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Get available versions for software

Section titled Get available versions for software

GET /api/v1/client/servers/{uuid}/software/versions/{source_uuid}/{identifier}

Get available versions for software.

Plugin and mod lookups default to builds that fit this server's loader and game version; each row carries compatible and incompatible_reason.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required Description
uuid path string yes
source_uuid path string yes
identifier path string yes
page query integer no Default: 1.
limit query integer no Default: 50.
loaders query string or null no Comma-separated loaders
game_versions query string or null no Comma-separated game versions
kind query string or null no Content kind; datapacks ignore the server loader
include_incompatible query boolean no List builds for other loaders / game versions too, flagged Default: False.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Uninstall a tracked software artifact

Section titled Uninstall a tracked software artifact

DELETE /api/v1/client/servers/{uuid}/software/{record_uuid}

Uninstall a tracked software artifact.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
record_uuid path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Queue an in-place update: the old file is removed, the new build installed

Section titled Queue an in-place update: the old file is removed, the new build installed

POST /api/v1/client/servers/{uuid}/software/{record_uuid}/update

Queue an in-place update: the old file is removed, the new build installed.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
uuid path string yes
record_uuid path string yes

application/json

Type: object or null.

Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.