From API v1 to API v2
These bullet points cover most changes in the v2 API, but please note that fields containing mod
in most contexts have been shifted to project
. For example, in the search route, the field mod_id
was renamed to project_id
.
- The search route has been moved from
/api/v1/mod
to/v2/search
- New project fields:
project_type
(may bemod
ormodpack
),moderation_message
(which has amessage
andbody
),gallery
- New search facet:
project_type
- Alphabetical sort removed (it didn't work and is not possible due to limits in MeiliSearch)
- New search fields:
project_type
,gallery
- The gallery field is an array of URLs to images that are part of the project's gallery
- The gallery is a new feature which allows the user to upload images showcasing their mod to the CDN which will be displayed on their mod page
- Internal change: Any project file uploaded to Modrinth is now validated to make sure it's a valid Minecraft mod, Modpack, etc.
- For example, a Forge 1.17 mod with a JAR not containing a mods.toml will not be allowed to be uploaded to Modrinth
- In project creation, projects may not upload a mod with no versions to review, however they can be saved as a draft
- Similarly, for version creation, a version may not be uploaded without any files
- Donation URLs have been enabled
- New project status:
archived
. Projects with this status do not appear in search - Tags (such as categories, loaders) now have icons (SVGs) and specific project types attached
- Dependencies have been wiped and replaced with a new system
- Notifications now have a
type
field, such asproject_update
Along with this, project subroutes (such as /v2/project/{id}/version
) now allow the slug to be used as the ID. This is also the case with user routes.
Minotaur v1 to v2
Minotaur 2.x introduced a few breaking changes to how your buildscript is formatted.
First, instead of registering your own publishModrinth
task, Minotaur now automatically creates a modrinth
task. As such, you can replace the task publishModrinth(type: TaskModrinthUpload) {
line with just modrinth {
.
To declare supported Minecraft versions and mod loaders, the gameVersions
and loaders
arrays must now be used. The syntax for these are pretty self-explanatory.
Instead of using releaseType
, you must now use versionType
. This was actually changed in v1.2.0, but very few buildscripts have moved on from v1.1.0.
Dependencies have been changed to a special DSL. Create a dependencies
block within the modrinth
block, and then use scope.type("project/version")
. For example, required.project("fabric-api")
adds a required project dependency on Fabric API.
You may now use the slug anywhere that a project ID was previously required.