UnifiedHytale Docs

Version Management

API endpoints for managing project versions.

List Versions

GET /projects/{projectId}/versions

List all versions for a project you own.

Query Parameters

ParameterDescription
channelOptional. 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}/versions

Upload a new version with one or more files. Versions require admin approval before going live.

Request Body (multipart/form-data)

FieldDescription
fileRequired. Primary version file (max 500MB)
additional_filesOptional. Additional files (can include multiple)
version_numberRequired. Version number (e.g., "1.0.0")
version_nameOptional. Display name for the version
changelogOptional. Markdown changelog
game_versionsOptional. Comma-separated list (e.g., "1.0,1.1")
release_channelOptional. 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

ChannelDescription
releaseStable releases for production use
betaPre-release versions for testing
alphaEarly development builds

Delete Version

DELETE /projects/{projectId}/versions/{versionId}

Delete a version and its associated file.

On this page