Labrinth

Minecraft modding platform API

docs.modrinth.com ↗
Version
v2.7.0/15cf3fc
OpenAPI
3.0.0
Endpoints
76
Schemas
91
81
Quality
Updated
3 days ago
Gaming gaming minecraft mods
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.modrinth.com/v2
https://staging-api.modrinth.com/v2

Endpoints

Clear filters

Notifications 2 endpoints

PATCH /notifications
operationId: Notifications_markAsRead

Parameters

Name In Required Type Description
ids query required string

The IDs of the notifications

Responses

204

Expected response to a valid request

401

Incorrect token scopes or no authorization to access the requested item(s)

404

The requested item(s) were not found or no authorization to access the requested item(s)

PATCH /notifications
PATCH /notification/{id}
operationId: Notifications_markAsRead

Parameters

Name In Required Type Description
id path optional string

The ID of the notification

Responses

204

Expected response to a valid request

401

Incorrect token scopes or no authorization to access the requested item(s)

404

The requested item(s) were not found or no authorization to access the requested item(s)

PATCH /notification/{id}

Projects 4 endpoints

PATCH /projects
operationId: Projects_bulkEdit

Parameters

Name In Required Type Description
ids query optional string

The IDs and/or slugs of the projects

Request Body

Fields to edit on all projects specified

application/json
schema PatchProjectsBody
Property Type Required
wiki_url string optional
categories array optional
issues_url string optional
source_url string optional
discord_url string optional
donation_urls array optional
id string optional
url string optional
platform string optional
add_categories array optional
add_donation_urls array optional
id string optional
url string optional
platform string optional
remove_categories array optional
remove_donation_urls array optional
id string optional
url string optional
platform string optional
additional_categories array optional
add_additional_categories array optional
remove_additional_categories array optional

Responses

204

Expected response to a valid request

400

Request was invalid, see given error

401

Incorrect token scopes or no authorization to access the requested item(s)

PATCH /projects
PATCH /project/{id|slug}
operationId: Projects_updateProjectByIdOrSlug

Parameters

Name In Required Type Description
id|slug path optional string

The ID or slug of the project

Request Body

Modified project fields

application/json
schema EditableProject
Property Type Required
slug string optional
title string optional
categories array optional
client_side string optional
description string optional
server_side string optional
body string optional
status string optional
wiki_url string optional
issues_url string optional
source_url string optional
discord_url string optional
donation_urls array optional
id string optional
url string optional
platform string optional
requested_status string optional
additional_categories array optional
license_id string optional
license_url string optional
moderation_message string optional
moderation_message_body string optional

Responses

204

Expected response to a valid request

401

Incorrect token scopes or no authorization to access the requested item(s)

404

The requested item(s) were not found or no authorization to access the requested item(s)

PATCH /project/{id|slug}
PATCH /project/{id|slug}/gallery
operationId: Projects_modifyGalleryImage

Parameters

Name In Required Type Description
id|slug path optional string

The ID or slug of the project

url query required string

URL link of the image to modify

featured query optional boolean

Whether the image is featured

title query optional string

New title of the image

description query optional string

New description of the image

ordering query optional integer

New ordering of the image

Responses

204

Expected response to a valid request

401

Incorrect token scopes or no authorization to access the requested item(s)

404

The requested item(s) were not found or no authorization to access the requested item(s)

PATCH /project/{id|slug}/gallery
PATCH /project/{id|slug}/icon

The new icon may be up to 256KiB in size.

operationId: Projects_changeProjectIcon

Parameters

Name In Required Type Description
id|slug path optional string

The ID or slug of the project

ext query required string

Image extension

Request Body

image/bmp
schema ProjectsChangeProjectIconRequest2
string
image/gif
schema ProjectsChangeProjectIconRequest3
string
image/png
schema ProjectsChangeProjectIconRequest
string
image/rgb
schema ProjectsChangeProjectIconRequest7
string
image/svg
schema ProjectsChangeProjectIconRequest5
string
image/jpeg
schema ProjectsChangeProjectIconRequest1
string
image/svgz
schema ProjectsChangeProjectIconRequest6
string
image/webp
schema ProjectsChangeProjectIconRequest4
string

Responses

204

Expected response to a valid request

400

Request was invalid, see given error

PATCH /project/{id|slug}/icon

Teams 2 endpoints

PATCH /team/{id}/members/{id|username}
operationId: Teams_modifyMemberInfo

Parameters

Name In Required Type Description
id path optional string

The ID of the team

id|username path optional string

The ID or username of the user

Request Body

Contents to be modified

application/json
schema ModifyTeamMemberBody

Responses

204

Expected response to a valid request

401

Incorrect token scopes or no authorization to access the requested item(s)

404

The requested item(s) were not found or no authorization to access the requested item(s)

PATCH /team/{id}/members/{id|username}
PATCH /team/{id}/owner
operationId: Teams_transferOwnership

Parameters

Name In Required Type Description
id path optional string

The ID of the team

Request Body

New owner’s ID

application/json
schema UserIdentifier

Responses

204

Expected response to a valid request

401

Incorrect token scopes or no authorization to access the requested item(s)

404

The requested item(s) were not found or no authorization to access the requested item(s)

PATCH /team/{id}/owner

Threads 1 endpoints

PATCH /report/{id}
operationId: Threads_modifyReport

Parameters

Name In Required Type Description
id path optional string

The ID of the report

Request Body

What to modify about the report

application/json
schema ThreadsModifyReportRequest
Property Type Required
body string optional
closed boolean optional

Responses

204

Expected response to a valid request

400

Request was invalid, see given error

401

Incorrect token scopes or no authorization to access the requested item(s)

404

The requested item(s) were not found or no authorization to access the requested item(s)

PATCH /report/{id}

Users 2 endpoints

PATCH /user/{id|username}
operationId: Users_modifyUserPatch

Parameters

Name In Required Type Description
id|username path optional string

The ID or username of the user

Request Body

Modified user fields

application/json
schema EditableUser
Property Type Required
bio string optional
name string optional
email string optional
username string required
payout_data object optional
balance integer optional
payout_wallet string optional
payout_address string optional
payout_wallet_type string optional

Responses

204

Expected response to a valid request

401

Incorrect token scopes or no authorization to access the requested item(s)

404

The requested item(s) were not found or no authorization to access the requested item(s)

PATCH /user/{id|username}
PATCH /user/{id|username}/icon

The new avatar may be up to 2MiB in size.

operationId: Users_changeAvatar

Parameters

Name In Required Type Description
id|username path optional string

The ID or username of the user

Request Body

image/bmp
schema ProjectsChangeProjectIconRequest2
string
image/gif
schema ProjectsChangeProjectIconRequest3
string
image/png
schema ProjectsChangeProjectIconRequest
string
image/rgb
schema ProjectsChangeProjectIconRequest7
string
image/svg
schema ProjectsChangeProjectIconRequest5
string
image/jpeg
schema ProjectsChangeProjectIconRequest1
string
image/svgz
schema ProjectsChangeProjectIconRequest6
string
image/webp
schema ProjectsChangeProjectIconRequest4
string

Responses

204

Expected response to a valid request

400

Request was invalid, see given error

404

The requested item(s) were not found or no authorization to access the requested item(s)

PATCH /user/{id|username}/icon

Versions 1 endpoints

PATCH /version/{id}
operationId: Versions_modifyVersionById

Parameters

Name In Required Type Description
id path optional string

The ID of the version

Request Body

Modified version fields

application/json
schema EditableVersion
Property Type Required
name string optional
status string optional
loaders array optional
featured boolean optional
changelog string optional
dependencies array optional
file_name string optional
project_id string optional
version_id string optional
dependency_type string required
version_type string optional
game_versions array optional
version_number string optional
requested_status string optional
file_types array optional
hash string required
algorithm string required
file_type string required
primary_file array optional

Responses

204

Expected response to a valid request

401

Incorrect token scopes or no authorization to access the requested item(s)

404

The requested item(s) were not found or no authorization to access the requested item(s)

PATCH /version/{id}

Schemas

object AuthError
{
  "type": "object",
  "required": [
    "error",
    "description"
  ],
  "properties": {
    "error": {
      "type": "string",
      "example": "unauthorized",
      "description": "The name of the error"
    },
    "description": {
      "type": "string",
      "example": "Authentication Error: Invalid Authentication Credentials",
      "description": "The contents of the error"
    }
  }
}
object BaseProject
{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "example": "my_project",
      "description": "The slug of a project, used for vanity URLs. Regex: ```^[\\w!@$()`.+,\"\\-']{3,64}$```"
    },
    "title": {
      "type": "string",
      "example": "My Project",
      "description": "The title or name of the project"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "technology",
        "adventure",
        "fabric"
      ],
      "description": "A list of the categories that the project has"
    },
    "client_side": {
      "enum": [
        "required",
        "optional",
        "unsupported"
      ],
      "type": "string",
      "example": "required",
      "description": "The client side support of the project"
    },
    "description": {
      "type": "string",
      "example": "A short description",
      "description": "A short description of the project"
    },
    "server_side": {
      "enum": [
        "required",
        "optional",
        "unsupported"
      ],
      "type": "string",
      "example": "optional",
      "description": "The server side support of the project"
    }
  }
}
object BaseVersion
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Version 1.0.0",
      "description": "The name of this version"
    },
    "status": {
      "enum": [
        "listed",
        "archived",
        "draft",
        "unlisted",
        "scheduled",
        "unknown"
      ],
      "type": "string",
      "example": "listed"
    },
    "loaders": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "fabric",
        "forge"
      ],
      "description": "The mod loaders that this version supports"
    },
    "featured": {
      "type": "boolean",
      "example": true,
      "description": "Whether the version is featured or not"
    },
    "changelog": {
      "type": "string",
      "example": "List of changes in this version: ...",
      "nullable": true,
      "description": "The changelog for this version"
    },
    "dependencies": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/VersionDependency"
      },
      "description": "A list of specific versions of projects that this version depends on"
    },
    "version_type": {
      "enum": [
        "release",
        "beta",
        "alpha"
      ],
      "type": "string",
      "example": "release",
      "description": "The release channel for this version"
    },
    "game_versions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "1.16.5",
        "1.17.1"
      ],
      "description": "A list of versions of Minecraft that this version supports"
    },
    "version_number": {
      "type": "string",
      "example": "1.0.0",
      "description": "The version number. Ideally will follow semantic versioning"
    },
    "requested_status": {
      "enum": [
        "listed",
        "archived",
        "draft",
        "unlisted"
      ],
      "type": "string",
      "nullable": true
    }
  }
}
object CategoryTag
{
  "type": "object",
  "required": [
    "icon",
    "name",
    "project_type",
    "header"
  ],
  "properties": {
    "icon": {
      "type": "string",
      "example": "<svg></svg>",
      "description": "The SVG icon of a category"
    },
    "name": {
      "type": "string",
      "example": "adventure",
      "description": "The name of the category"
    },
    "header": {
      "type": "string",
      "example": "resolutions",
      "description": "The header under which the category should go"
    },
    "project_type": {
      "type": "string",
      "example": "mod",
      "description": "The project type this category is applicable to"
    }
  }
}
object CreatableProject
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ModifiableProject"
    },
    {
      "type": "object",
      "required": [
        "project_type",
        "slug",
        "title",
        "description",
        "body",
        "categories",
        "client_side",
        "server_side",
        "license_id"
      ],
      "properties": {
        "is_draft": {
          "type": "boolean",
          "example": true,
          "deprecated": true,
          "description": "Whether the project should be saved as a draft instead of being sent to moderation for review. Deprecated - please always mark this as true."
        },
        "project_type": {
          "enum": [
            "mod",
            "modpack"
          ],
          "type": "string",
          "example": "modpack"
        },
        "gallery_items": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CreatableProjectGalleryItem"
          },
          "deprecated": true,
          "description": "Gallery images to be uploaded with the created project. Deprecated - please upload gallery images after initial upload."
        },
        "initial_versions": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/EditableVersion"
          },
          "deprecated": true,
          "description": "A list of initial versions to upload with the created project. Deprecated - please upload version files after initial upload."
        }
      }
    }
  ]
}
object CreatableProjectGalleryItem
{
  "type": "object",
  "nullable": true,
  "properties": {
    "item": {
      "type": "string",
      "description": "The name of the multipart item where the gallery media is located"
    },
    "title": {
      "type": "string",
      "example": "My awesome screenshot!",
      "nullable": true,
      "description": "The title of the gallery image"
    },
    "featured": {
      "type": "boolean",
      "example": true,
      "description": "Whether the image is featured in the gallery"
    },
    "ordering": {
      "type": "integer",
      "example": 0,
      "description": "The order of the gallery image. Gallery images are sorted by this field and then alphabetically by title."
    },
    "description": {
      "type": "string",
      "example": "This awesome screenshot shows all of the blocks in my mod!",
      "nullable": true,
      "description": "The description of the gallery image"
    }
  }
}
object CreatableReport
{
  "type": "object",
  "required": [
    "report_type",
    "item_id",
    "item_type",
    "body"
  ],
  "properties": {
    "body": {
      "type": "string",
      "example": "This is a reupload of my mod, AABBCCDD!",
      "description": "The extended explanation of the report"
    },
    "item_id": {
      "type": "string",
      "example": "EEFFGGHH",
      "description": "The ID of the item (project, version, or user) being reported"
    },
    "item_type": {
      "enum": [
        "project",
        "user",
        "version"
      ],
      "type": "string",
      "example": "project",
      "description": "The type of the item being reported"
    },
    "report_type": {
      "type": "string",
      "example": "copyright",
      "description": "The type of the report being sent"
    }
  }
}
object CreatableVersion
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseVersion"
    },
    {
      "type": "object",
      "required": [
        "file_parts",
        "project_id",
        "name",
        "version_number",
        "game_versions",
        "version_type",
        "loaders",
        "featured",
        "dependencies"
      ],
      "properties": {
        "file_parts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of the multipart field names of each file that goes with this version"
        },
        "project_id": {
          "type": "string",
          "example": "AABBCCDD",
          "description": "The ID of the project this version is for"
        },
        "primary_file": {
          "type": "string",
          "description": "The multipart field name of the primary file"
        }
      }
    }
  ]
}
object CreateProjectBody
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CreatableProject"
    },
    "icon": {
      "enum": [
        "*.png",
        "*.jpg",
        "*.jpeg",
        "*.bmp",
        "*.gif",
        "*.webp",
        "*.svg",
        "*.svgz",
        "*.rgb"
      ],
      "type": "string",
      "format": "binary",
      "description": "Project icon file"
    }
  }
}
object CreateVersionBody
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CreatableVersion"
    }
  }
}
object DonationPlatformTag
{
  "type": "object",
  "required": [
    "short",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "Buy Me a Coffee",
      "description": "The full name of the donation platform"
    },
    "short": {
      "type": "string",
      "example": "bmac",
      "description": "The short identifier of the donation platform"
    }
  }
}
object EditableFileType
{
  "type": "object",
  "required": [
    "algorithm",
    "hash",
    "file_type"
  ],
  "properties": {
    "hash": {
      "type": "string",
      "example": "aaaabbbbccccddddeeeeffffgggghhhhiiiijjjj",
      "description": "The hash of the file you're editing"
    },
    "algorithm": {
      "type": "string",
      "example": "sha1",
      "description": "The hash algorithm of the hash specified in the hash field"
    },
    "file_type": {
      "enum": [
        "required-resource-pack",
        "optional-resource-pack"
      ],
      "type": "string",
      "example": "required-resource-pack",
      "nullable": true,
      "description": "The hash algorithm of the file you're editing"
    }
  }
}
object EditableProject
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ModifiableProject"
    },
    {
      "type": "object",
      "properties": {
        "moderation_message": {
          "type": "string",
          "nullable": true,
          "description": "The title of the moderators' message for the project"
        },
        "moderation_message_body": {
          "type": "string",
          "nullable": true,
          "description": "The body of the moderators' message for the project"
        }
      }
    }
  ]
}
object EditableUser
{
  "type": "object",
  "required": [
    "username"
  ],
  "properties": {
    "bio": {
      "type": "string",
      "example": "My short biography",
      "description": "A description of the user"
    },
    "name": {
      "type": "string",
      "example": "My User",
      "nullable": true,
      "description": "The user's display name"
    },
    "email": {
      "type": "string",
      "format": "email",
      "nullable": true,
      "description": "The user's email (only displayed if requesting your own account). Requires `USER_READ_EMAIL` PAT scope."
    },
    "username": {
      "type": "string",
      "example": "my_user",
      "description": "The user's username"
    },
    "payout_data": {
      "$ref": "#/components/schemas/UserPayoutData"
    }
  }
}
object EditableVersion
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseVersion"
    },
    {
      "type": "object",
      "properties": {
        "file_types": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/EditableFileType"
          },
          "description": "A list of file_types to edit"
        },
        "primary_file": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "sha1",
            "aaaabbbbccccddddeeeeffffgggghhhhiiiijjjj"
          ],
          "description": "The hash format and the hash of the new primary file"
        }
      }
    }
  ]
}
object ForgeUpdateCheckerPromos
{
  "type": "object",
  "properties": {
    "{version}-latest": {
      "type": "string",
      "description": "The latest mod version for `{version}`. Shows versions with the `alpha` and `beta` version types."
    },
    "{version}-recommended": {
      "type": "string",
      "description": "The mod version that is recommended for `{version}`. Excludes versions with the `alpha` and `beta` version types."
    }
  },
  "description": "A list of the recommended and latest versions for each Minecraft release"
}
object ForgeUpdates
{
  "type": "object",
  "properties": {
    "promos": {
      "$ref": "#/components/schemas/ForgeUpdateCheckerPromos"
    },
    "homepage": {
      "type": "string",
      "example": "https://modrinth.com",
      "description": "A link to the mod page"
    }
  },
  "description": "Mod version information that can be consumed by Forge's update checker"
}
object GalleryImage
{
  "type": "object",
  "nullable": true,
  "required": [
    "url",
    "featured",
    "created"
  ],
  "properties": {
    "url": {
      "type": "string",
      "example": "https://cdn.modrinth.com/data/AABBCCDD/images/009b7d8d6e8bf04968a29421117c59b3efe2351a.png",
      "description": "The URL of the gallery image"
    },
    "title": {
      "type": "string",
      "example": "My awesome screenshot!",
      "nullable": true,
      "description": "The title of the gallery image"
    },
    "created": {
      "type": "string",
      "format": "ISO-8601",
      "description": "The date and time the gallery image was created"
    },
    "featured": {
      "type": "boolean",
      "example": true,
      "description": "Whether the image is featured in the gallery"
    },
    "ordering": {
      "type": "integer",
      "example": 0,
      "description": "The order of the gallery image. Gallery images are sorted by this field and then alphabetically by title."
    },
    "description": {
      "type": "string",
      "example": "This awesome screenshot shows all of the blocks in my mod!",
      "nullable": true,
      "description": "The description of the gallery image"
    }
  }
}
object GameVersionTag
{
  "type": "object",
  "required": [
    "version",
    "version_type",
    "date",
    "major"
  ],
  "properties": {
    "date": {
      "type": "string",
      "format": "ISO-8601",
      "description": "The date of the game version release"
    },
    "major": {
      "type": "boolean",
      "example": true,
      "description": "Whether or not this is a major version, used for Featured Versions"
    },
    "version": {
      "type": "string",
      "example": "1.18.1",
      "description": "The name/number of the game version"
    },
    "version_type": {
      "enum": [
        "release",
        "snapshot",
        "alpha",
        "beta"
      ],
      "type": "string",
      "example": "release",
      "description": "The type of the game version"
    }
  }
}
object GetLatestVersionFromHashBody
{
  "type": "object",
  "required": [
    "loaders",
    "game_versions"
  ],
  "properties": {
    "loaders": {
      "type": "array",
      "items": {
        "type": "string",
        "example": [
          "fabric"
        ]
      }
    },
    "game_versions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "1.18",
        "1.18.1"
      ]
    }
  }
}
object GetLatestVersionsFromHashesBody
{
  "allOf": [
    {
      "$ref": "#/components/schemas/HashList"
    },
    {
      "type": "object",
      "required": [
        "loaders",
        "game_versions"
      ],
      "properties": {
        "loaders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "fabric"
          ]
        },
        "game_versions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "1.18",
            "1.18.1"
          ]
        }
      }
    }
  ]
}
object HashList
{
  "type": "object",
  "required": [
    "hashes",
    "algorithm"
  ],
  "properties": {
    "hashes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "ea0f38408102e4d2efd53c2cc11b88b711996b48d8922f76ea6abf731219c5bd1efe39ddf9cce77c54d49a62ff10fb685c00d2e4c524ab99d20f6296677ab2c4",
        "925a5c4899affa4098d997dfa4a4cb52c636d539e94bc489d1fa034218cb96819a70eb8b01647a39316a59fcfe223c1a8c05ed2e2ae5f4c1e75fa48f6af1c960"
      ]
    },
    "algorithm": {
      "enum": [
        "sha1",
        "sha512"
      ],
      "type": "string",
      "example": "sha512"
    }
  },
  "description": "A list of hashes and the algorithm used to create them"
}
object HashVersionMap
{
  "type": "object",
  "description": "A map from hashes to versions",
  "additionalProperties": {
    "$ref": "#/components/schemas/Version"
  }
}
object InvalidInputError
{
  "type": "object",
  "required": [
    "error",
    "description"
  ],
  "properties": {
    "error": {
      "type": "string",
      "example": "invalid_input",
      "description": "The name of the error"
    },
    "description": {
      "type": "string",
      "example": "Error while parsing multipart payload",
      "description": "The contents of the error"
    }
  }
}
object License
{
  "type": "object",
  "properties": {
    "body": {
      "type": "string",
      "example": "Insert the entire text of the LGPL-3.0 here..."
    },
    "title": {
      "type": "string",
      "example": "GNU Lesser General Public License v3.0 or later"
    }
  },
  "description": "A full license"
}
object LicenseTag
{
  "type": "object",
  "required": [
    "short",
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "example": "GNU Lesser General Public License v3",
      "description": "The full name of the license"
    },
    "short": {
      "type": "string",
      "example": "lgpl-3",
      "description": "The short identifier of the license"
    }
  },
  "description": "A short overview of a license"
}
object LoaderTag
{
  "type": "object",
  "required": [
    "icon",
    "name",
    "supported_project_types"
  ],
  "properties": {
    "icon": {
      "type": "string",
      "example": "<svg></svg>",
      "description": "The SVG icon of a loader"
    },
    "name": {
      "type": "string",
      "example": "fabric",
      "description": "The name of the loader"
    },
    "supported_project_types": {
      "type": "array",
      "items": {
        "type": "string",
        "description": "The project type"
      },
      "example": [
        "mod",
        "modpack"
      ],
      "description": "The project types that this loader is applicable to"
    }
  }
}
object ModeratorMessage
{
  "type": "object",
  "example": null,
  "nullable": true,
  "deprecated": true,
  "properties": {
    "body": {
      "type": "string",
      "nullable": true,
      "description": "The longer body of the message that a moderator has left for the project"
    },
    "message": {
      "type": "string",
      "description": "The message that a moderator has left for the project"
    }
  },
  "description": "A message that a moderator sent regarding the project"
}
object ModifiableProject
{
  "allOf": [
    {
      "$ref": "#/components/schemas/NonSearchProject"
    },
    {
      "type": "object",
      "properties": {
        "license_id": {
          "type": "string",
          "example": "LGPL-3.0-or-later",
          "description": "The SPDX license ID of a project"
        },
        "license_url": {
          "type": "string",
          "nullable": true,
          "description": "The URL to this license"
        }
      }
    }
  ]
}
object ModifyTeamMemberBody
{
  "properties": {
    "role": {
      "type": "string",
      "example": "Contributor"
    },
    "ordering": {
      "type": "integer",
      "example": 0,
      "description": "The order of the team member."
    },
    "permissions": {
      "type": "integer",
      "format": "bitfield",
      "example": 127,
      "description": "The user's permissions in bitfield format\n\nIn order from first to tenth bit, the bits are:\n- UPLOAD_VERSION\n- DELETE_VERSION\n- EDIT_DETAILS\n- EDIT_BODY\n- MANAGE_INVITES\n- REMOVE_MEMBER\n- EDIT_MEMBER\n- DELETE_PROJECT\n- VIEW_ANALYTICS\n- VIEW_PAYOUTS\n"
    },
    "payouts_split": {
      "type": "integer",
      "example": 100,
      "description": "The split of payouts going to this user. The proportion of payouts they get is their split divided by the sum of the splits of all members."
    }
  }
}
object NonSearchProject
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BaseProject"
    },
    {
      "type": "object",
      "properties": {
        "body": {
          "type": "string",
          "example": "A long body describing my project in detail",
          "description": "A long form description of the project"
        },
        "status": {
          "enum": [
            "approved",
            "archived",
            "rejected",
            "draft",
            "unlisted",
            "processing",
            "withheld",
            "scheduled",
            "private",
            "unknown"
          ],
          "type": "string",
          "example": "approved",
          "description": "The status of the project"
        },
        "wiki_url": {
          "type": "string",
          "example": "https://github.com/my_user/my_project/wiki",
          "nullable": true,
          "description": "An optional link to the project's wiki page or other relevant information"
        },
        "issues_url": {
          "type": "string",
          "example": "https://github.com/my_user/my_project/issues",
          "nullable": true,
          "description": "An optional link to where to submit bugs or issues with the project"
        },
        "source_url": {
          "type": "string",
          "example": "https://github.com/my_user/my_project",
          "nullable": true,
          "description": "An optional link to the source code of the project"
        },
        "discord_url": {
          "type": "string",
          "example": "https://discord.gg/AaBbCcDd",
          "nullable": true,
          "description": "An optional invite link to the project's discord"
        },
        "donation_urls": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ProjectDonationURL"
          },
          "description": "A list of donation links for the project"
        },
        "requested_status": {
          "enum": [
            "approved",
            "archived",
            "unlisted",
            "private",
            "draft"
          ],
          "type": "string",
          "nullable": true,
          "description": "The requested status when submitting for review or scheduling the project for release"
        },
        "additional_categories": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "technology",
            "adventure",
            "fabric"
          ],
          "description": "A list of categories which are searchable but non-primary"
        }
      }
    }
  ]
}
object Notification
{
  "type": "object",
  "required": [
    "id",
    "user_id",
    "title",
    "text",
    "link",
    "read",
    "created",
    "actions"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "UUVVWWXX",
      "description": "The id of the notification"
    },
    "link": {
      "type": "string",
      "example": "mod/AABBCCDD/version/IIJJKKLL",
      "description": "A link to the related project or version"
    },
    "read": {
      "type": "boolean",
      "example": false,
      "description": "Whether the notification has been read or not"
    },
    "text": {
      "type": "string",
      "example": "The project, My Project, has released a new version: 1.0.0",
      "description": "The body text of the notification"
    },
    "type": {
      "enum": [
        "project_update",
        "team_invite",
        "status_change",
        "moderator_message"
      ],
      "type": "string",
      "example": "project_update",
      "nullable": true,
      "description": "The type of notification"
    },
    "title": {
      "type": "string",
      "example": "**My Project** has been updated!",
      "description": "The title of the notification"
    },
    "actions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/NotificationAction"
      },
      "description": "A list of actions that can be performed"
    },
    "created": {
      "type": "string",
      "format": "ISO-8601",
      "description": "The time at which the notification was created"
    },
    "user_id": {
      "type": "string",
      "example": "EEFFGGHH",
      "description": "The id of the user who received the notification"
    }
  }
}
object NotificationAction
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "example": "Accept",
      "description": "The friendly name for this action"
    },
    "action_route": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "POST",
        "team/{id}/join"
      ],
      "description": "The HTTP code and path to request in order to perform this action."
    }
  },
  "description": "An action that can be performed on a notification"
}
array NotificationsGetMultipleResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Notification"
  }
}
array NotificationsGetUserNotificationsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Notification"
  }
}
object PatchProjectsBody
{
  "type": "object",
  "properties": {
    "wiki_url": {
      "type": "string",
      "example": "https://github.com/my_user/my_project/wiki",
      "nullable": true,
      "description": "An optional link to the projects' wiki page or other relevant information"
    },
    "categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Set all of the categories to the categories specified here"
    },
    "issues_url": {
      "type": "string",
      "example": "https://github.com/my_user/my_project/issues",
      "nullable": true,
      "description": "An optional link to where to submit bugs or issues with the projects"
    },
    "source_url": {
      "type": "string",
      "example": "https://github.com/my_user/my_project",
      "nullable": true,
      "description": "An optional link to the source code of the projects"
    },
    "discord_url": {
      "type": "string",
      "example": "https://discord.gg/AaBbCcDd",
      "nullable": true,
      "description": "An optional invite link to the projects' discord"
    },
    "donation_urls": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ProjectDonationURL"
      },
      "description": "Set all of the donation links to the donation links specified here"
    },
    "add_categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Add all of the categories specified here"
    },
    "add_donation_urls": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ProjectDonationURL"
      },
      "description": "Add all of the donation links specified here"
    },
    "remove_categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Remove all of the categories specified here"
    },
    "remove_donation_urls": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ProjectDonationURL"
      },
      "description": "Remove all of the donation links specified here"
    },
    "additional_categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Set all of the additional categories to the categories specified here"
    },
    "add_additional_categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Add all of the additional categories specified here"
    },
    "remove_additional_categories": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Remove all of the additional categories specified here"
    }
  }
}
object Project
{
  "allOf": [
    {
      "$ref": "#/components/schemas/NonSearchProject"
    },
    {
      "$ref": "#/components/schemas/ServerRenderedProject"
    },
    {
      "type": "object",
      "required": [
        "id",
        "team",
        "published",
        "updated",
        "followers",
        "title",
        "description",
        "categories",
        "client_side",
        "server_side",
        "slug",
        "body",
        "status"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "AABBCCDD",
          "description": "The ID of the project, encoded as a base62 string"
        },
        "team": {
          "type": "string",
          "example": "MMNNOOPP",
          "description": "The ID of the team that has ownership of this project"
        },
        "queued": {
          "type": "string",
          "format": "ISO-8601",
          "nullable": true,
          "description": "The date the project's status was submitted to moderators for review"
        },
        "gallery": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/GalleryImage"
          },
          "description": "A list of images that have been uploaded to the project's gallery"
        },
        "license": {
          "$ref": "#/components/schemas/ProjectLicense"
        },
        "loaders": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "forge",
            "fabric",
            "quilt"
          ],
          "description": "A list of all of the loaders supported by the project"
        },
        "updated": {
          "type": "string",
          "format": "ISO-8601",
          "description": "The date the project was last updated"
        },
        "approved": {
          "type": "string",
          "format": "ISO-8601",
          "nullable": true,
          "description": "The date the project's status was set to an approved status"
        },
        "body_url": {
          "type": "string",
          "default": null,
          "example": null,
          "nullable": true,
          "deprecated": true,
          "description": "The link to the long description of the project. Always null, only kept for legacy compatibility."
        },
        "versions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "IIJJKKLL",
            "QQRRSSTT"
          ],
          "description": "A list of the version IDs of the project (will never be empty unless `draft` status)"
        },
        "followers": {
          "type": "integer",
          "description": "The total number of users following the project"
        },
        "published": {
          "type": "string",
          "format": "ISO-8601",
          "description": "The date the project was published"
        },
        "game_versions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "1.19",
            "1.19.1",
            "1.19.2",
            "1.19.3"
          ],
          "description": "A list of all of the game versions supported by the project"
        },
        "moderator_message": {
          "$ref": "#/components/schemas/ModeratorMessage"
        }
      }
    }
  ]
}
object ProjectDependencyList
{
  "type": "object",
  "properties": {
    "projects": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Project"
      },
      "description": "Projects that the project depends upon"
    },
    "versions": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Version"
      },
      "description": "Versions that the project depends upon"
    }
  }
}
object ProjectDonationURL
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "patreon",
      "description": "The ID of the donation platform"
    },
    "url": {
      "type": "string",
      "example": "https://www.patreon.com/my_user",
      "description": "The URL of the donation platform and user"
    },
    "platform": {
      "type": "string",
      "example": "Patreon",
      "description": "The donation platform this link is to"
    }
  }
}
object ProjectIdentifier
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "AABBCCDD"
    }
  }
}
object ProjectLicense
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "LGPL-3.0-or-later",
      "description": "The SPDX license ID of a project"
    },
    "url": {
      "type": "string",
      "nullable": true,
      "description": "The URL to this license"
    },
    "name": {
      "type": "string",
      "example": "GNU Lesser General Public License v3 or later",
      "description": "The long name of a license"
    }
  },
  "description": "The license of the project"
}
object ProjectResult
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ServerRenderedProject"
    },
    {
      "type": "object",
      "required": [
        "slug",
        "title",
        "description",
        "client_side",
        "server_side",
        "project_id",
        "author",
        "versions",
        "follows",
        "date_created",
        "date_modified",
        "license"
      ],
      "properties": {
        "author": {
          "type": "string",
          "example": "my_user",
          "description": "The username of the project's author"
        },
        "follows": {
          "type": "integer",
          "description": "The total number of users following the project"
        },
        "gallery": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "https://cdn.modrinth.com/data/AABBCCDD/images/009b7d8d6e8bf04968a29421117c59b3efe2351a.png",
            "https://cdn.modrinth.com/data/AABBCCDD/images/c21776867afb6046fdc3c21dbcf5cc50ae27a236.png"
          ],
          "description": "All gallery images attached to the project"
        },
        "license": {
          "type": "string",
          "example": "MIT",
          "description": "The SPDX license ID of a project"
        },
        "versions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "1.8",
            "1.8.9"
          ],
          "description": "A list of the minecraft versions supported by the project"
        },
        "project_id": {
          "type": "string",
          "example": "AABBCCDD",
          "description": "The ID of the project"
        },
        "date_created": {
          "type": "string",
          "format": "ISO-8601",
          "description": "The date the project was added to search"
        },
        "date_modified": {
          "type": "string",
          "format": "ISO-8601",
          "description": "The date the project was last modified"
        },
        "latest_version": {
          "type": "string",
          "example": "1.8.9",
          "description": "The latest version of minecraft that this project supports"
        },
        "featured_gallery": {
          "type": "string",
          "nullable": true,
          "description": "The featured gallery image of the project"
        },
        "display_categories": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "technology",
            "fabric"
          ],
          "description": "A list of the categories that the project has which are not secondary"
        }
      }
    }
  ]
}
string ProjectsChangeProjectIconRequest
{
  "type": "string",
  "format": "binary"
}
string ProjectsChangeProjectIconRequest1
{
  "type": "string",
  "format": "binary"
}
string ProjectsChangeProjectIconRequest2
{
  "type": "string",
  "format": "binary"
}
string ProjectsChangeProjectIconRequest3
{
  "type": "string",
  "format": "binary"
}
string ProjectsChangeProjectIconRequest4
{
  "type": "string",
  "format": "binary"
}
string ProjectsChangeProjectIconRequest5
{
  "type": "string",
  "format": "binary"
}
string ProjectsChangeProjectIconRequest6
{
  "type": "string",
  "format": "binary"
}
string ProjectsChangeProjectIconRequest7
{
  "type": "string",
  "format": "binary"
}

Versions

Version Endpoints Schemas Ingested Status
v2.7.0/15cf3fc 76 91 2026-05-11 current
v2.7.0/15cf3fc 76 91 2026-04-20
v2.7.0/15cf3fc 76 91 2026-04-16