### 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" } ```