# Modrinth Labrinth API

> Modrinth Labrinth API on Apizie: 75 endpoints (Search projects, Get a project, Modify a project, Delete a project, …) returned as clean JSON through one API key. Send your own provider key in the x-upstream-key header. Call it over REST at https://apizie.tech/v1/ecommerce:modrinth/{endpoint} or from Claude, ChatGPT and Cursor through the Apizie MCP server. Free plan: 1,000 requests a month.

- Project key: `ecommerce:modrinth`
- Category: E-commerce
- Status: byok
- Source: https://modrinth.com
- Page: https://apizie.tech/api/ecommerce/modrinth
- OpenAPI: https://apizie.tech/api/ecommerce/modrinth/openapi.json

This documentation doesn't provide a way to test our API. In order to facilitate testing, we recommend the following tools: - [cURL](https://curl.se/) (recommended, command-line) - [ReqBIN](https://reqbin.com/)…

## Endpoints

### Search projects
`GET https://apizie.tech/v1/ecommerce:modrinth/projects-find` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | no | The query to search for |
| facets | string | no | Facets are an essential concept for understanding how to filter out results. These are the most commonly used facet types: -… |
| index | string | no | The sorting method used for sorting search results |
| offset | integer | no | The offset into the search. Skips this number of results |
| limit | integer | no | The number of results returned by the search |

### Get a project
`GET https://apizie.tech/v1/ecommerce:modrinth/projects-get-project-by-id-or-slug` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |

### Modify a project
`POST https://apizie.tech/v1/ecommerce:modrinth/projects-update-project-by-id-or-slug` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |
| body | object | no | JSON request body |

### Delete a project
`POST https://apizie.tech/v1/ecommerce:modrinth/projects-remove-by-slug` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |

### Get multiple projects
`GET https://apizie.tech/v1/ecommerce:modrinth/projects-list-projects` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | string | yes | The IDs and/or slugs of the projects |

### Bulk-edit multiple projects
`POST https://apizie.tech/v1/ecommerce:modrinth/projects-bulk-edit` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | string | yes | The IDs and/or slugs of the projects |
| body | object | no | JSON request body |

### Get a list of random projects
`GET https://apizie.tech/v1/ecommerce:modrinth/projects-get-random-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| count | integer | yes | The number of random projects to return |

### Create a project
`POST https://apizie.tech/v1/ecommerce:modrinth/projects-create-new-project` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | Form fields as a JSON object |

### Change project's icon
`POST https://apizie.tech/v1/ecommerce:modrinth/projects-change-project-icon` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |
| ext | string | yes | Image extension |

### Delete project's icon
`POST https://apizie.tech/v1/ecommerce:modrinth/projects-delete-project-icon` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |

### Check project slug/ID validity
`GET https://apizie.tech/v1/ecommerce:modrinth/projects-check-validity` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |

### Add a gallery image
`POST https://apizie.tech/v1/ecommerce:modrinth/projects-add-gallery-image` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |
| ext | string | yes | Image extension |
| featured | boolean | yes | Whether an image is featured |
| title | string | no | Title of the image |
| description | string | no | Description of the image |
| ordering | integer | no | Ordering of the image |

### Modify a gallery image
`POST https://apizie.tech/v1/ecommerce:modrinth/projects-modify-gallery-image` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |
| url | string | yes | URL link of the image to modify |
| featured | boolean | no | Whether the image is featured |
| title | string | no | New title of the image |
| description | string | no | New description of the image |
| ordering | integer | no | New ordering of the image |

### Delete a gallery image
`POST https://apizie.tech/v1/ecommerce:modrinth/projects-delete-gallery-image` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |
| url | string | yes | URL link of the image to delete |

### Get all of a project's dependencies
`GET https://apizie.tech/v1/ecommerce:modrinth/projects-get-dependencies` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |

### Follow a project
`POST https://apizie.tech/v1/ecommerce:modrinth/projects-follow-project-by-slug` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |

### Unfollow a project
`POST https://apizie.tech/v1/ecommerce:modrinth/projects-unfollow-project` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |

### Schedule a project
`POST https://apizie.tech/v1/ecommerce:modrinth/projects-schedule-project` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |
| body | object | no | JSON request body |

### List project's versions
`GET https://apizie.tech/v1/ecommerce:modrinth/versions-list-project-versions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |
| loaders | string | no | The types of loaders to filter for |
| game_versions | string | no | The game versions to filter for |
| featured | boolean | no | Allows to filter for featured or non-featured versions only |

### Get a version
`GET https://apizie.tech/v1/ecommerce:modrinth/versions-get-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the version |

### Modify a version
`POST https://apizie.tech/v1/ecommerce:modrinth/versions-modify-version-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the version |
| body | object | no | JSON request body |

### Delete a version
`POST https://apizie.tech/v1/ecommerce:modrinth/versions-delete-version-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the version |

### Get a version given a version number or ID
`GET https://apizie.tech/v1/ecommerce:modrinth/versions-get-by-version-id-or-number` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |
| id|number | string | yes | The version ID or version number |

### Create a version
`POST https://apizie.tech/v1/ecommerce:modrinth/versions-create-new-version` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | Form fields as a JSON object |

### Schedule a version
`POST https://apizie.tech/v1/ecommerce:modrinth/versions-schedule-version` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the version |
| body | object | no | JSON request body |

### Get multiple versions
`GET https://apizie.tech/v1/ecommerce:modrinth/versions-list` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | string | yes | The IDs of the versions |

### Add files to version
`POST https://apizie.tech/v1/ecommerce:modrinth/versions-add-files-to-version` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the version |
| body | object | no | Form fields as a JSON object |

### Get version from hash
`GET https://apizie.tech/v1/ecommerce:modrinth/versionfiles-get-version-from-hash` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| hash | string | yes | The hash of the file, considering its byte content, and encoded in hexadecimal |
| algorithm | string | yes | The algorithm of the hash |
| multiple | boolean | no | Whether to return multiple results when looking for this hash |

### Delete a file from its hash
`POST https://apizie.tech/v1/ecommerce:modrinth/versionfiles-delete-by-hash` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| hash | string | yes | The hash of the file, considering its byte content, and encoded in hexadecimal |
| algorithm | string | yes | The algorithm of the hash |
| version_id | string | no | Version ID to delete the version from, if multiple files of the same hash exist |

### Latest version of a project from a hash, loader(s), and game version(s)
`POST https://apizie.tech/v1/ecommerce:modrinth/versionfiles-update-from-hashes` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| hash | string | yes | The hash of the file, considering its byte content, and encoded in hexadecimal |
| algorithm | string | yes | The algorithm of the hash |
| body | object | no | JSON request body |

### Get versions from hashes
`POST https://apizie.tech/v1/ecommerce:modrinth/versionfiles-get-versions-from-hashes` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Latest versions of multiple project from hashes, loader(s), and game version(s)
`POST https://apizie.tech/v1/ecommerce:modrinth/versionfiles-update-multiple-versions` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get a user
`GET https://apizie.tech/v1/ecommerce:modrinth/users-get-user-by-id-or-username` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|username | string | yes | The ID or username of the user |

### Modify a user
`POST https://apizie.tech/v1/ecommerce:modrinth/users-modify-user-patch` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|username | string | yes | The ID or username of the user |
| body | object | no | JSON request body |

### Get user from authorization header
`GET https://apizie.tech/v1/ecommerce:modrinth/users-get-user-from-auth-header` (byok)

### Get multiple users
`GET https://apizie.tech/v1/ecommerce:modrinth/users-get-multiple-users` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | string | yes | The IDs of the users |

### Change user's avatar
`POST https://apizie.tech/v1/ecommerce:modrinth/users-change-avatar` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|username | string | yes | The ID or username of the user |

### Get user's projects
`GET https://apizie.tech/v1/ecommerce:modrinth/users-get-user-projects` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|username | string | yes | The ID or username of the user |

### Get user's followed projects
`GET https://apizie.tech/v1/ecommerce:modrinth/users-get-followed-projects` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|username | string | yes | The ID or username of the user |

### Get user's payout history
`GET https://apizie.tech/v1/ecommerce:modrinth/users-get-payouts` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|username | string | yes | The ID or username of the user |

### Withdraw payout balance to PayPal or Venmo
`POST https://apizie.tech/v1/ecommerce:modrinth/users-withdraw-payout-balance-to-paypal` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|username | string | yes | The ID or username of the user |
| amount | integer | yes | Amount to withdraw |

### Get user's notifications
`GET https://apizie.tech/v1/ecommerce:modrinth/notifications-get-user-notifications` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|username | string | yes | The ID or username of the user |

### Get notification from ID
`GET https://apizie.tech/v1/ecommerce:modrinth/notifications-get-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the notification |

### Mark notification as read
`POST https://apizie.tech/v1/ecommerce:modrinth/notifications-mark-as-read` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the notification |

### Delete notification
`POST https://apizie.tech/v1/ecommerce:modrinth/notifications-delete-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the notification |

### Get multiple notifications
`GET https://apizie.tech/v1/ecommerce:modrinth/notifications-get-multiple` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | string | yes | The IDs of the notifications |

### Mark multiple notifications as read
`POST https://apizie.tech/v1/ecommerce:modrinth/notifications-mark-as-read-2` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | string | yes | The IDs of the notifications |

### Delete multiple notifications
`POST https://apizie.tech/v1/ecommerce:modrinth/notifications-delete-multiple` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | string | yes | The IDs of the notifications |

### Get your open reports
`GET https://apizie.tech/v1/ecommerce:modrinth/threads-get-open-reports` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| count | integer | no |  |

### Report a project, user, or version
`POST https://apizie.tech/v1/ecommerce:modrinth/threads-report-project-user-version` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| body | object | no | JSON request body |

### Get report from ID
`GET https://apizie.tech/v1/ecommerce:modrinth/threads-get-report-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the report |

### Modify a report
`POST https://apizie.tech/v1/ecommerce:modrinth/threads-modify-report` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the report |
| body | object | no | JSON request body |

### Get multiple reports
`GET https://apizie.tech/v1/ecommerce:modrinth/threads-get-multiple-reports` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | string | yes | The IDs of the reports |

### Get a thread
`GET https://apizie.tech/v1/ecommerce:modrinth/threads-get-thread-by-id` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the thread |

### Send a text message to a thread
`POST https://apizie.tech/v1/ecommerce:modrinth/threads-send-message` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the thread |
| body | object | no | JSON request body |

### Get multiple threads
`GET https://apizie.tech/v1/ecommerce:modrinth/threads-list-threads` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | string | yes | The IDs of the threads |

### Delete a thread message
`POST https://apizie.tech/v1/ecommerce:modrinth/threads-delete-thread-message` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the message |

### Get a project's team members
`GET https://apizie.tech/v1/ecommerce:modrinth/teams-get-project-members` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |

### Get a team's members
`GET https://apizie.tech/v1/ecommerce:modrinth/teams-get-team-members` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the team |

### Add a user to a team
`POST https://apizie.tech/v1/ecommerce:modrinth/teams-add-user-to-team` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the team |
| body | object | no | JSON request body |

### Get the members of multiple teams
`GET https://apizie.tech/v1/ecommerce:modrinth/teams-get-members` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| ids | string | yes | The IDs of the teams |

### Join a team
`POST https://apizie.tech/v1/ecommerce:modrinth/teams-join-team` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the team |

### Modify a team member's information
`POST https://apizie.tech/v1/ecommerce:modrinth/teams-modify-member-info` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the team |
| id|username | string | yes | The ID or username of the user |
| body | object | no | JSON request body |

### Remove a member from a team
`POST https://apizie.tech/v1/ecommerce:modrinth/teams-remove-member` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the team |
| id|username | string | yes | The ID or username of the user |

### Transfer team's ownership to another user
`POST https://apizie.tech/v1/ecommerce:modrinth/teams-transfer-ownership` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The ID of the team |
| body | object | no | JSON request body |

### Get a list of categories
`GET https://apizie.tech/v1/ecommerce:modrinth/tags-list-categories-with-icons` (byok)

### Get a list of loaders
`GET https://apizie.tech/v1/ecommerce:modrinth/tags-get-loader-list` (byok)

### Get a list of game versions
`GET https://apizie.tech/v1/ecommerce:modrinth/tags-list-game-versions` (byok)

### Get the text and title of a license
`GET https://apizie.tech/v1/ecommerce:modrinth/tags-get-license-text-title` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | yes | The license ID to get the text of |

### Get a list of donation platforms
`GET https://apizie.tech/v1/ecommerce:modrinth/tags-list-donation-platforms` (byok)

### Get a list of report types
`GET https://apizie.tech/v1/ecommerce:modrinth/tags-list-report-types` (byok)

### Get a list of project types
`GET https://apizie.tech/v1/ecommerce:modrinth/tags-list-project-types` (byok)

### Get a list of side types
`GET https://apizie.tech/v1/ecommerce:modrinth/tags-list-side-types` (byok)

### Forge Updates JSON file
`GET https://apizie.tech/v1/ecommerce:modrinth/misc-get-forge-updates-json` (byok)

| Parameter | Type | Required | Description |
|---|---|---|---|
| id|slug | string | yes | The ID or slug of the project |

### Various statistics about this Modrinth instance
`GET https://apizie.tech/v1/ecommerce:modrinth/misc-instance-statistics` (byok)

## Example
```
curl "https://apizie.tech/v1/ecommerce:modrinth/projects-find" \
  -H "x-api-key: $APIZIE_KEY" \
  -H "x-upstream-key: $PROVIDER_KEY"
```

## FAQ

### How do I call the Modrinth Labrinth API?
Create a free Apizie key, then send GET https://apizie.tech/v1/ecommerce:modrinth/projects-find with the header x-api-key. Every endpoint returns { project, data, timestamp }.

### Is the Modrinth Labrinth API free on Apizie?
Yes. The Free plan includes 1,000 requests a month at 100 requests a minute, no credit card. Modrinth Labrinth itself also needs your own key from api.modrinth.com.

### Can AI agents use the Modrinth Labrinth API?
Yes. Add the Apizie MCP server (https://apizie.tech/mcp) to Claude, ChatGPT, Cursor or VS Code, then ask in plain language. The agent calls run_scraper with project key ecommerce:modrinth.

### What is the status of the Modrinth Labrinth API?
Needs your own provider key (bring your own key)
