{"openapi":"3.1.0","info":{"title":"Modrinth (BYOK) API","version":"0.1.0","description":"Modrinth (BYOK) lets an AI assistant read your own Modrinth data through the Modrinth API with a key you supply (Modrinth personal access token). Read-only: 10 tools (search_projects, get_project, list_project_versions, get_version, get_project_members, get_user, list_user_projects, get_current_user, list_notifications, get_platform_statistics). The BYOK key travels with each request, is used for...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-modrinth.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-modrinth/docs"},"termsOfService":"https://connectorbay.com/byok-modrinth/terms"},"servers":[{"url":"https://byok-modrinth.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-modrinth/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/search_projects":{"post":{"operationId":"search_projects","summary":"Search Modrinth projects (mods, plugins, modpacks, resource packs, shaders) with facets for type, loader, game version a","description":"Search Modrinth projects (mods, plugins, modpacks, resource packs, shaders) with facets for type, loader, game version and category, sorted by relevance, downloads, follows or date. Use for \"Find the most downloaded Fabric optimization mods for Minecraft 1.21 on Modrinth\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Search text, for example 'sodium'.","title":"Query"},"facets":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Filters as a JSON array of arrays, for example [[\"project_type:mod\"],[\"categories:fabric\"],[\"versions:1.21\"]]; inner arrays are OR, outer arrays are AND.","title":"Facets"},"index":{"anyOf":[{"enum":["relevance","downloads","follows","newest","updated"],"type":"string"},{"type":"null"}],"default":"relevance","description":"Sort order.","title":"Index"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip.","title":"Offset"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results to return (1 to 100).","title":"Limit"}},"title":"search_projectsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_project":{"post":{"operationId":"get_project","summary":"Get one Modrinth project by ID or slug: title, description, type, status, loaders, game versions, downloads, followers, ","description":"Get one Modrinth project by ID or slug: title, description, type, status, loaders, game versions, downloads, followers, license, links and dates. Use for \"How many downloads does the sodium project have on Modrinth\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project":{"description":"Project ID or slug, for example 'fabric-api' or 'AANobbMI'.","maxLength":100,"title":"Project","type":"string"}},"required":["project"],"title":"get_projectArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_project_versions":{"post":{"operationId":"list_project_versions","summary":"List the versions of a project, newest first, optionally filtered by loader, game version or featured flag, with version","description":"List the versions of a project, newest first, optionally filtered by loader, game version or featured flag, with version type, supported game versions and downloads. Use for \"What are the latest Fabric versions of sodium for Minecraft 1.21\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project":{"description":"Project ID or slug, for example 'fabric-api' or 'AANobbMI'.","maxLength":100,"title":"Project","type":"string"},"loaders":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Loaders as a JSON array, for example [\"fabric\"].","title":"Loaders"},"game_versions":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Game versions as a JSON array, for example [\"1.21\"].","title":"Game Versions"},"featured":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only featured versions, false for only non-featured ones.","title":"Featured"},"include_changelog":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"False to leave out the changelog text and keep answers short.","title":"Include Changelog"}},"required":["project"],"title":"list_project_versionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_version":{"post":{"operationId":"get_version","summary":"Get one version by ID: number, type, supported game versions and loaders, status, downloads, publish date and changelog.","description":"Get one version by ID: number, type, supported game versions and loaders, status, downloads, publish date and changelog. Use for \"What changed in Modrinth version IIJJKKLL\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Version ID, for example 'IIJJKKLL'.","maxLength":40,"title":"Id","type":"string"}},"required":["id"],"title":"get_versionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_project_members":{"post":{"operationId":"get_project_members","summary":"List the team members of a project with their role and whether they accepted the invite. Use for \"Who works on the sodiu","description":"List the team members of a project with their role and whether they accepted the invite. Use for \"Who works on the sodium project on Modrinth\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project":{"description":"Project ID or slug, for example 'fabric-api' or 'AANobbMI'.","maxLength":100,"title":"Project","type":"string"}},"required":["project"],"title":"get_project_membersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_user":{"post":{"operationId":"get_user","summary":"Get a Modrinth user's public profile by ID or username: name, bio, avatar, role and join date. Use for \"Who is the Modri","description":"Get a Modrinth user's public profile by ID or username: name, bio, avatar, role and join date. Use for \"Who is the Modrinth user jellysquid3\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user":{"description":"User ID or username, for example 'jellysquid3'.","maxLength":100,"title":"User","type":"string"}},"required":["user"],"title":"get_userArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_user_projects":{"post":{"operationId":"list_user_projects","summary":"List the projects owned by a user with downloads, followers, loaders and status. Use for \"Which projects has jellysquid3","description":"List the projects owned by a user with downloads, followers, loaders and status. Use for \"Which projects has jellysquid3 published on Modrinth\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user":{"description":"User ID or username, for example 'jellysquid3'.","maxLength":100,"title":"User","type":"string"}},"required":["user"],"title":"list_user_projectsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_current_user":{"post":{"operationId":"get_current_user","summary":"Show the Modrinth account the token belongs to: ID, username, name, role and join date. Use for \"Which Modrinth account ","description":"Show the Modrinth account the token belongs to: ID, username, name, role and join date. Use for \"Which Modrinth account is my token connected to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_current_userArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_notifications":{"post":{"operationId":"list_notifications","summary":"List a user's Modrinth notifications (own account only) with type, title, text, link and read flag. Needs a token with n","description":"List a user's Modrinth notifications (own account only) with type, title, text, link and read flag. Needs a token with notification read scope. Use for \"Do I have unread Modrinth notifications\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user":{"description":"User ID or username, for example 'jellysquid3'.","maxLength":100,"title":"User","type":"string"}},"required":["user"],"title":"list_notificationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_platform_statistics":{"post":{"operationId":"get_platform_statistics","summary":"Show Modrinth platform totals: number of projects, versions, files and authors. Use for \"How many projects does Modrinth","description":"Show Modrinth platform totals: number of projects, versions, files and authors. Use for \"How many projects does Modrinth host\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_platform_statisticsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}