# Client API: Container Apps: Software

> The 35 Client API operations for software.

Source: https://www.coritan.com/docs/api/reference/client/container-apps/servers-software/

Part of [Container Apps](/docs/api/reference/client/container-apps/).

## Operations

| Method | Path | Summary |
| --- | --- | --- |
| GET | [`/api/v1/client/servers/{uuid}/software`](#op-get-api-v1-client-servers-uuid-software) | List installed software records for a server |
| GET | [`/api/v1/client/servers/{uuid}/software/addons`](#op-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}`](#op-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`](#op-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`](#op-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`](#op-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`](#op-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`](#op-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`](#op-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`](#op-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`](#op-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`](#op-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`](#op-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`](#op-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`](#op-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`](#op-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`](#op-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}`](#op-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`](#op-post-api-v1-client-servers-uuid-software-install) | Queue a software install job |
| GET | [`/api/v1/client/servers/{uuid}/software/installs`](#op-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}`](#op-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`](#op-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`](#op-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`](#op-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`](#op-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`](#op-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`](#op-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`](#op-delete-api-v1-client-servers-uuid-software-resource-pack) | Stop offering a server resource pack |
| POST | [`/api/v1/client/servers/{uuid}/software/safe-mode`](#op-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`](#op-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`](#op-get-api-v1-client-servers-uuid-software-sources) | List enabled software sources for a kind |
| GET | [`/api/v1/client/servers/{uuid}/software/updates`](#op-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}`](#op-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}`](#op-delete-api-v1-client-servers-uuid-software-record-uuid) | Uninstall a tracked software artifact |
| POST | [`/api/v1/client/servers/{uuid}/software/{record_uuid}/update`](#op-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 {#op-get-api-v1-client-servers-uuid-software}

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

List installed software records for a server.

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

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| 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 {#op-get-api-v1-client-servers-uuid-software-addons}

`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>`.

#### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `uuid` | path | string | yes |  |
| `kind` | query | string or null | no | plugin, mod or datapack; omit for every kind |

#### Responses

| 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 {#op-delete-api-v1-client-servers-uuid-software-addons-records-record-uuid}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |
| `record_uuid` | path | string | yes |

#### Responses

| 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 {#op-post-api-v1-client-servers-uuid-software-addons-remove}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

Type: Body.

#### Responses

| 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) {#op-post-api-v1-client-servers-uuid-software-addons-toggle}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

Type: Body.

#### Responses

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

### Turn Bedrock crossplay on or off for a Java server {#op-post-api-v1-client-servers-uuid-software-bedrock}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

Type: Body.

#### Responses

| 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 {#op-get-api-v1-client-servers-uuid-software-bedrock-packs}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| 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 {#op-post-api-v1-client-servers-uuid-software-bedrock-packs-disable-all}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| 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 {#op-post-api-v1-client-servers-uuid-software-bedrock-packs-import}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

Type: Body.

#### Responses

| 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 {#op-post-api-v1-client-servers-uuid-software-bedrock-packs-pack-uuid-active}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |
| `pack_uuid` | path | string | yes |

#### Request body

`application/json` (required)

Type: Body.

#### Responses

| 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 {#op-post-api-v1-client-servers-uuid-software-bedrock-packs-pack-uuid-remove}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |
| `pack_uuid` | path | string | yes |

#### Responses

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

### Texturepack-required: players must accept the resource packs to join {#op-put-api-v1-client-servers-uuid-software-bedrock-texturepack-required}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

Type: Body.

#### Responses

| 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 {#op-get-api-v1-client-servers-uuid-software-catalog}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

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

### Installable versions for one catalog entry, with runtime recommendations {#op-get-api-v1-client-servers-uuid-software-catalog-key-versions}

`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>`.

#### Parameters

| 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`. |

#### Responses

| 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 {#op-get-api-v1-client-servers-uuid-software-catalog-key-versions-version-builds}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |
| `key` | path | string | yes |
| `version` | path | string | yes |

#### Responses

| 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 {#op-post-api-v1-client-servers-uuid-software-change}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

Type: Body.

#### Responses

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

### Return loader/game-version context for marketplace tab gating {#op-get-api-v1-client-servers-uuid-software-context}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| 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 {#op-get-api-v1-client-servers-uuid-software-dependencies-source-uuid-identifier}

`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>`.

#### Parameters

| 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 |  |

#### Responses

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

### Queue a software install job {#op-post-api-v1-client-servers-uuid-software-install}

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

Queue a software install job.

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

#### Parameters

| 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 |

#### Request body

`application/json`

Type: object or null.

#### Responses

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

### List recent software install jobs for a server {#op-get-api-v1-client-servers-uuid-software-installs}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |
| `status` | query | string or null | no |

#### Responses

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

### Get a single software install job {#op-get-api-v1-client-servers-uuid-software-installs-install-uuid}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |
| `install_uuid` | path | string | yes |

#### Responses

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

### Cancel a queued software install {#op-post-api-v1-client-servers-uuid-software-installs-install-uuid-cancel}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |
| `install_uuid` | path | string | yes |

#### Responses

| 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 {#op-post-api-v1-client-servers-uuid-software-installs-install-uuid-retry}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |
| `install_uuid` | path | string | yes |

#### Responses

| 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 {#op-get-api-v1-client-servers-uuid-software-jvm}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| 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 {#op-patch-api-v1-client-servers-uuid-software-jvm}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

Type: Body.

#### Responses

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

### The server resource pack as server.properties declares it {#op-get-api-v1-client-servers-uuid-software-resource-pack}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| 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 {#op-put-api-v1-client-servers-uuid-software-resource-pack}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

Type: Body.

#### Responses

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

### Stop offering a server resource pack {#op-delete-api-v1-client-servers-uuid-software-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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Responses

| 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 {#op-post-api-v1-client-servers-uuid-software-safe-mode}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |

#### Request body

`application/json` (required)

Type: Body.

#### Responses

| 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) {#op-post-api-v1-client-servers-uuid-software-search}

`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>`.

#### Parameters

| 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 |  |

#### Request body

`application/json`

Type: object or null.

#### Responses

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

### List enabled software sources for a kind {#op-get-api-v1-client-servers-uuid-software-sources}

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

List enabled software sources for a kind.

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

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |
| `kind` | query | string or null | no |

#### Responses

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

### Newer compatible builds for the addons the marketplace installed {#op-get-api-v1-client-servers-uuid-software-updates}

`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>`.

#### Parameters

| 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`. |

#### Responses

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

### Get available versions for software {#op-get-api-v1-client-servers-uuid-software-versions-source-uuid-identifier}

`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>`.

#### Parameters

| 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`. |

#### Responses

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

### Uninstall a tracked software artifact {#op-delete-api-v1-client-servers-uuid-software-record-uuid}

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

Uninstall a tracked software artifact.

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

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |
| `record_uuid` | path | string | yes |

#### Responses

| 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 {#op-post-api-v1-client-servers-uuid-software-record-uuid-update}

`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>`.

#### Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| `uuid` | path | string | yes |
| `record_uuid` | path | string | yes |

#### Request body

`application/json`

Type: object or null.

#### Responses

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