Mods¶
POST /api/mod¶
Create a new mod.
Permission required: mods_create
Request Body¶
| Field | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Slug-style unique identifier (e.g. buildcraft). Must be unique. |
pretty_name |
string | Yes | Human-readable display name (e.g. BuildCraft). |
author |
string | No | Mod author name. |
description |
string | No | Short description of the mod. |
link |
string | No | URL to the mod's homepage. Must be a valid URL or null. |
Example Request¶
curl -X POST https://solder.yourdomain.com/api/mod \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "buildcraft",
"pretty_name": "BuildCraft",
"author": "SpaceToad",
"description": "Extending Minecraft with pipes, auto-crafting, and more.",
"link": "https://www.mod-buildcraft.com"
}'
Response (201)¶
{
"id": 1,
"name": "buildcraft",
"pretty_name": "BuildCraft",
"author": "SpaceToad",
"description": "Extending Minecraft with pipes, auto-crafting, and more.",
"link": "https://www.mod-buildcraft.com",
"created_at": "2026-03-31T12:00:00.000000Z",
"updated_at": "2026-03-31T12:00:00.000000Z"
}
Error Response (422)¶
PUT /api/mod/{slug}¶
Update an existing mod.
Permission required: mods_manage
Path Parameters¶
| Parameter | Type | Description |
|---|---|---|
slug |
string | The mod slug (name). |
Request Body¶
All fields are optional. Only included fields are updated.
| Field | Type | Description |
|---|---|---|
name |
string | Slug-style identifier. Must be unique. |
pretty_name |
string | Display name. |
author |
string | Mod author name. |
description |
string | Short description. |
link |
string | Homepage URL. Must be a valid URL or null. |
Example Request¶
curl -X PUT https://solder.yourdomain.com/api/mod/buildcraft \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"pretty_name": "BuildCraft 2",
"author": "SpaceToad & Developers"
}'
Response (200)¶
{
"id": 1,
"name": "buildcraft",
"pretty_name": "BuildCraft 2",
"author": "SpaceToad & Developers",
"description": "Extending Minecraft with pipes, auto-crafting, and more.",
"link": "https://www.mod-buildcraft.com",
"created_at": "2026-03-31T12:00:00.000000Z",
"updated_at": "2026-03-31T12:05:00.000000Z"
}
Error Responses¶
Mod not found (404):
Validation error (422):
DELETE /api/mod/{slug}¶
Delete a mod and all of its versions.
Permission required: mods_delete
Path Parameters¶
| Parameter | Type | Description |
|---|---|---|
slug |
string | The mod slug (name). |
Example Request¶
curl -X DELETE https://solder.yourdomain.com/api/mod/buildcraft \
-H "Authorization: Bearer YOUR_TOKEN"
Response (200)¶
Error Response (404)¶
Warning
Deleting a mod also deletes all of its versions and detaches them from all builds. This action cannot be undone.
POST /api/mod/{slug}/version¶
Create a new version for a mod.
Permission required: mods_manage
Path Parameters¶
| Parameter | Type | Description |
|---|---|---|
slug |
string | The mod slug (name). |
Request Body¶
| Field | Type | Required | Description |
|---|---|---|---|
version |
string | Yes | Version string (e.g. 7.1.0). Must be unique within the mod. |
md5 |
string | Yes | MD5 hash of the mod archive file. |
filesize |
integer | No | File size in bytes. |
Example Request¶
curl -X POST https://solder.yourdomain.com/api/mod/buildcraft/version \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"version": "7.1.0",
"md5": "d41d8cd98f00b204e9800998ecf8427e",
"filesize": 5242880
}'
Response (201)¶
{
"id": 1,
"mod_id": 1,
"version": "7.1.0",
"md5": "d41d8cd98f00b204e9800998ecf8427e",
"filesize": 5242880,
"created_at": "2026-03-31T12:00:00.000000Z",
"updated_at": "2026-03-31T12:00:00.000000Z"
}
Error Responses¶
Mod not found (404):
Duplicate version (422):
Validation error (422):
{
"error": {
"version": ["The version field is required."],
"md5": ["The md5 field is required."]
}
}
DELETE /api/mod/{slug}/{version}¶
Delete a specific version of a mod.
Permission required: mods_manage
Path Parameters¶
| Parameter | Type | Description |
|---|---|---|
slug |
string | The mod slug (name). |
version |
string | The version string to delete. |
Example Request¶
curl -X DELETE https://solder.yourdomain.com/api/mod/buildcraft/7.1.0 \
-H "Authorization: Bearer YOUR_TOKEN"
Response (200)¶
Error Responses¶
Mod not found (404):
Version not found (404):
Version in use (409):
Note
A mod version cannot be deleted while it is attached to any builds. Remove it from all builds first, then delete it.