Version Overview
Each version represents a specific release of your project with:- One or more downloadable files
- Version metadata (number, changelog, etc.)
- Loader and game compatibility information
- Dependencies and relationships to other projects
- Release channel (release, beta, alpha)
Creating a New Version
Version Status
string
Requested version statusOptions:
listed- Visible and downloadable (default)archived- Hidden from main view, still accessibledraft- Not publicly visible
boolean
Feature this versionFeatured versions appear prominently on the project page. Only one version can be featured at a time.
integer
Display order relative to other versionsLower numbers appear first. If not specified, versions are ordered by publish date.
API Example: Creating a Version
Updating Versions
You can update version metadata after creation:version_title- Display nameversion_body- Changelogstatus- Version statusfeatured- Featured statusordering- Display orderloaders- Supported loaders (requires re-validation)- Loader fields (game versions, etc.)
Adding Files to Existing Versions
Add additional files to a version:data- JSON with optionalfile_typesmap- File fields - The actual files to upload
Version Channels
Use release channels to manage different release tracks:Release
Stable, production-ready versions:- Recommended for most users
- Should be well-tested
- Default channel for downloads
Beta
Preview versions for testing:- May have known issues
- Users opt-in to beta versions
- Good for gathering feedback
Alpha
Experimental early versions:- Potentially unstable
- For brave testers only
- May have breaking changes
Users can filter by channel when browsing versions. Consider using semantic versioning with pre-release tags (e.g.,
1.0.0-beta.1).Deleting Versions
Versions can be deleted if:- You have
DELETE_VERSIONpermission - The version is not the only version of the project
Notifications
When you publish a new version:- All project followers receive a notification
- Notifications include project and version IDs
- Users can customize their notification preferences
Best Practices
- Use semantic versioning - Makes it clear what type of changes are included
- Write detailed changelogs - Help users understand what’s new
- Test before release - Use beta/alpha channels for untested changes
- Mark dependencies - Help users install required mods
- Support multiple versions - Release for current and recent game versions
- Feature important versions - Highlight your recommended version
- Archive old versions - Clean up very outdated releases
Troubleshooting
Common issues: File already exists- The file hash matches an existing file in another project
- This prevents duplicate uploads across Modrinth
- Required field missing for selected loader
- Check required fields:
GET /v3/tag/loader
- File format is invalid or corrupted
- File contains detected security issues
- Contact moderators if you believe this is incorrect
- You don’t have
UPLOAD_VERSIONpermission - Ask a project owner to grant you permissions
