just/mocks_
mockzilla.org →
Catalog /cloud /Modrinth API

Modrinth API

PROVIDER · Modrinth SPEC vv2.7.0/15cf3fc · OpenAPI 3.0.0 MOCK · LIVE
▸ TRY IT
https://api.justmocks.com/modrinth
Open mock →

Simulate the Modrinth API in seconds. This documentation doesn't provide a way to test our API.

[01]

About

overview

Mock the Modrinth API as a turnkey Mockzilla sim with 76 OpenAPI endpoints, realistic JSON payloads, no upstream signup or sandbox keys. This documentation doesn't provide a way to test our API. Methods: 39x GET, 15x POST, 12x PATCH, 10x DELETE. Top resource groups: projects, versions, users, threads. Hit https://api.justmocks.com/modrinth for the Mockzilla API Explorer landing and per-endpoint sample requests.

Endpoints
76 across 9 resource groups
Methods
GET 39 · POST 15 · PATCH 12 · DEL 10 none deprecated
OpenAPI
3.0.0 spec version v2.7.0/15cf3fc
Source spec
131 KB · YAML
[02]

Endpoints

76 operations · 9 resource groups
GET /search
projects
Search projects
GET /project/{id|slug}
projects
Get a project
PATCH /project/{id|slug}
projects
Modify a project
DEL /project/{id|slug}
projects
Delete a project
GET /projects
projects
Get multiple projects
PATCH /projects
projects
Bulk-edit multiple projects
GET /projects_random
projects
Get a list of random projects
POST /project
projects
Create a project
PATCH /project/{id|slug}/icon
projects
Change project's icon
The new icon may be up to 256KiB in size. Mocked via Mockzilla.
DEL /project/{id|slug}/icon
projects
Delete project's icon
GET /project/{id|slug}/check
projects
Check project slug/ID validity
POST /project/{id|slug}/gallery
projects
Add a gallery image
Modrinth allows you to upload files of up to 5MiB to a project's gallery.
PATCH /project/{id|slug}/gallery
projects
Modify a gallery image
DEL /project/{id|slug}/gallery
projects
Delete a gallery image
GET /project/{id|slug}/dependencies
projects
Get all of a project's dependencies
POST /project/{id|slug}/follow
projects
Follow a project
DEL /project/{id|slug}/follow
projects
Unfollow a project
POST /project/{id|slug}/schedule
projects
Schedule a project
GET /project/{id|slug}/version
versions
List project's versions
GET /version/{id}
versions
Get a version
PATCH /version/{id}
versions
Modify a version
DEL /version/{id}
versions
Delete a version
GET /project/{id|slug}/version/{id|number}
versions
Get a version given a version number or ID
Please note that, if the version number provided matches multiple versions, only the oldest matching version will be returned.
POST /version
versions
Create a version
This route creates a version on an existing project. There must be at least one file attached to each new version, unless the new version's status is draft. .mrpack, .jar, .zip, and .litemod files are accepted. The request is a multipart request with at least two form fields: one is data, which includes a JSON body with the version metadata as shown below, and at least one field containing an upload file. You can name the file parts anything you would like, but you must list each of the parts' names in file_parts, and optionally, provide one to use as the primary file in primary_file.
POST /version/{id}/schedule
versions
Schedule a version
GET /versions
versions
Get multiple versions
POST /version/{id}/file
versions
Add files to version
Project files are attached. .mrpack and .jar files are accepted.
GET /version_file/{hash}
version-files
Get version from hash
DEL /version_file/{hash}
version-files
Delete a file from its hash
POST /version_file/{hash}/update
version-files
Latest version of a project from a hash, loader(s), and game version(s)
POST /version_files
version-files
Get versions from hashes
This is the same as /version_file/{hash} except it accepts multiple hashes. Available as a Mockzilla mock endpoint.
POST /version_files/update
version-files
Latest versions of multiple project from hashes, loader(s), and game version(s)
This is the same as /version_file/{hash}/update except it accepts multiple hashes.
GET /user/{id|username}
users
Get a user
PATCH /user/{id|username}
users
Modify a user
GET /user
users
Get user from authorization header
GET /users
users
Get multiple users
PATCH /user/{id|username}/icon
users
Change user's avatar
The new avatar may be up to 2MiB in size.
GET /user/{id|username}/projects
users
Get user's projects
GET /user/{id|username}/follows
users
Get user's followed projects
GET /user/{id|username}/payouts
users
Get user's payout history
POST /user/{id|username}/payouts
users
Withdraw payout balance to PayPal or Venmo
Warning: certain amounts get withheld for fees. Please do not call this API endpoint without first acknowledging the warnings on the corresponding frontend page.
GET /user/{id|username}/notifications
notifications
Get user's notifications
GET /notification/{id}
notifications
Get notification from ID
PATCH /notification/{id}
notifications
Mark notification as read
DEL /notification/{id}
notifications
Delete notification
GET /notifications
notifications
Get multiple notifications
PATCH /notifications
notifications
Mark multiple notifications as read
DEL /notifications
notifications
Delete multiple notifications
POST /report
threads
Report a project, user, or version
Bring a project, user, or version to the attention of the moderators by reporting it.
GET /report
threads
Get your open reports
GET /report/{id}
threads
Get report from ID
PATCH /report/{id}
threads
Modify a report
GET /reports
threads
Get multiple reports
GET /thread/{id}
threads
Get a thread
POST /thread/{id}
threads
Send a text message to a thread
GET /threads
threads
Get multiple threads
DEL /message/{id}
threads
Delete a thread message
GET /project/{id|slug}/members
teams
Get a project's team members
GET /team/{id}/members
teams
Get a team's members
POST /team/{id}/members
teams
Add a user to a team
GET /teams
teams
Get the members of multiple teams
POST /team/{id}/join
teams
Join a team
PATCH /team/{id}/members/{id|username}
teams
Modify a team member's information
DEL /team/{id}/members/{id|username}
teams
Remove a member from a team
PATCH /team/{id}/owner
teams
Transfer team's ownership to another user
GET /tag/category
tags
Get a list of categories
Gets an array of categories, their icons, and applicable project types. Mockzilla mock: no signup, no API key.
GET /tag/loader
tags
Get a list of loaders
Gets an array of loaders, their icons, and supported project types
GET /tag/game_version
tags
Get a list of game versions
Gets an array of game versions and information about them
GET /tag/license
tags
Get a list of licenses
Deprecated - simply use SPDX IDs.
GET /tag/license/{id}
tags
Get the text and title of a license
GET /tag/donation_platform
tags
Get a list of donation platforms
Gets an array of donation platforms and information about them
GET /tag/report_type
tags
Get a list of report types
Gets an array of valid report types. Served by the Mockzilla mock runtime.
GET /tag/project_type
tags
Get a list of project types
Gets an array of valid project types
GET /tag/side_type
tags
Get a list of side types
Gets an array of valid side types
GET /updates/{id|slug}/forge_updates.json
misc
Forge Updates JSON file
If you're a Forge mod developer, your Modrinth mods have an automatically generated updates.json using the Forge Update Checker. The only setup is to insert the URL into the [[mods]] section of your mods.toml file as such: [[mods]] the other stuff here - ID, version, display name, etc. updateJSONURL = "https://api.modrinth.com/updates/{slug|ID}/forge_updates.json" Replace {slug|id} with the slug or ID of your project. Modrinth will handle the rest! When you update your mod, Forge will notify your users that their copy of your mod is out of date. Make sure that the version format you use for your Modrinth releases is the same as the version format you use in your mods.toml. If you use a format such as 1.2.3-forge or 1.2.3+1.19 with your Modrinth releases but your mods.toml only has 1.2.3, the update checker may not function properly.
GET /statistics
misc
Various statistics about this Modrinth instance