Skip to content
Coritan Docs

Organization API: Customer Portal: Software

The 39 Organization API operations for software.

View as Markdown

Part of Customer Portal.

Method Path Summary
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software List installed software
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/addons Every addon in the folders the server loads from, tracked or hand-uploaded
DELETE /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/addons/records/{record_uuid} Drop a tracking record whose files are gone, without touching the disk
POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/addons/remove Delete one addon from disk, through the tracked uninstall when it has a record
POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/addons/toggle Switch one addon file on or off (Foo.jar <- Foo.jar.disabled)
POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock Turn Bedrock crossplay on or off for one of the customer's Java servers
PUT /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock/channel Choose where Bedrock crossplay takes Geyser from: release or development
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock/packs Behavior and resource packs on disk, which are active in the world, and importable uploads
POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock/packs/disable-all Empty the world's activation lists so it boots on vanilla content; folders stay
POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock/packs/import Queue an import of an uploaded .mcaddon / .mcpack / .zip already on the server
POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock/packs/{pack_uuid}/active Add a pack to, or drop it from, the world's activation list
POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock/packs/{pack_uuid}/remove Deactivate a pack, delete its folder, and drop its tracking row
PUT /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock/texturepack-required Texturepack-required: players must accept the resource packs to join
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/catalog Software catalog
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/catalog/{key}/versions Software catalog versions
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/catalog/{key}/versions/{version}/builds Publisher builds of one game version: the loader versions for Fabric/Forge
POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/change Change server software
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/context Software context
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/dependencies/{source_uuid}/{identifier} What a version requires, named, with what is already installed marked
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/game-settings The server's game settings in server.properties words, whatever file holds them
PATCH /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/game-settings Change game settings: {"values": {"difficulty": "hard", "max-players": 20}}
POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/install Install software
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/installs List software installs
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/installs/{install_uuid} Get software install
POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/installs/{install_uuid}/cancel Cancel software install
POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/installs/{install_uuid}/retry Retry software install
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/jvm The heap slider and the allowlisted startup flags, as the panel shows them
PATCH /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/jvm Move the heap, pick startup flags from the catalog, or reset both
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/resource-pack The server resource pack as server.properties declares it
PUT /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/resource-pack Point players at a pack, from a URL or a marketplace resource pack version
DELETE /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/resource-pack Stop offering a server resource pack
POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/safe-mode Arm a one-shot --safeMode start (vanilla datapack only), optionally starting now
POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/search Search software
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/sources Software sources
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/updates Newer compatible builds for the addons the marketplace installed
GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/versions/{source_uuid}/{identifier} Software versions
POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/via Turn ViaVersion and ViaBackwards on or off for one of the customer's Java servers
DELETE /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/{record_uuid} Uninstall software
POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/{record_uuid}/update Queue an in-place update: the old file is removed, the new build installed

GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software

Name In Type Required
uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/addons

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

Name In Type Required
uuid path string yes
org_slug path string yes
kind query string or null no
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/orgs/{org_slug}/portal/servers/{uuid}/software/addons/records/{record_uuid}

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

Name In Type Required
uuid path string yes
record_uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/addons/remove

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

Name In Type Required
uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/addons/toggle

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

Name In Type Required
uuid path string yes
org_slug 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 one of the customer's Java servers

Section titled Turn Bedrock crossplay on or off for one of the customer's Java servers

POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock

Turn Bedrock crossplay on or off for one of the customer's Java servers.

The same switch as the platform's POST /api/v1/client/servers/{uuid}/software/bedrock. Crossplay lets players on Minecraft Bedrock join the Java server, through Geyser and Floodgate. {"enabled": true} installs both plugins before this answers, gives Geyser a port of its own, and the server loads the plugins at its next start. {"enabled": false} deletes both plugins and their folders and returns Geyser's port to the pool. A body without enabled turns crossplay off. The answer is the crossplay state.

It answers 400 with the reason, and nothing changes, when the server cannot run Geyser (it runs mods, Vanilla, a proxy or a Bedrock server, or a Java older than 21), when GeyserMC's downloads do not answer, or when a plugin cannot be installed. An enabled that is not true or false answers 422. Needs software.install. Each request is recorded in the server's activity log.

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

application/json (required)

Field Type Required Description
enabled boolean no true turns Bedrock crossplay on: Geyser and Floodgate are installed before the request answers. false turns it off and removes both. A body without enabled turns crossplay off.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Choose where Bedrock crossplay takes Geyser from: release or development

Section titled Choose where Bedrock crossplay takes Geyser from: release or development

PUT /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock/channel

Choose where Bedrock crossplay takes Geyser from: release or development.

The same switch as the platform's PUT /api/v1/client/servers/{uuid}/software/bedrock/channel, for one of the customer's servers. development is the newest build of GeyserMC's GitHub build workflow, for a Minecraft version no Geyser release supports yet. With crossplay on, the chosen Geyser is installed before this answers and each start updates it from the same place. Needs software.install.

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

application/json (required)

Field Type Required Description
channel string, one of release, development yes Where Bedrock crossplay takes Geyser from. release is GeyserMC's newest release, the default. development is the newest build of GeyserMC's GitHub build workflow, which supports a new Minecraft version before a release does and has had less testing.
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/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock/packs

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

Name In Type Required
uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock/packs/disable-all

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

Name In Type Required
uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock/packs/import

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

Name In Type Required
uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock/packs/{pack_uuid}/active

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

Name In Type Required
uuid path string yes
pack_uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock/packs/{pack_uuid}/remove

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

Name In Type Required
uuid path string yes
pack_uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/bedrock/texturepack-required

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

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

application/json (required)

Type: Body.

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

GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/catalog

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

GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/catalog/{key}/versions

Name In Type Required Description
uuid path string yes
key path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/catalog/{key}/versions/{version}/builds

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

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

POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/change

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

application/json (required)

Type: Body.

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

GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/context

Name In Type Required
uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/dependencies/{source_uuid}/{identifier}

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

Name In Type Required Description
uuid path string yes
source_uuid path string yes
identifier path string yes
org_slug path string yes
version query string no Default: latest.
kind query string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

The server's game settings in server.properties words, whatever file holds them

Section titled The server's game settings in server.properties words, whatever file holds them

GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/game-settings

The server's game settings in server.properties words, whatever file holds them.

format is server.properties (every key the file has, in values) or pumpkin.toml (Pumpkin: the keys settings lists, each with its kind and limits, plus bedrock-players). exists is false before the game first wrote its file. Changes apply on the next start. Needs file.read-content.

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

Change game settings: {"values": {"difficulty": "hard", "max-players": 20}}

Section titled Change game settings: {"values": {"difficulty": "hard", "max-players": 20}}

PATCH /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/game-settings

Change game settings: {"values": {"difficulty": "hard", "max-players": 20}}.

Keys are server.properties words; null puts a key back to its default. On a Pumpkin server only the keys GET lists are taken, each checked the way Pumpkin reads it, and an unknown key or a value out of range answers 400 naming what it takes. At most 40 keys at once. Needs file.update. Recorded in the server's activity log.

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

application/json (required)

Type: Body.

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

POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/install

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

application/json (required)

Type: SoftwareInstallBody or object.

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

GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/installs

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

GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/installs/{install_uuid}

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

POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/installs/{install_uuid}/cancel

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

POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/installs/{install_uuid}/retry

Name In Type Required
uuid path string yes
install_uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/jvm

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

Name In Type Required
uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/jvm

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

Name In Type Required
uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/resource-pack

The server resource pack as server.properties declares it.

Name In Type Required
uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/resource-pack

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

Name In Type Required
uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/resource-pack

Stop offering a server resource pack.

Name In Type Required
uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/safe-mode

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

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

application/json (required)

Type: Body.

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

POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/search

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

application/json (required)

Field Type Required
query string no
source string or null no
source_uuid string or null no
page integer no
limit integer no
kind string or null no
sort string or null no
loaders array of string or null no
game_versions array of string or null no
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/sources

Name In Type Required
uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/updates

Newer compatible builds for the addons the marketplace installed.

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

GET /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/versions/{source_uuid}/{identifier}

Name In Type Required Description
uuid path string yes
source_uuid path string yes
identifier path string yes
org_slug path string yes
page query integer no Default: 1.
limit query integer no Default: 50.
loaders query string or null no
game_versions query string or null no
kind query string or null no
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.

Turn ViaVersion and ViaBackwards on or off for one of the customer's Java servers

Section titled Turn ViaVersion and ViaBackwards on or off for one of the customer's Java servers

POST /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/via

Turn ViaVersion and ViaBackwards on or off for one of the customer's Java servers.

The same switch as the platform's POST /api/v1/client/servers/{uuid}/software/via. Every plugin server has both plugins unless the customer turns them off: ViaVersion lets players on newer Minecraft versions join, and ViaBackwards lets players on older versions join. true installs the newest releases before it answers and the server loads them at its next start; false removes the two jars and keeps them off. The answer is the state software/context shows under via_plugins, and a refusal answers 400 with the reason. Needs software.install.

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

application/json (required)

Field Type Required Description
enabled boolean yes true installs ViaVersion and ViaBackwards now and keeps them updated at every start, which is how every plugin server starts out. false removes them and keeps them off until you turn them back on.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

DELETE /api/v1/orgs/{org_slug}/portal/servers/{uuid}/software/{record_uuid}

Name In Type Required
uuid path string yes
record_uuid path string yes
org_slug 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/orgs/{org_slug}/portal/servers/{uuid}/software/{record_uuid}/update

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

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

application/json

Type: object or null.

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