Version Management
API endpoints for managing project versions.
List Versions
GET /projects/{projectId}/versionsList all versions for a project you own.
Query Parameters
| Parameter | Description |
|---|---|
channel | Optional. Filter by release channel: release, beta, or alpha |
Example Request
curl -X GET "https://www.unifiedhytale.com/api/v1/projects/abc-123/versions" \
-H "Authorization: Bearer YOUR_API_TOKEN"Example Response
{
"success": true,
"data": [
{
"id": "version-id",
"version_number": "1.0.0",
"version_name": "Initial Release",
"release_channel": "release",
"status": "approved",
"game_versions": ["1.0", "1.1"],
"downloads_count": 150,
"created_at": "2025-01-01T00:00:00Z"
}
],
"count": 1
}Upload Version
POST /projects/{projectId}/versionsUpload a new version with one or more files. Versions require admin approval before going live.
Request Body (multipart/form-data)
| Field | Description |
|---|---|
file | Required. Primary version file (max 500MB) |
additional_files | Optional. Additional files (can include multiple) |
version_number | Required. Version number (e.g., "1.0.0") |
version_name | Optional. Display name for the version |
changelog | Optional. Markdown changelog |
game_versions | Optional. Comma-separated list (e.g., "1.0,1.1") |
release_channel | Optional. One of: release (default), beta, or alpha |
Example Request (Single File)
curl -X POST "https://www.unifiedhytale.com/api/v1/projects/abc-123/versions" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "file=@./my-plugin-1.0.0.jar" \
-F "version_number=1.0.0" \
-F "version_name=Initial Release" \
-F "changelog=# Version 1.0.0\n\nFirst release!" \
-F "game_versions=1.0,1.1" \
-F "release_channel=release"Example Request (Multiple Files)
curl -X POST "https://www.unifiedhytale.com/api/v1/projects/abc-123/versions" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "file=@./my-plugin-1.0.0.jar" \
-F "additional_files=@./documentation.pdf" \
-F "additional_files=@./source-code.zip" \
-F "version_number=1.0.0" \
-F "changelog=Includes docs and source code"Example Response
{
"success": true,
"message": "Version uploaded successfully",
"data": {
"id": "version-id",
"version_number": "1.0.0",
"release_channel": "release",
"status": "pending",
"file_url": "https://...",
"assets": [
{
"id": "asset-1",
"file_name": "my-plugin-1.0.0.jar",
"asset_type": "primary"
},
{
"id": "asset-2",
"file_name": "documentation.pdf",
"asset_type": "additional"
}
]
}
}Multiple Files
Each version can have multiple files. The first file is marked as "primary" and shown as the main download. Additional files (documentation, source code, etc.) are available as separate downloads.
Moderation
All uploaded versions go through moderation and start with status pending. An admin must approve them before they become visible to users.
Get Version
GET /projects/{projectId}/versions/{versionId}Get details of a specific version.
Update Version
PATCH /projects/{projectId}/versions/{versionId}Update version metadata. All fields are optional.
Request Body (JSON)
{
"version_name": "Updated Release Name",
"changelog": "# Updated changelog",
"game_versions": ["1.0", "1.1", "1.2"],
"release_channel": "beta"
}Release Channels
| Channel | Description |
|---|---|
release | Stable releases for production use |
beta | Pre-release versions for testing |
alpha | Early development builds |
Delete Version
DELETE /projects/{projectId}/versions/{versionId}Delete a version and its associated file.