### Initialize and run the documentation development server
Source: https://docs.modrinth.com/contributing/docs
Use these commands to install project dependencies and start the hot-reloading development environment.
```bash
pnpm install
pnpm run docs:dev
```
--------------------------------
### Install Dependencies and Run Development Server
Source: https://docs.modrinth.com/contributing/knossos
Use these commands to install project dependencies and start the local development server with hot reloading. Ensure pnpm is installed.
```bash
pnpm install
pnpm run web:dev
```
--------------------------------
### Build and Start Production Server
Source: https://docs.modrinth.com/contributing/knossos
Commands to build the project for production and start the server. Replace 'dev' with 'build' for production builds and 'start' to run the built application.
```bash
pnpm run web:build
pnpm run web:start
```
--------------------------------
### Get License by ID (JSON Response Example)
Source: https://docs.modrinth.com/api/operations/licensetext
Example of a successful JSON response when retrieving license details. This includes the license title and its full body text.
```json
{
"title": "GNU Lesser General Public License v3.0 or later",
"body": "Insert the entire text of the LGPL-3.0 here..."
}
```
--------------------------------
### Search Offset Example
Source: https://docs.modrinth.com/api/operations/searchprojects
Example value for the offset parameter.
```integer
20
```
--------------------------------
### List Project Versions - File Type Example
Source: https://docs.modrinth.com/api/operations/getprojectversions
Example of the 'file_type' for a version file.
```text
required-resource-pack
```
--------------------------------
### Notification Link Example
Source: https://docs.modrinth.com/api/operations/getusernotifications
Example of a notification link string.
```text
mod/AABBCCDD/version/IIJJKKLL
```
--------------------------------
### New Status Example
Source: https://docs.modrinth.com/api/operations/sendthreadmessage
Example value for the new_status field.
```text
approved
```
--------------------------------
### Search Query Example
Source: https://docs.modrinth.com/api/operations/searchprojects
Example of a search query string.
```text
gravestones
```
--------------------------------
### Search Index Example
Source: https://docs.modrinth.com/api/operations/searchprojects
Example value for the index parameter.
```text
downloads
```
--------------------------------
### Action Route Example
Source: https://docs.modrinth.com/api/operations/getusernotifications
Example of the HTTP method and path for a notification action.
```json
[
"POST",
"team/{id}/join"
]
```
--------------------------------
### Notification Title Example
Source: https://docs.modrinth.com/api/operations/getusernotifications
Example of a notification title string.
```text
**My Project** has been updated!
```
--------------------------------
### Version ID Path Parameter Example
Source: https://docs.modrinth.com/api/operations/addfilestoversion
Example value for the required version ID path parameter.
```json
[
"IIJJKKLL"
]
```
--------------------------------
### Install SQLx CLI
Source: https://docs.modrinth.com/contributing/labrinth
Installs the SQLx command-line interface with support for multiple database drivers and TLS.
```bash
cargo install sqlx-cli --no-default-features --features mysql,sqlite,postgres,rustls,completions
```
--------------------------------
### Thread ID Example
Source: https://docs.modrinth.com/api/operations/sendthreadmessage
Example value for the thread ID path parameter.
```json
[
"QQRRSSTT"
]
```
--------------------------------
### Replying To ID Example
Source: https://docs.modrinth.com/api/operations/sendthreadmessage
Example value for the replying_to field.
```text
SSTTUUVV
```
--------------------------------
### License ID Path Parameter Example
Source: https://docs.modrinth.com/api/operations/licensetext
Example of a valid license ID that can be used as a path parameter.
```json
[
"LGPL-3.0-or-later"
]
```
--------------------------------
### User ID or Username Example
Source: https://docs.modrinth.com/api/operations/deleteusericon
Provides examples of valid inputs for the user ID or username path parameter.
```json
[
"EEFFGGHH",
"my_user"
]
```
--------------------------------
### Notification Type Example
Source: https://docs.modrinth.com/api/operations/getusernotifications
Example of a notification type string.
```text
project_update
```
--------------------------------
### Query Parameter Example for Notification IDs
Source: https://docs.modrinth.com/api/operations/deletenotifications
Example format for the required ids query parameter.
```json
["AABBCCDD", "EEFFGGHH"]
```
--------------------------------
### Setup Database Schema
Source: https://docs.modrinth.com/contributing/labrinth
Initializes the database and applies the schema using the SQLx CLI.
```bash
cargo sqlx database setup
```
--------------------------------
### Example Notification Response (200 OK)
Source: https://docs.modrinth.com/api/operations/getnotification
This is an example of a successful response when retrieving a notification. It includes details like ID, user ID, type, title, text, link, read status, creation time, and available actions.
```json
UUVVWWXX
```
```json
EEFFGGHH
```
```json
project_update
```
```json
**My Project** has been updated!
```
```json
The project, My Project, has released a new version: 1.0.0
```
```json
mod/AABBCCDD/version/IIJJKKLL
```
```json
[
"POST",
"team/{id}/join"
]
```
--------------------------------
### Team ID Path Parameter Example
Source: https://docs.modrinth.com/api/operations/addteammember
Example value for the team ID path parameter.
```json
[
"MMNNOOPP"
]
```
--------------------------------
### Action Title Example
Source: https://docs.modrinth.com/api/operations/getusernotifications
Example of a friendly name for a notification action.
```text
Accept
```
--------------------------------
### Message Body Example
Source: https://docs.modrinth.com/api/operations/sendthreadmessage
Example content for the message body field.
```text
This is the text of the message.
```
--------------------------------
### Notification ID Example
Source: https://docs.modrinth.com/api/operations/deletenotification
Provides an example of a notification ID format.
```json
[
"NNOOPPQQ"
]
```
--------------------------------
### Notification Text Example
Source: https://docs.modrinth.com/api/operations/getusernotifications
Example of a notification body text string.
```text
The project, My Project, has released a new version: 1.0.0
```
--------------------------------
### Old Status Example
Source: https://docs.modrinth.com/api/operations/sendthreadmessage
Example value for the old_status field.
```text
processing
```
--------------------------------
### Example Loader Icon (SVG)
Source: https://docs.modrinth.com/api/operations/loaderlist
Provides an example of the SVG icon format for a loader. This is used to visually represent the loader.
```html
```
--------------------------------
### Message Type Example
Source: https://docs.modrinth.com/api/operations/sendthreadmessage
Example value for the message type field.
```text
status_change
```
--------------------------------
### User ID Request Body Example
Source: https://docs.modrinth.com/api/operations/addteammember
Example value for the user_id field in the request body.
```text
EEFFGGHH
```
--------------------------------
### Authentication Error Description Example
Source: https://docs.modrinth.com/api/operations/addfilestoversion
Example response body for the error description field when authentication fails.
```text
Authentication Error: Invalid Authentication Credentials
```
--------------------------------
### GET /project
Source: https://docs.modrinth.com/api/operations/getprojects
Retrieves the details of a project from Modrinth.
```APIDOC
## GET /project
### Description
Retrieves the full details of a project, including its metadata, status, and associated URLs.
### Method
GET
### Response
#### Success Response (200)
- **slug** (string) - The slug of a project, used for vanity URLs.
- **title** (string) - The title or name of the project.
- **description** (string) - A short description of the project.
- **categories** (Array) - A list of the categories that the project has.
- **client_side** (string) - The client side support of the project (required, optional, unsupported, unknown).
- **server_side** (string) - The server side support of the project (required, optional, unsupported, unknown).
- **body** (string) - A long form description of the project.
- **status** (string) - The status of the project.
- **requested_status** (string) - The requested status when submitting for review.
- **additional_categories** (Array) - A list of categories which are searchable but non-primary.
- **issues_url** (string) - Optional link to bug tracker.
- **source_url** (string) - Optional link to source code.
- **wiki_url** (string) - Optional link to project wiki.
- **discord_url** (string) - Optional invite link to discord.
- **donation_urls** (Array) - A list of donation links.
- **project_type** (string) - The project type (mod, modpack, resourcepack, shader).
- **downloads** (integer) - The total number of downloads.
- **icon_url** (string) - The URL of the project’s icon.
- **color** (integer) - The RGB color of the project.
- **thread_id** (string) - The ID of the moderation thread.
- **monetization_status** (string) - Monetization status.
- **id** (string) - The ID of the project.
- **team** (string) - The ID of the team that has ownership.
- **body_url** (string) - Legacy link to long description.
- **moderator_message** (object) - Message from a moderator.
- **published** (string) - Date the project was published (ISO-8601).
- **updated** (string) - Date the project was last updated (ISO-8601).
- **approved** (string) - Date the project’s status was set to approved.
- **queued** (string) - Date the project was submitted for review.
- **followers** (integer) - Total number of users following the project.
- **license** (object) - The license of the project.
```
--------------------------------
### Example Hash Algorithm
Source: https://docs.modrinth.com/api/operations/deletefilefromhash
The algorithm used for hashing the file. Defaults to sha1.
```text
sha512
```
--------------------------------
### Example File Hash
Source: https://docs.modrinth.com/api/operations/deletefilefromhash
The hash of the file, considering its byte content, and encoded in hexadecimal.
```text
619e250c133106bacc3e3b560839bd4b324dfda8
```
--------------------------------
### Payout Wallet Field
Source: https://docs.modrinth.com/api/operations/modifyuser
Example value for the selected payout wallet.
```text
paypal
```
--------------------------------
### GET /projects
Source: https://docs.modrinth.com/api/operations/getdependencies
Retrieves detailed information about a specific project on Modrinth.
```APIDOC
## GET /projects
### Description
Retrieves the full details of a project, including its metadata, team ownership, license, and status.
### Method
GET
### Endpoint
/projects
### Response
#### Success Response (200)
- **slug** (string) - The slug of a project.
- **title** (string) - The title or name of the project.
- **description** (string) - A short description of the project.
- **categories** (Array) - A list of the categories that the project has.
- **client_side** (string) - The client side support of the project (required, optional, unsupported, unknown).
- **server_side** (string) - The server side support of the project (required, optional, unsupported, unknown).
- **body** (string) - A long form description of the project.
- **status** (string) - The status of the project.
- **project_type** (string) - The project type (mod, modpack, resourcepack, shader).
- **downloads** (integer) - The total number of downloads.
- **id** (string) - The ID of the project, encoded as a base62 string.
- **team** (string) - The ID of the team that has ownership of this project.
- **published** (string) - The date the project was published (ISO-8601).
- **updated** (string) - The date the project was last updated (ISO-8601).
- **followers** (integer) - The total number of users following the project.
- **license** (object) - The license of the project.
#### Response Example
{
"slug": "my_project",
"title": "My Project",
"description": "A short description",
"project_type": "mod",
"downloads": 1000,
"id": "AABBCCDD",
"team": "MMNNOOPP",
"published": "2023-01-01T00:00:00Z",
"updated": "2023-01-02T00:00:00Z",
"followers": 50
}
```
--------------------------------
### Example Response ID
Source: https://docs.modrinth.com/api/operations/checkprojectvalidity
Represents the structure of the project ID returned in a successful response.
```text
AABBCCDD
```
--------------------------------
### GET /websites/modrinth
Source: https://docs.modrinth.com/api/operations/getfollowedprojects
Retrieves various details about a Modrinth project.
```APIDOC
## GET /websites/modrinth
### Description
Retrieves various details about a Modrinth project, including versions, game versions, loaders, and gallery information.
### Method
GET
### Endpoint
/websites/modrinth
### Parameters
#### Query Parameters
- **versions** (Array) - Optional - A list of the version IDs of the project.
- **game_versions** (Array) - Optional - A list of all of the game versions supported by the project.
- **loaders** (Array) - Optional - A list of all of the loaders supported by the project.
- **gallery** (Array) - Optional - A list of images that have been uploaded to the project’s gallery.
- **url** (string) - Required - The URL of the gallery image.
- **featured** (boolean) - Required - Whether the image is featured in the gallery.
- **title** (string) - Optional, nullable - The title of the gallery image.
- **description** (string) - Optional, nullable - The description of the gallery image.
- **created** (string) - Optional - The date and time the gallery image was created (ISO-8601 format).
- **ordering** (integer) - Optional - The order of the gallery image.
### Response
#### Success Response (200)
- **versions** (Array) - A list of the version IDs of the project.
- **game_versions** (Array) - A list of all of the game versions supported by the project.
- **loaders** (Array) - A list of all of the loaders supported by the project.
- **gallery** (Array) - A list of images that have been uploaded to the project’s gallery.
- **url** (string) - The URL of the gallery image.
- **featured** (boolean) - Whether the image is featured in the gallery.
- **title** (string) - The title of the gallery image.
- **description** (string) - The description of the gallery image.
- **created** (string) - The date and time the gallery image was created (ISO-8601 format).
- **ordering** (integer) - The order of the gallery image.
#### Error Response (401)
- **error** (string) - Required - The name of the error (e.g., "unauthorized").
- **description** (string) - Required - The contents of the error (e.g., "Authentication Error: Invalid Authentication Credentials").
#### Error Response (404)
- The requested item(s) were not found or no authorization to access the requested item(s).
```
--------------------------------
### Get a version
Source: https://docs.modrinth.com/api/operations/getversion
Retrieves detailed information about a specific version of a project on Modrinth.
```APIDOC
## GET /version/{id}
### Description
Retrieves detailed information about a specific version of a project on Modrinth.
### Method
GET
### Endpoint
/version/{id}
### Parameters
#### Path Parameters
- **id** (string) - Required - The ID of the version.
### Responses
#### Success Response (200)
- **name** (string) - The name of this version.
- **version_number** (string) - The version number. Ideally will follow semantic versioning.
- **changelog** (string) - The changelog for this version. Can be null.
- **dependencies** (Array) - A list of specific versions of projects that this version depends on.
- **version_id** (string) - The ID of the version that this version depends on. Can be null.
- **project_id** (string) - The ID of the project that this version depends on. Can be null.
- **file_name** (string) - The file name of the dependency. Can be null.
- **dependency_type** (string) - Required - The type of dependency that this version has. Allowed values: required, optional, incompatible, embedded.
- **game_versions** (Array) - A list of versions of Minecraft that this version supports.
- **version_type** (string) - The release channel for this version. Allowed values: release, beta, alpha.
- **loaders** (Array) - The mod loaders that this version supports. In case of resource packs, use “minecraft”.
- **featured** (boolean) - Whether the version is featured or not.
- **status** (string) - Allowed values: listed, archived, draft, unlisted, scheduled, unknown.
- **requested_status** (string) - Allowed values: listed, archived, draft, unlisted. Can be null.
- **id** (string) - Required - The ID of the version, encoded as a base62 string.
- **project_id** (string) - Required - The ID of the project this version is for.
- **author_id** (string) - Required - The ID of the author who published this version.
- **date_published** (string) - Required - ISO-8601 format.
- **downloads** (integer) - Required - The number of times this version has been downloaded.
- **changelog_url** (string) - A link to the changelog for this version. Always null, only kept for legacy compatibility. Can be null.
- **files** (Array) - Required - A list of files available for download for this version.
- **hashes** (object) - Required - A map of hashes of the file.
- **sha512** (string)
- **sha1** (string)
- **url** (string) - Required - A direct link to the file.
- **filename** (string) - Required - The name of the file.
- **primary** (boolean) - Required - Whether this file is the primary one for its version.
- **size** (integer) - Required - The size of the file in bytes.
- **file_type** (string) - Allowed values: required-resource-pack, optional-resource-pack, sources-jar, dev-jar, javadoc-jar, unknown, signature. Can be null.
#### Response Example (200)
```json
{
"id": "IIJJKKLL",
"project_id": "AABBCCDD",
"author_id": "EEFFGGHH",
"name": "Version 1.0.0",
"version_number": "1.0.0",
"changelog": "List of changes in this version: ...",
"dependencies": [
{
"version_id": "IIJJKKLL",
"project_id": "QQRRSSTT",
"file_name": "sodium-fabric-mc1.19-0.4.2+build.16.jar",
"dependency_type": "required"
}
],
"game_versions": [
"1.16.5",
"1.17.1"
],
"version_type": "release",
"loaders": [
"fabric",
"forge",
"minecraft"
],
"featured": true,
"status": "listed",
"requested_status": null,
"date_published": "2023-01-01T12:00:00Z",
"downloads": 10000,
"changelog_url": null,
"files": [
{
"hashes": {
"sha512": "93ecf5fe02914fb53d94aa3d28c1fb562e23985f8e4d48b9038422798618761fe208a31ca9b723667a4e05de0d91a3f86bcd8d018f6a686c39550e21b198d96f",
"sha1": "c84dd4b3580c02b79958a0590afd5783d80ef504"
},
"url": "https://cdn.modrinth.com/data/AABBCCDD/versions/1.0.0/my_file.jar",
"filename": "my_file.jar",
"primary": true,
"size": 1097270,
"file_type": "unknown"
}
]
}
```
#### Error Response (404)
Not Found. The requested item(s) were not found or no authorization to access the requested item(s).
```
--------------------------------
### GET /project/{id|slug}/dependencies
Source: https://docs.modrinth.com/api/operations/getdependencies
Retrieves a list of dependencies for a given Modrinth project.
```APIDOC
## GET /project/{id|slug}/dependencies
### Description
Get all of a project's dependencies.
### Method
GET
### Endpoint
/project/{id|slug}/dependencies
### Parameters
#### Path Parameters
- **id|slug** (string) - Required - The ID or slug of the project
### Responses
#### Success Response (200)
- **dependencies** (array) - A list of project dependencies.
```
--------------------------------
### Get Game Versions
Source: https://docs.modrinth.com/api/operations/versionlist
Retrieves a list of all available game versions and their associated details.
```APIDOC
## GET /tag/game_version
### Description
Gets an array of game versions and information about them.
### Method
GET
### Endpoint
/tag/game_version
### Responses
#### Success Response (200)
- **version** (string) - Required - The name/number of the game version
- **version_type** (string) - Required - The type of the game version (Allowed values: release, snapshot, alpha, beta)
- **date** (string) - Required - The date of the game version release (ISO-8601 format)
- **major** (boolean) - Required - Whether or not this is a major version, used for Featured Versions
#### Response Example
```json
[
{
"version": "1.18.1",
"version_type": "release",
"date": "2021-11-09T18:00:00Z",
"major": true
}
]
```
```
--------------------------------
### Example Supported Project Types
Source: https://docs.modrinth.com/api/operations/loaderlist
Illustrates the array of strings format for supported project types. This indicates which project types a loader is compatible with.
```json
[
"mod",
"modpack"
]
```
--------------------------------
### Example Project ID or Slug Input
Source: https://docs.modrinth.com/api/operations/checkprojectvalidity
Provides valid formats for the project identifier path parameter.
```json
[
"AABBCCDD",
"my_project"
]
```
--------------------------------
### Example Loader Name
Source: https://docs.modrinth.com/api/operations/loaderlist
Shows the expected string format for a loader's name. This is a required field.
```text
fabric
```
--------------------------------
### POST /project
Source: https://docs.modrinth.com/api/operations/createproject
Endpoint to create a new project on Modrinth. Requires TokenAuth with PROJECT_CREATE permission.
```APIDOC
## POST /project
### Description
Creates a new project on the Modrinth platform.
### Method
POST
### Endpoint
/project
### Authorizations
- **TokenAuth**: Requires the PROJECT_CREATE permission.
```
--------------------------------
### Facet Filter Examples
Source: https://docs.modrinth.com/api/operations/searchprojects
Common examples of facet filtering operations.
```text
categories = adventure
versions != 1.20.1
downloads <= 100
```
--------------------------------
### Complex Facet Search Example
Source: https://docs.modrinth.com/api/operations/searchprojects
Example of combining multiple facets using AND/OR logic.
```json
[["categories:forge"],["versions:1.17.1"],["project_type:mod"],["license:mit"]]
```
--------------------------------
### User Agent Examples
Source: https://docs.modrinth.com/api
Provide a uniquely identifying User-Agent header. Include contact information for better communication.
```text
User-Agent: okhttp/4.9.3
```
```text
User-Agent: project_name
```
```text
User-Agent: github_username/project_name/1.56.0
```
```text
User-Agent: github_username/project_name/1.56.0 (launcher.com)
```
```text
User-Agent: github_username/project_name/1.56.0 (contact@launcher.com)
```
--------------------------------
### Unauthorized Error Name Example
Source: https://docs.modrinth.com/api/operations/addfilestoversion
Example response body for the error name field when authentication fails.
```text
unauthorized
```
--------------------------------
### POST /version
Source: https://docs.modrinth.com/api/operations/createversion
Creates a new version for an existing project. Requires a multipart/form-data request with a 'data' JSON field and file parts.
```APIDOC
## POST /version
### Description
Creates a version on an existing project. Requires at least one file attached unless the status is 'draft'.
### Method
POST
### Endpoint
/version
### Request Body
- **data** (object) - Required - JSON body containing version metadata
- **name** (string) - The name of this version
- **version_number** (string) - The version number (ideally semantic versioning)
- **changelog** (string) - The changelog for this version
- **dependencies** (Array) - List of project dependencies
- **version_id** (string) - ID of the dependency version
- **project_id** (string) - ID of the dependency project
- **file_name** (string) - File name of the dependency
- **dependency_type** (string) - Required - Type: required, optional, incompatible, embedded
- **game_versions** (Array) - List of supported Minecraft versions
- **version_type** (string) - Release channel: release, beta, alpha
- **featured** (boolean) - Whether the version is featured
- **status** (string) - Status: listed, archived, draft, unlisted, scheduled, unknown
- **requested_status** (string) - Requested status: listed, archived, draft, unlisted
- **project_id** (string) - Required - ID of the project
- **file_parts** (Array) - Required - Array of multipart field names for files
- **primary_file** (string) - Multipart field name of the primary file
### Request Example
{
"data": {
"name": "Version 1.0.0",
"version_number": "1.0.0",
"project_id": "AABBCCDD",
"file_parts": ["file1"],
"dependency_type": "required"
}
}
```
--------------------------------
### Configure mods.toml for NeoForge Updates
Source: https://docs.modrinth.com/api/operations/forgeupdates
To include NeoForge versions, append `?neoforge=only` for NeoForge-only versions or `?neoforge=include` for both Forge and NeoForge versions to the `updateJSONURL` in your `mods.toml`.
```toml
[[mods]]
# the other stuff here - ID, version, display name, etc.
updateJSONURL = "https://api.modrinth.com/updates/{slug|ID}/forge_updates.json?neoforge=only"
```
--------------------------------
### Seed Database with Fixtures
Source: https://docs.modrinth.com/contributing/labrinth
Loads pre-existing seed data into the PostgreSQL database using the psql tool.
```bash
source .env
psql "$DATABASE_URL" < fixtures/labrinth-seed-data-202508052143.sql
```
--------------------------------
### Get Report Types
Source: https://docs.modrinth.com/api/operations/reporttypelist
Retrieves an array of valid report types that can be used for content reporting. This is a GET request to the /tag/report_type endpoint.
```json
[
"spam",
"copyright",
"inappropriate",
"malicious",
"name-squatting",
"other"
]
```
--------------------------------
### POST /websites/modrinth
Source: https://docs.modrinth.com/api/operations/createproject
Creates a new project on the Modrinth platform using multipart/form-data.
```APIDOC
## POST /websites/modrinth
### Description
Creates a new project on the Modrinth platform. This endpoint accepts a multipart/form-data request containing project metadata and optional initial version information.
### Method
POST
### Endpoint
/websites/modrinth
### Parameters
#### Request Body
- **data** (object) - Required - The project data object containing:
- **slug** (string) - Required - The slug of a project, used for vanity URLs.
- **title** (string) - Required - The title or name of the project.
- **description** (string) - Required - A short description of the project.
- **categories** (Array) - Required - A list of the categories that the project has.
- **client_side** (string) - Required - The client side support (required, optional, unsupported, unknown).
- **server_side** (string) - Required - The server side support (required, optional, unsupported, unknown).
- **body** (string) - Required - A long form description of the project.
- **status** (string) - Required - The status of the project.
- **project_type** (string) - Required - The type of project (mod, modpack).
- **license_id** (string) - Required - The SPDX license ID of a project.
### Request Example
{
"data": {
"slug": "my_project",
"title": "My Project",
"description": "A short description",
"categories": ["technology", "adventure", "fabric"],
"client_side": "required",
"server_side": "optional",
"body": "A long body describing my project in detail",
"status": "approved",
"project_type": "modpack",
"license_id": "LGPL-3.0-or-later"
}
}
### Response
#### Success Response (200)
- **status** (string) - The status of the created project.
```
--------------------------------
### Get Game Versions
Source: https://docs.modrinth.com/api/operations/versionlist
Retrieves an array of game versions with details like version number, type, release date, and major status. Use this endpoint to get a comprehensive list of supported game versions.
```json
1.18.1
```
```json
release
```
```json
true
```
--------------------------------
### POST /project/{id|slug}/follow
Source: https://docs.modrinth.com/api/operations/followproject
Allows users to follow a project using its ID or slug. Requires USER_WRITE authorization.
```APIDOC
## POST /project/{id|slug}/follow
### Description
Follow a project using its ID or slug.
### Method
POST
### Endpoint
/project/{id|slug}/follow
### Parameters
#### Path Parameters
- **id|slug** (string) - Required - The ID or slug of the project
### Authorizations
- **TokenAuth**
- USER_WRITE
### Responses
#### Success Response (204)
Expected response to a valid request.
#### Error Response (400)
Request was invalid, see given error.
- **error** (string) - Required - The name of the error
- **description** (string) - Required - The contents of the error
#### Error Response (401)
Incorrect token scopes or no authorization to access the requested item(s).
- **error** (string) - Required - The name of the error
- **description** (string) - Required - The contents of the error
```
--------------------------------
### Payout Address Field
Source: https://docs.modrinth.com/api/operations/modifyuser
Example value for the payout address.
```text
support@modrinth.com
```
--------------------------------
### Payout Balance Field
Source: https://docs.modrinth.com/api/operations/modifyuser
Example value for the payout balance.
```number
10.11223344556678
```
--------------------------------
### POST /websites/modrinth
Source: https://docs.modrinth.com/api/operations/createproject
Creates a new project on Modrinth. The `draft` parameter is deprecated and should always be set to true.
```APIDOC
## POST /websites/modrinth
### Description
Creates a new project on Modrinth. The `draft` parameter is deprecated and should always be set to true.
### Method
POST
### Endpoint
/websites/modrinth
### Parameters
#### Request Body
- **draft** (boolean) - Deprecated - please always mark this as true.
- **gallery_items** (Array) - Gallery images to be uploaded with the created project. Deprecated - please upload gallery images after initial upload.
- **item** (string) - The name of the multipart item where the gallery media is located
- **featured** (boolean) - Whether the image is featured in the gallery
- **title** (string, nullable) - The title of the gallery image
- **description** (string, nullable) - The description of the gallery image
- **ordering** (integer) - The order of the gallery image. Gallery images are sorted by this field and then alphabetically by title.
- **icon** (string format: binary) - Project icon file. Allowed values: *.png, *.jpg, *.jpeg, *.bmp, *.gif, *.webp, *.svg, *.svgz, *.rgb
### Request Example
{
"draft": true,
"gallery_items": [
{
"item": "screenshot1.png",
"featured": true,
"title": "My awesome screenshot!",
"description": "This awesome screenshot shows all of the blocks in my mod!",
"ordering": 0
}
],
"icon": "path/to/icon.png"
}
### Response
#### Success Response (200)
- **project_id** (string) - The ID of the newly created project.
#### Response Example
{
"project_id": "a1b2c3d4d5e6f7g8h9i0"
}
```
--------------------------------
### Bio Request Body Field
Source: https://docs.modrinth.com/api/operations/modifyuser
Example value for the user biography.
```text
My short biography
```
--------------------------------
### Username Request Body Field
Source: https://docs.modrinth.com/api/operations/modifyuser
Example value for the username field.
```text
my_user
```
--------------------------------
### Version Details Object
Source: https://docs.modrinth.com/api/operations/createversion
Contains specific details for a version, including its ID, project ID, author ID, publication date, download count, changelog URL, and a list of associated files.
```json
{
"id": "IIJJKKLL",
"project_id": "AABBCCDD",
"author_id": "EEFFGGHH",
"date_published": "ISO-8601",
"downloads": 1097270,
"changelog_url": null,
"files": [
{
"hashes": {
"sha512": "93ecf5fe02914fb53d94aa3d28c1fb562e23985f8e4d48b9038422798618761fe208a31ca9b723667a4e05de0d91a3f86bcd8d018f6a686c39550e21b198d96f",
"sha1": "c84dd4b3580c02b79958a0590afd5783d80ef504"
},
"url": "https://cdn.modrinth.com/data/AABBCCDD/versions/1.0.0/my_file.jar",
"filename": "my_file.jar",
"primary": true,
"size": 1097270,
"file_type": "unknown"
}
]
}
```
--------------------------------
### GET /projects_random
Source: https://docs.modrinth.com/api/operations/randomprojects
Retrieves a list of random projects from the Modrinth platform.
```APIDOC
## GET /projects_random
### Description
Retrieves a list of random projects from the Modrinth platform.
### Method
GET
### Endpoint
/projects_random
### Parameters
#### Query Parameters
- **count** (integer) - Required - The number of random projects to return (must be <= 100).
```
--------------------------------
### GET /websites/modrinth
Source: https://docs.modrinth.com/api/operations/getproject
Retrieves detailed information about a specific project on Modrinth.
```APIDOC
## GET /websites/modrinth
### Description
Retrieves detailed information about a specific project on Modrinth, including its slug, title, description, categories, support status, body, status, and associated URLs.
### Method
GET
### Endpoint
/websites/modrinth
### Query Parameters
- **slug** (string) - Required - The slug of a project, used for vanity URLs. Regex: `^["\w!@$()`.+,"-']{3,64}$`
### Response
#### Success Response (200)
- **slug** (string) - The slug of a project, used for vanity URLs.
- **title** (string) - The title or name of the project.
- **description** (string) - A short description of the project.
- **categories** (Array) - A list of the categories that the project has.
- **client_side** (string) - The client side support of the project. Allowed values: `required`, `optional`, `unsupported`, `unknown`.
- **server_side** (string) - The server side support of the project. Allowed values: `required`, `optional`, `unsupported`, `unknown`.
- **body** (string) - A long form description of the project.
- **status** (string) - The status of the project. Allowed values: `approved`, `archived`, `rejected`, `draft`, `unlisted`, `processing`, `withheld`, `scheduled`, `private`, `unknown`.
- **requested_status** (string) - The requested status when submitting for review or scheduling the project for release. Allowed values: `approved`, `archived`, `unlisted`, `private`, `draft`.
- **additional_categories** (Array) - A list of categories which are searchable but non-primary.
- **issues_url** (string) - An optional link to where to submit bugs or issues with the project.
- **source_url** (string) - An optional link to the source code of the project.
- **wiki_url** (string) - An optional link to the project’s wiki page or other relevant information.
- **discord_url** (string) - An optional invite link to the project’s discord.
- **donation_urls** (Array) - A list of donation links for the project.
- **id** (string) - The ID of the donation platform.
- **platform** (string) - The donation platform this link is to.
- **url** (string) - The URL of the donation platform and user.
- **project_type** (string) - The project type of the project. Allowed values: `mod`, `modpack`, `resourcepack`, `shader`.
- **downloads** (integer) - The total number of downloads of the project.
- **icon_url** (string) - The URL of the project’s icon.
- **color** (integer) - The RGB color of the project, automatically generated from the project icon.
- **thread_id** (string) - The ID of the moderation thread associated with this project.
- **monetization_status** (string) - Allowed values: `monetized`, `demonetized`, `force-demonetized`.
- **id** (string) - The ID of the project, encoded as a base62 string.
- **team** (string) - The ID of the team that has ownership of this project.
- **body_url** (string) - The link to the long description of the project. Always null, only kept for legacy compatibility.
- **moderator_message** (object) - A message that a moderator sent regarding the project.
- **message** (string) - The message that a moderator has left for the project.
- **body** (string) - The longer body of the message that a moderator has left for the project.
- **published** (string) - The date the project was published (ISO-8601 format).
- **updated** (string) - The date the project was last updated (ISO-8601 format).
- **approved** (string) - The date the project’s status was set to an approved status (ISO-8601 format).
- **queued** (string) - The date the project’s status was submitted to moderators for review (ISO-8601 format).
- **followers** (integer) - The total number of users following the project.
- **license** (object) - The license of the project.
- **id** (string) - The SPDX license ID of a project.
- **name** (string) - The long name of a license.
- **url** (string) - The URL to this license.
### Request Example
```json
{
"slug": "my_project"
}
```
### Response Example
```json
{
"slug": "my_project",
"title": "My Project",
"description": "A short description",
"categories": [
"technology",
"adventure",
"fabric"
],
"client_side": "required",
"server_side": "optional",
"body": "A long body describing my project in detail",
"status": "approved",
"requested_status": null,
"additional_categories": [
"technology",
"adventure",
"fabric"
],
"issues_url": "https://github.com/my_user/my_project/issues",
"source_url": "https://github.com/my_user/my_project",
"wiki_url": "https://github.com/my_user/my_project/wiki",
"discord_url": "https://discord.gg/AaBbCcDd",
"donation_urls": [
{
"id": "patreon",
"platform": "Patreon",
"url": "https://www.patreon.com/my_user"
}
],
"project_type": "mod",
"downloads": 10000,
"icon_url": "https://cdn.modrinth.com/data/AABBCCDD/b46513nd83hb4792a9a0e1fn28fgi6090c1842639.png",
"color": 8703084,
"thread_id": "TTUUVVWW",
"monetization_status": "monetized",
"id": "AABBCCDD",
"team": "MMNNOOPP",
"body_url": null,
"moderator_message": {
"message": "Project approved.",
"body": null
},
"published": "2023-01-01T10:00:00Z",
"updated": "2023-01-02T11:00:00Z",
"approved": "2023-01-01T10:05:00Z",
"queued": "2023-01-01T09:55:00Z",
"followers": 500,
"license": {
"id": "LGPL-3.0-or-later",
"name": "GNU Lesser General Public License v3 or later",
"url": null
}
}
```
```
--------------------------------
### GET /report/{id}
Source: https://docs.modrinth.com/api/operations/getreport
Retrieves the details of a specific report by its ID.
```APIDOC
## GET /report/{id}
### Description
Retrieves the details of a specific report by its unique ID.
### Method
GET
### Endpoint
/report/{id}
### Parameters
#### Path Parameters
- **id** (string) - Required - The ID of the report
### Response
#### Success Response (200)
- **report_type** (string) - The type of the report being sent
- **item_id** (string) - The ID of the item (project, version, or user) being reported
- **item_type** (string) - The type of the item being reported (project, user, version)
- **body** (string) - The extended explanation of the report
- **id** (string) - The ID of the report
- **reporter** (string) - The ID of the user who reported the item
- **created** (string) - The time at which the report was created (ISO-8601)
- **closed** (boolean) - Whether the report is resolved
- **thread_id** (string) - The ID of the moderation thread associated with this report
#### Response Example
{
"report_type": "copyright",
"item_id": "EEFFGGHH",
"item_type": "project",
"body": "This is a reupload of my mod, AABBCCDD!",
"id": "VVWWXXYY",
"reporter": "UUVVWWXX",
"created": "2023-01-01T00:00:00Z",
"closed": false,
"thread_id": "TTUUVVWW"
}
```