Skip to content

Builds

POST /api/modpack/{slug}/build

Create a new build for a modpack.

Permission required: modpacks_manage + access to the modpack

Path Parameters

Parameter Type Description
slug string The modpack slug.

Request Body

Field Type Required Description
version string Yes Build version string (e.g. 1.0.0). Must be unique within the modpack.
minecraft string Yes Minecraft version (e.g. 1.20.1).
forge string No Forge version string.
is_published boolean No Whether the build is visible in the API. Defaults to false.
private boolean No Restrict to authorized clients. Defaults to false.
min_java string No Minimum Java version (e.g. 17).
min_memory integer No Minimum memory in MB (e.g. 2048).
clone_from string No Version string of an existing build in this modpack. All mod assignments from the source build will be copied to the new build.

Example Request

curl -X POST https://solder.yourdomain.com/api/modpack/hexxit/build \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0.0",
    "minecraft": "1.20.1",
    "forge": "47.2.0",
    "is_published": true,
    "min_java": "17",
    "min_memory": 2048
  }'

Response (201)

{
  "id": 1,
  "modpack_id": 1,
  "version": "1.0.0",
  "minecraft": "1.20.1",
  "forge": "47.2.0",
  "is_published": true,
  "private": false,
  "min_java": "17",
  "min_memory": 2048,
  "created_at": "2026-03-31T12:00:00.000000Z",
  "updated_at": "2026-03-31T12:00:00.000000Z"
}

Cloning Mods from Another Build

Use the clone_from parameter to copy all mod assignments from an existing build. This is useful when creating a new version that starts with the same mod list.

curl -X POST https://solder.yourdomain.com/api/modpack/hexxit/build \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0.1",
    "minecraft": "1.20.1",
    "clone_from": "1.0.0"
  }'

If the source build version does not exist, the build is still created -- the clone_from parameter is silently ignored.

Error Responses

Modpack not found (404):

{
  "error": "Modpack not found."
}

Duplicate version (422):

{
  "error": "Build version already exists for this modpack."
}

Validation error (422):

{
  "error": {
    "version": ["The version field is required."],
    "minecraft": ["The minecraft field is required."]
  }
}

PUT /api/modpack/{slug}/{version}

Update an existing build.

Permission required: modpacks_manage + access to the modpack

Path Parameters

Parameter Type Description
slug string The modpack slug.
version string The current build version string.

Request Body

All fields are optional. Only included fields are updated.

Field Type Description
version string Build version string.
minecraft string Minecraft version.
forge string Forge version.
is_published boolean Whether the build is visible in the API.
private boolean Restrict to authorized clients.
min_java string Minimum Java version.
min_memory integer Minimum memory in MB.

Example Request

curl -X PUT https://solder.yourdomain.com/api/modpack/hexxit/1.0.0 \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "is_published": true,
    "forge": "47.2.1"
  }'

Response (200)

{
  "id": 1,
  "modpack_id": 1,
  "version": "1.0.0",
  "minecraft": "1.20.1",
  "forge": "47.2.1",
  "is_published": true,
  "private": false,
  "min_java": "17",
  "min_memory": 2048,
  "created_at": "2026-03-31T12:00:00.000000Z",
  "updated_at": "2026-03-31T12:10:00.000000Z"
}

Error Responses

Modpack not found (404):

{
  "error": "Modpack not found."
}

Build not found (404):

{
  "error": "Build not found."
}

DELETE /api/modpack/{slug}/{version}

Delete a build from a modpack.

Permission required: modpacks_manage + access to the modpack

Path Parameters

Parameter Type Description
slug string The modpack slug.
version string The build version string.

Example Request

curl -X DELETE https://solder.yourdomain.com/api/modpack/hexxit/1.0.0 \
  -H "Authorization: Bearer YOUR_TOKEN"

Response (200)

{
  "success": "Build deleted."
}

Error Responses

Modpack not found (404):

{
  "error": "Modpack not found."
}

Build not found (404):

{
  "error": "Build not found."
}

Note

Deleting a build detaches all mod assignments from that build. The mods and mod versions themselves are not deleted.