Public API · v1

One API for mods, packs and the files they need.

Ask Modpacks.ch once. We fetch and cache the project data, tidy up the differences between catalogues and return the fields your site, tool or launcher actually needs. Every result still says where it came from and links back to the official project page.

One place

Call us, not every catalogue

Your code talks to api.modpacks.ch. We handle the differences between CurseForge, Modrinth and the other catalogues we support.

Exact compatibility

Forge, NeoForge and Fabric stay distinct

Releases retain their game and loader targets. The loader route exposes the actual Forge, NeoForge, Fabric and Quilt versions available for a Minecraft version.

Built for scale

Busy pages don't multiply the work

Popular responses are cached and refreshed in one place. A traffic spike doesn't need to ask every source for the same project all over again.

Live API reference

Pick an endpoint

1 endpoints

Health

Check whether the API is ready.

GET /health Health check

Checks whether the API process is ready to receive requests.

curl --request GET 'https://api.modpacks.ch/health'

Responses

200 Plain text OK. string
OK

24 endpoints

Modpacks

Find modpacks and inspect their files.

GET /public/modpack/tags List modpack tags

Returns tags used by modpacks.

curl --request GET 'https://api.modpacks.ch/public/modpack/tags'

Responses

200 JSON object with status, tags, and refreshed. ModpackApiDataResponsePayloadTagsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "tags": [
    {
      "id": 10,
      "name": "tech"
    }
  ]
}
GET /public/modpack/browse/{filter} Browse modpacks

Returns a paged list of modpacks. Filters can include loader, game version, tag, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modpack/browse/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, tag, loader, or game version.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadBrowsePayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": "100",
      "name": "Example Pack",
      "provider": "modpacks.ch",
      "synopsis": "A short pack summary.",
      "type": "release",
      "updated": 1710000000,
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "installs": 1200
    }
  ],
  "page": "1",
  "pages": 4
}
GET /public/modpack/browse/{filter}/{secondFilter} Browse modpacks

Returns a paged list of modpacks. Filters can include loader, game version, tag, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modpack/browse/popular/%7BsecondFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, tag, loader, or game version.
secondFilter requiredpathstringOptional second filter.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadBrowsePayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": "100",
      "name": "Example Pack",
      "provider": "modpacks.ch",
      "synopsis": "A short pack summary.",
      "type": "release",
      "updated": 1710000000,
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "installs": 1200
    }
  ],
  "page": "1",
  "pages": 4
}
GET /public/modpack/browse/{filter}/{secondFilter}/{thirdFilter} Browse modpacks

Returns a paged list of modpacks. Filters can include loader, game version, tag, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modpack/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, tag, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadBrowsePayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": "100",
      "name": "Example Pack",
      "provider": "modpacks.ch",
      "synopsis": "A short pack summary.",
      "type": "release",
      "updated": 1710000000,
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "installs": 1200
    }
  ],
  "page": "1",
  "pages": 4
}
GET /public/modpack/browse/{filter}/{secondFilter}/{thirdFilter}/{sort} Browse modpacks

Returns a paged list of modpacks. Filters can include loader, game version, tag, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modpack/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, tag, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field: new, featured, updated, or popular.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadBrowsePayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": "100",
      "name": "Example Pack",
      "provider": "modpacks.ch",
      "synopsis": "A short pack summary.",
      "type": "release",
      "updated": 1710000000,
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "installs": 1200
    }
  ],
  "page": "1",
  "pages": 4
}
GET /public/modpack/browse/{filter}/{secondFilter}/{thirdFilter}/{sort}/{page} Browse modpacks

Returns a paged list of modpacks. Filters can include loader, game version, tag, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modpack/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular/1'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, tag, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field: new, featured, updated, or popular.
page requiredpathstringOptional page number.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadBrowsePayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": "100",
      "name": "Example Pack",
      "provider": "modpacks.ch",
      "synopsis": "A short pack summary.",
      "type": "release",
      "updated": 1710000000,
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "installs": 1200
    }
  ],
  "page": "1",
  "pages": 4
}
GET /public/modpack/{id}/{versionid}/changelog Get version changelog

Returns the changelog text for a modpack version.

curl --request GET 'https://api.modpacks.ch/public/modpack/238222/%7Bversionid%7D/changelog'

Parameters

NameInTypeDescription
id requiredpathinteger (int32)Parent modpack ID.
versionid requiredpathinteger (int32)Version ID.

Responses

200 JSON object with status, content, and updated. ModpackApiDataResponsePayloadChangelogPayload
{
  "status": "success",
  "content": "Updated mods and configuration.",
  "updated": 1710000000
}
GET /public/modpack/{id} Get modpack

Returns a full modpack record with metadata, artwork, authors, tags, links, versions, targets, recommendations, and rating data.

curl --request GET 'https://api.modpacks.ch/public/modpack/238222'

Parameters

NameInTypeDescription
id requiredpathinteger (int32)Modpack ID.

Responses

200 JSON object with status, id, name, type, synopsis, description, art, links, authors, versions, installs, plays, tags, rating, released, provider, and private. ModpackApiDataResponsePayloadModpackPayload
{
  "synopsis": "A short pack summary.",
  "description": "A longer pack description.",
  "art": [
    {
      "id": 300,
      "type": "square",
      "updated": 1710000000,
      "url": "https://example.com/art.png",
      "mirrors": [],
      "sha1": "0000000000000000000000000000000000000000",
      "size": 1024,
      "width": 512,
      "height": 512,
      "compressed": true
    }
  ],
  "links": [
    {
      "id": 30,
      "name": "Website",
      "link": "https://example.com",
      "type": "website"
    }
  ],
  "authors": [
    {
      "id": 20,
      "name": "Example Author",
      "type": "team",
      "website": "https://example.com",
      "updated": 1710000000
    }
  ],
  "versions": [
    {
      "specs": {
        "id": -1,
        "minimum": 4096,
        "recommended": 8192
      },
      "targets": [
        {
          "version": "1.20.1",
          "id": 40,
          "name": "minecraft",
          "type": "game",
          "updated": 1710000000
        }
      ],
      "private": false,
      "id": 200,
      "name": "1.0.0",
      "type": "release",
      "updated": 1710000000
    }
  ],
  "installs": 1200,
  "plays": 3400,
  "tags": [
    {
      "id": 10,
      "name": "tech"
    }
  ],
  "featured": true,
  "refreshed": 1710000000,
  "notification": "",
  "rating": {
    "id": -1,
    "configured": false,
    "verified": false,
    "age": 7,
    "gambling": false,
    "frightening": true,
    "alcoholdrugs": false,
    "nuditysexual": false,
    "sterotypeshate": false,
    "language": false,
    "violence": true
  },
  "status": "success",
  "released": 1710000000,
  "provider": "modpacks.ch",
  "plays_14d": 120,
  "private": false,
  "id": 100,
  "name": "Example Pack",
  "type": "release",
  "updated": 1710000000
}
GET /public/modpack/all List modpacks

Returns modpack ID lists for all, new, featured, updated, or private modpacks.

curl --request GET 'https://api.modpacks.ch/public/modpack/all'

Responses

200 JSON object with status, packs, total, limit, and refreshed. ModpackApiDataResponsePayloadPackIdListPayload
{
  "packs": [
    100,
    101
  ],
  "total": 2,
  "limit": 25,
  "refreshed": 1710000000,
  "status": "success"
}
GET /public/modpack/new/{limit} List modpacks

Returns modpack ID lists for all, new, featured, updated, or private modpacks.

curl --request GET 'https://api.modpacks.ch/public/modpack/new/20'

Parameters

NameInTypeDescription
limit requiredpathinteger (int32)Maximum number of pack IDs to return.

Responses

200 JSON object with status, packs, total, limit, and refreshed. ModpackApiDataResponsePayloadPackIdListPayload
{
  "packs": [
    100,
    101
  ],
  "total": 2,
  "limit": 25,
  "refreshed": 1710000000,
  "status": "success"
}
GET /public/modpack/updated/{limit} List modpacks

Returns modpack ID lists for all, new, featured, updated, or private modpacks.

curl --request GET 'https://api.modpacks.ch/public/modpack/updated/20'

Parameters

NameInTypeDescription
limit requiredpathinteger (int32)Maximum number of pack IDs to return.

Responses

200 JSON object with status, packs, total, limit, and refreshed. ModpackApiDataResponsePayloadPackIdListPayload
{
  "packs": [
    100,
    101
  ],
  "total": 2,
  "limit": 25,
  "refreshed": 1710000000,
  "status": "success"
}
GET /public/modpack/search/{mode} Search modpacks

Searches modpacks using the term query parameter. Results can be returned as IDs, detailed pack cards, or filtered browse-style results.

curl --request GET 'https://api.modpacks.ch/public/modpack/search/%7Bmode%7D'

Parameters

NameInTypeDescription
mode requiredpathstringResult limit, or first filter for browse-style search.

Responses

200 JSON object with packs, total, limit, refreshed, and optionally curseforge IDs or pagination fields. ModpackApiDataResponsePayloadSearchPayload
{
  "packs": [
    100,
    101
  ],
  "curseforge": [
    5000
  ],
  "total": 3,
  "limit": 25,
  "refreshed": 1710000000
}
GET /public/modpack/search/{mode}/{detailOrFilter} Search modpacks

Searches modpacks using the term query parameter. Results can be returned as IDs, detailed pack cards, or filtered browse-style results.

curl --request GET 'https://api.modpacks.ch/public/modpack/search/%7Bmode%7D/%7BdetailOrFilter%7D'

Parameters

NameInTypeDescription
mode requiredpathstringResult limit, or first filter for browse-style search.
detailOrFilter requiredpathstringUse detailed for detailed results, or provide another filter.

Responses

200 JSON object with packs, total, limit, refreshed, and optionally curseforge IDs or pagination fields. ModpackApiDataResponsePayloadSearchPayload
{
  "packs": [
    100,
    101
  ],
  "curseforge": [
    5000
  ],
  "total": 3,
  "limit": 25,
  "refreshed": 1710000000
}
GET /public/modpack/search/{mode}/{detailOrFilter}/{secondFilter} Search modpacks

Searches modpacks using the term query parameter. Results can be returned as IDs, detailed pack cards, or filtered browse-style results.

curl --request GET 'https://api.modpacks.ch/public/modpack/search/%7Bmode%7D/%7BdetailOrFilter%7D/%7BsecondFilter%7D'

Parameters

NameInTypeDescription
mode requiredpathstringResult limit, or first filter for browse-style search.
detailOrFilter requiredpathstringUse detailed for detailed results, or provide another filter.
secondFilter requiredpathstringOptional second filter.

Responses

200 JSON object with packs, total, limit, refreshed, and optionally curseforge IDs or pagination fields. ModpackApiDataResponsePayloadSearchPayload
{
  "packs": [
    100,
    101
  ],
  "curseforge": [
    5000
  ],
  "total": 3,
  "limit": 25,
  "refreshed": 1710000000
}
GET /public/modpack/search/{mode}/{detailOrFilter}/{secondFilter}/{sort} Search modpacks

Searches modpacks using the term query parameter. Results can be returned as IDs, detailed pack cards, or filtered browse-style results.

curl --request GET 'https://api.modpacks.ch/public/modpack/search/%7Bmode%7D/%7BdetailOrFilter%7D/%7BsecondFilter%7D/popular'

Parameters

NameInTypeDescription
mode requiredpathstringResult limit, or first filter for browse-style search.
detailOrFilter requiredpathstringUse detailed for detailed results, or provide another filter.
secondFilter requiredpathstringOptional second filter.
sort requiredpathstringOptional sort field for browse-style search.

Responses

200 JSON object with packs, total, limit, refreshed, and optionally curseforge IDs or pagination fields. ModpackApiDataResponsePayloadSearchPayload
{
  "packs": [
    100,
    101
  ],
  "curseforge": [
    5000
  ],
  "total": 3,
  "limit": 25,
  "refreshed": 1710000000
}
GET /public/modpack/search/{mode}/{detailOrFilter}/{secondFilter}/{sort}/{page} Search modpacks

Searches modpacks using the term query parameter. Results can be returned as IDs, detailed pack cards, or filtered browse-style results.

curl --request GET 'https://api.modpacks.ch/public/modpack/search/%7Bmode%7D/%7BdetailOrFilter%7D/%7BsecondFilter%7D/popular/1'

Parameters

NameInTypeDescription
mode requiredpathstringResult limit, or first filter for browse-style search.
detailOrFilter requiredpathstringUse detailed for detailed results, or provide another filter.
secondFilter requiredpathstringOptional second filter.
sort requiredpathstringOptional sort field for browse-style search.
page requiredpathstringOptional page number.

Responses

200 JSON object with packs, total, limit, refreshed, and optionally curseforge IDs or pagination fields. ModpackApiDataResponsePayloadSearchPayload
{
  "packs": [
    100,
    101
  ],
  "curseforge": [
    5000
  ],
  "total": 3,
  "limit": 25,
  "refreshed": 1710000000
}
GET /public/modpack/{id}/{versionid}/server/{platform} Download server installer

Downloads the platform-specific server installer binary for a modpack version.

curl --request GET 'https://api.modpacks.ch/public/modpack/238222/%7Bversionid%7D/server/%7Bplatform%7D'

Parameters

NameInTypeDescription
id requiredpathinteger (int32)Parent modpack ID.
versionid requiredpathinteger (int32)Version ID.
platform requiredpathstringTarget platform: linux, mac, freebsd, or windows.

Responses

200 Binary installer stream. string (binary)
TVoAAA==
GET /public/modpack/{id}/{versionid}/server/{arch}/{platform} Download server installer

Downloads the platform-specific server installer binary for a modpack version.

curl --request GET 'https://api.modpacks.ch/public/modpack/238222/%7Bversionid%7D/server/%7Barch%7D/%7Bplatform%7D'

Parameters

NameInTypeDescription
id requiredpathinteger (int32)Parent modpack ID.
versionid requiredpathinteger (int32)Version ID.
arch requiredpathstringOptional architecture, such as arm or arm64.
platform requiredpathstringTarget platform: linux, mac, freebsd, or windows.

Responses

200 Binary installer stream. string (binary)
TVoAAA==
GET /public/modpack/{id}/{versionid} Get modpack version

Returns a full modpack version record, including targets, files, recommendations, changelog text, and provider metadata where available.

curl --request GET 'https://api.modpacks.ch/public/modpack/238222/%7Bversionid%7D'

Parameters

NameInTypeDescription
id requiredpathinteger (int32)Parent modpack ID.
versionid requiredpathinteger (int32)Version ID. The resolve route can be used when only the version ID is known.

Responses

200 JSON object with status, id, name, type, parent, targets, specs, files, links, installs, plays, refreshed, changelog, notification, and private. ModpackApiDataResponsePayloadVersionPayload
{
  "status": "success",
  "installs": 1200,
  "plays": 3400,
  "refreshed": 1710000000,
  "changelog": "Updated mods and configuration.",
  "parent": 100,
  "notification": "",
  "links": [
    {
      "id": 30,
      "name": "Website",
      "link": "https://example.com",
      "type": "website"
    }
  ],
  "targets": [
    {
      "version": "1.20.1",
      "id": 40,
      "name": "minecraft",
      "type": "game",
      "updated": 1710000000
    }
  ],
  "specs": {
    "id": -1,
    "minimum": 4096,
    "recommended": 8192
  },
  "files": [
    {
      "version": "1.0.0",
      "path": "mods/",
      "url": "https://example.com/example-mod.jar",
      "mirrors": [],
      "sha1": "1111111111111111111111111111111111111111",
      "size": 2048,
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "clientonly": false,
      "serveronly": false,
      "optional": false,
      "curseforge": {
        "project": "5000",
        "file": "6000"
      },
      "id": 6000,
      "name": "example-mod.jar",
      "type": "mod",
      "updated": 1710000000
    }
  ],
  "private": false,
  "id": 200,
  "name": "1.0.0",
  "type": "release",
  "updated": 1710000000
}
GET /public/modpack/resolve/{versionid} Get modpack version

Returns a full modpack version record, including targets, files, recommendations, changelog text, and provider metadata where available.

curl --request GET 'https://api.modpacks.ch/public/modpack/resolve/%7Bversionid%7D'

Parameters

NameInTypeDescription
versionid requiredpathinteger (int32)Version ID. The resolve route can be used when only the version ID is known.

Responses

200 JSON object with status, id, name, type, parent, targets, specs, files, links, installs, plays, refreshed, changelog, notification, and private. ModpackApiDataResponsePayloadVersionPayload
{
  "status": "success",
  "installs": 1200,
  "plays": 3400,
  "refreshed": 1710000000,
  "changelog": "Updated mods and configuration.",
  "parent": 100,
  "notification": "",
  "links": [
    {
      "id": 30,
      "name": "Website",
      "link": "https://example.com",
      "type": "website"
    }
  ],
  "targets": [
    {
      "version": "1.20.1",
      "id": 40,
      "name": "minecraft",
      "type": "game",
      "updated": 1710000000
    }
  ],
  "specs": {
    "id": -1,
    "minimum": 4096,
    "recommended": 8192
  },
  "files": [
    {
      "version": "1.0.0",
      "path": "mods/",
      "url": "https://example.com/example-mod.jar",
      "mirrors": [],
      "sha1": "1111111111111111111111111111111111111111",
      "size": 2048,
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "clientonly": false,
      "serveronly": false,
      "optional": false,
      "curseforge": {
        "project": "5000",
        "file": "6000"
      },
      "id": 6000,
      "name": "example-mod.jar",
      "type": "mod",
      "updated": 1710000000
    }
  ],
  "private": false,
  "id": 200,
  "name": "1.0.0",
  "type": "release",
  "updated": 1710000000
}
GET /public/modpack/{id}/{versionid}/mods Get version mods

Returns the mod metadata associated with a modpack version.

curl --request GET 'https://api.modpacks.ch/public/modpack/238222/%7Bversionid%7D/mods'

Parameters

NameInTypeDescription
id requiredpathinteger (int32)Parent modpack ID.
versionid requiredpathinteger (int32)Version ID.

Responses

200 JSON object with status, id, name, parent, targets, specs, mods, and refreshed. ModpackApiDataResponsePayloadVersionModsPayload
{
  "status": "success",
  "installs": 1200,
  "plays": 3400,
  "refreshed": 1710000000,
  "changelog": "",
  "parent": 100,
  "notification": "",
  "links": [],
  "targets": [
    {
      "version": "1.20.1",
      "id": 40,
      "name": "minecraft",
      "type": "game",
      "updated": 1710000000
    }
  ],
  "specs": {
    "id": -1,
    "minimum": 4096,
    "recommended": 8192
  },
  "files": "",
  "mods": [
    {
      "fileId": 6000,
      "name": "Example Mod",
      "filename": "example-mod.jar",
      "synopsis": "A short mod summary.",
      "icon": "https://example.com/icon.png",
      "curseSlug": "example-mod",
      "curseProject": 5000,
      "curseFile": 6000,
      "stored": 1710000000
    }
  ],
  "id": 200,
  "name": "1.0.0",
  "type": "release",
  "updated": 1710000000
}

2 endpoints

Tags

Find the tags used to organise projects.

2 endpoints

Plugins

Find Bukkit plugins for Minecraft servers.

GET /public/plugin/{id} Get Bukkit plugin

Returns a CurseForge Bukkit plugin record by project ID.

curl --request GET 'https://api.modpacks.ch/public/plugin/238222'

Parameters

NameInTypeDescription
id requiredpathinteger (int32)CurseForge Bukkit plugin project ID.

Responses

200 JSON object with status, id, name, type, synopsis, description, art, links, authors, versions, installs, and refreshed. ModpackApiDataResponsePayloadProviderModPayload
{
  "id": 5000,
  "name": "Example Project",
  "type": "release",
  "updated": 1710000000,
  "synopsis": "A short project summary.",
  "description": "## About this project\n\nA longer provider-authored description in **Markdown**.",
  "art": [
    {
      "type": "square",
      "url": "https://example.com/art.png",
      "mirrors": [],
      "width": 512,
      "height": 512,
      "compressed": true
    }
  ],
  "links": [
    {
      "id": 30,
      "name": "Website",
      "link": "https://example.com",
      "type": "website"
    }
  ],
  "authors": [
    {
      "id": 20,
      "name": "Example Author",
      "type": "team",
      "website": "https://example.com",
      "updated": 1710000000
    }
  ],
  "tags": null,
  "versions": [
    {
      "id": 6000,
      "name": "example-project-1.0.0.jar",
      "type": "release",
      "updated": 1710000000,
      "version": "1.0.0",
      "path": "mods/",
      "url": "https://example.com/example-project-1.0.0.jar",
      "mirrors": [],
      "sha1": "1111111111111111111111111111111111111111",
      "size": 2048,
      "clientonly": false,
      "serveronly": null,
      "targets": [
        {
          "id": 40,
          "name": "minecraft",
          "type": "game",
          "version": "1.20.1",
          "updated": 1710000000
        }
      ],
      "dependencies": [
        {
          "id": 7000,
          "file": null,
          "required": true
        }
      ],
      "conflicts": null
    }
  ],
  "installs": 1200,
  "status": "success",
  "provider": "curseforge",
  "refreshed": 1710000000,
  "timings": []
}
GET /public/plugin/search/{limit} Search Bukkit plugins

Searches CurseForge Bukkit plugins using the required term query parameter.

curl --request GET 'https://api.modpacks.ch/public/plugin/search/20?term=create'

Parameters

NameInTypeDescription
limit requiredpathstringMaximum number of plugin IDs to return.
term requiredquerystringBukkit plugin name or search term.

Responses

200 JSON object with plugins, total, limit, and refreshed. ModpackApiDataResponsePayloadPluginSearchPayload
{
  "plugins": [
    9000,
    9001
  ],
  "total": 2,
  "limit": 25,
  "refreshed": 1710000000
}

9 endpoints

Mods

Find mods, look them up by ID or hash, and inspect their files.

GET /public/mod/{id} Get mod

Returns a mod record by provider ID, Modrinth ID, or file hash. Provider-authored description Markdown must be treated as untrusted content.

curl --request GET 'https://api.modpacks.ch/public/mod/238222'

Parameters

NameInTypeDescription
id requiredpathstringProvider project ID, Modrinth ID, or file hash.

Responses

200 JSON object with status, id, name, type, synopsis, description, art, links, authors, versions, installs, provider, and refreshed. ModpackApiDataResponsePayloadProviderModPayload
{
  "id": 5000,
  "name": "Example Project",
  "type": "release",
  "updated": 1710000000,
  "synopsis": "A short project summary.",
  "description": "## About this project\n\nA longer provider-authored description in **Markdown**.",
  "art": [
    {
      "type": "square",
      "url": "https://example.com/art.png",
      "mirrors": [],
      "width": 512,
      "height": 512,
      "compressed": true
    }
  ],
  "links": [
    {
      "id": 30,
      "name": "Website",
      "link": "https://example.com",
      "type": "website"
    }
  ],
  "authors": [
    {
      "id": 20,
      "name": "Example Author",
      "type": "team",
      "website": "https://example.com",
      "updated": 1710000000
    }
  ],
  "tags": null,
  "versions": [
    {
      "id": 6000,
      "name": "example-project-1.0.0.jar",
      "type": "release",
      "updated": 1710000000,
      "version": "1.0.0",
      "path": "mods/",
      "url": "https://example.com/example-project-1.0.0.jar",
      "mirrors": [],
      "sha1": "1111111111111111111111111111111111111111",
      "size": 2048,
      "clientonly": false,
      "serveronly": null,
      "targets": [
        {
          "id": 40,
          "name": "minecraft",
          "type": "game",
          "version": "1.20.1",
          "updated": 1710000000
        }
      ],
      "dependencies": [
        {
          "id": 7000,
          "file": null,
          "required": true
        }
      ],
      "conflicts": null
    }
  ],
  "installs": 1200,
  "status": "success",
  "provider": "curseforge",
  "refreshed": 1710000000,
  "timings": []
}
GET /public/mod/lookup Look up mod metadata

Looks up mod metadata by hash. POST requests can submit multiple hashes.

curl --request GET 'https://api.modpacks.ch/public/mod/lookup'

Responses

200 Single lookup returns JSON with status and meta. Batch lookup returns JSON with status and mods. ModpackApiDataResponsePayloadModMetadataLookupPayload
{
  "status": "success",
  "meta": {
    "fileId": 6000,
    "name": "Example Mod",
    "filename": "example-mod.jar",
    "synopsis": "A short mod summary.",
    "icon": "https://example.com/icon.png",
    "curseSlug": "example-mod",
    "curseProject": 5000,
    "curseFile": 6000,
    "stored": 1710000000
  }
}
POST /public/mod/lookup Look up mod metadata

Looks up mod metadata by hash. POST requests can submit multiple hashes.

curl --request POST 'https://api.modpacks.ch/public/mod/lookup'

Responses

200 Single lookup returns JSON with status and meta. Batch lookup returns JSON with status and mods. ModpackApiDataResponsePayloadModMetadataLookupPayload
{
  "status": "success",
  "meta": {
    "fileId": 6000,
    "name": "Example Mod",
    "filename": "example-mod.jar",
    "synopsis": "A short mod summary.",
    "icon": "https://example.com/icon.png",
    "curseSlug": "example-mod",
    "curseProject": 5000,
    "curseFile": 6000,
    "stored": 1710000000
  }
}
GET /public/mod/lookup/{hash} Look up mod metadata

Looks up mod metadata by hash. POST requests can submit multiple hashes.

curl --request GET 'https://api.modpacks.ch/public/mod/lookup/sha1-hash'

Parameters

NameInTypeDescription
hash requiredpathstringOptional file hash for single-hash lookups.

Responses

200 Single lookup returns JSON with status and meta. Batch lookup returns JSON with status and mods. ModpackApiDataResponsePayloadModMetadataLookupPayload
{
  "status": "success",
  "meta": {
    "fileId": 6000,
    "name": "Example Mod",
    "filename": "example-mod.jar",
    "synopsis": "A short mod summary.",
    "icon": "https://example.com/icon.png",
    "curseSlug": "example-mod",
    "curseProject": 5000,
    "curseFile": 6000,
    "stored": 1710000000
  }
}
POST /public/mod/lookup/{hash} Look up mod metadata

Looks up mod metadata by hash. POST requests can submit multiple hashes.

curl --request POST 'https://api.modpacks.ch/public/mod/lookup/sha1-hash'

Parameters

NameInTypeDescription
hash requiredpathstringOptional file hash for single-hash lookups.

Responses

200 Single lookup returns JSON with status and meta. Batch lookup returns JSON with status and mods. ModpackApiDataResponsePayloadModMetadataLookupPayload
{
  "status": "success",
  "meta": {
    "fileId": 6000,
    "name": "Example Mod",
    "filename": "example-mod.jar",
    "synopsis": "A short mod summary.",
    "icon": "https://example.com/icon.png",
    "curseSlug": "example-mod",
    "curseProject": 5000,
    "curseFile": 6000,
    "stored": 1710000000
  }
}
GET /public/mod/search/{limitOrGameVersion} Search mods

Searches mod providers using the term query parameter, with optional game version and loader filters.

curl --request GET 'https://api.modpacks.ch/public/mod/search/%7BlimitOrGameVersion%7D'

Parameters

NameInTypeDescription
limitOrGameVersion requiredpathstringResult limit, or Minecraft game version.

Responses

200 JSON object with mods, total, limit, term, and refreshed. ModpackApiDataResponsePayloadModSearchPayload
{
  "mods": [
    {
      "id": 5000,
      "name": "Example Project",
      "type": "release",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "description": "## About this project\n\nA longer provider-authored description in **Markdown**.",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": [],
          "width": 512,
          "height": 512,
          "compressed": true
        }
      ],
      "links": [
        {
          "id": 30,
          "name": "Website",
          "link": "https://example.com",
          "type": "website"
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": null,
      "versions": [
        {
          "id": 6000,
          "name": "example-project-1.0.0.jar",
          "type": "release",
          "updated": 1710000000,
          "version": "1.0.0",
          "path": "mods/",
          "url": "https://example.com/example-project-1.0.0.jar",
          "mirrors": [],
          "sha1": "1111111111111111111111111111111111111111",
          "size": 2048,
          "clientonly": false,
          "serveronly": null,
          "targets": [
            {
              "id": 40,
              "name": "minecraft",
              "type": "game",
              "version": "1.20.1",
              "updated": 1710000000
            }
          ],
          "dependencies": [
            {
              "id": 7000,
              "file": null,
              "required": true
            }
          ],
          "conflicts": null
        }
      ],
      "installs": 1200,
      "status": "success",
      "provider": "curseforge",
      "refreshed": 1710000000,
      "timings": []
    }
  ],
  "total": 1,
  "limit": 25,
  "term": "example",
  "refreshed": 1710000000
}
GET /public/mod/search/{limitOrGameVersion}/{loaderOrLimit} Search mods

Searches mod providers using the term query parameter, with optional game version and loader filters.

curl --request GET 'https://api.modpacks.ch/public/mod/search/%7BlimitOrGameVersion%7D/%7BloaderOrLimit%7D'

Parameters

NameInTypeDescription
limitOrGameVersion requiredpathstringResult limit, or Minecraft game version.
loaderOrLimit requiredpathstringLoader filter, or result limit when a game version is supplied.

Responses

200 JSON object with mods, total, limit, term, and refreshed. ModpackApiDataResponsePayloadModSearchPayload
{
  "mods": [
    {
      "id": 5000,
      "name": "Example Project",
      "type": "release",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "description": "## About this project\n\nA longer provider-authored description in **Markdown**.",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": [],
          "width": 512,
          "height": 512,
          "compressed": true
        }
      ],
      "links": [
        {
          "id": 30,
          "name": "Website",
          "link": "https://example.com",
          "type": "website"
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": null,
      "versions": [
        {
          "id": 6000,
          "name": "example-project-1.0.0.jar",
          "type": "release",
          "updated": 1710000000,
          "version": "1.0.0",
          "path": "mods/",
          "url": "https://example.com/example-project-1.0.0.jar",
          "mirrors": [],
          "sha1": "1111111111111111111111111111111111111111",
          "size": 2048,
          "clientonly": false,
          "serveronly": null,
          "targets": [
            {
              "id": 40,
              "name": "minecraft",
              "type": "game",
              "version": "1.20.1",
              "updated": 1710000000
            }
          ],
          "dependencies": [
            {
              "id": 7000,
              "file": null,
              "required": true
            }
          ],
          "conflicts": null
        }
      ],
      "installs": 1200,
      "status": "success",
      "provider": "curseforge",
      "refreshed": 1710000000,
      "timings": []
    }
  ],
  "total": 1,
  "limit": 25,
  "term": "example",
  "refreshed": 1710000000
}
GET /public/mod/search/{limitOrGameVersion}/{loaderOrLimit}/{limit} Search mods

Searches mod providers using the term query parameter, with optional game version and loader filters.

curl --request GET 'https://api.modpacks.ch/public/mod/search/%7BlimitOrGameVersion%7D/%7BloaderOrLimit%7D/20'

Parameters

NameInTypeDescription
limitOrGameVersion requiredpathstringResult limit, or Minecraft game version.
loaderOrLimit requiredpathstringLoader filter, or result limit when a game version is supplied.
limit requiredpathstringResult limit when game version and loader are supplied.

Responses

200 JSON object with mods, total, limit, term, and refreshed. ModpackApiDataResponsePayloadModSearchPayload
{
  "mods": [
    {
      "id": 5000,
      "name": "Example Project",
      "type": "release",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "description": "## About this project\n\nA longer provider-authored description in **Markdown**.",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": [],
          "width": 512,
          "height": 512,
          "compressed": true
        }
      ],
      "links": [
        {
          "id": 30,
          "name": "Website",
          "link": "https://example.com",
          "type": "website"
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": null,
      "versions": [
        {
          "id": 6000,
          "name": "example-project-1.0.0.jar",
          "type": "release",
          "updated": 1710000000,
          "version": "1.0.0",
          "path": "mods/",
          "url": "https://example.com/example-project-1.0.0.jar",
          "mirrors": [],
          "sha1": "1111111111111111111111111111111111111111",
          "size": 2048,
          "clientonly": false,
          "serveronly": null,
          "targets": [
            {
              "id": 40,
              "name": "minecraft",
              "type": "game",
              "version": "1.20.1",
              "updated": 1710000000
            }
          ],
          "dependencies": [
            {
              "id": 7000,
              "file": null,
              "required": true
            }
          ],
          "conflicts": null
        }
      ],
      "installs": 1200,
      "status": "success",
      "provider": "curseforge",
      "refreshed": 1710000000,
      "timings": []
    }
  ],
  "total": 1,
  "limit": 25,
  "term": "example",
  "refreshed": 1710000000
}
GET /public/mod/search/{limitOrGameVersion}/{loaderOrLimit}/{limit}/{variant} Search mods

Searches mod providers using the term query parameter, with optional game version and loader filters.

curl --request GET 'https://api.modpacks.ch/public/mod/search/%7BlimitOrGameVersion%7D/%7BloaderOrLimit%7D/20/%7Bvariant%7D'

Parameters

NameInTypeDescription
limitOrGameVersion requiredpathstringResult limit, or Minecraft game version.
loaderOrLimit requiredpathstringLoader filter, or result limit when a game version is supplied.
limit requiredpathstringResult limit when game version and loader are supplied.
variant requiredpathstringOptional search variant.

Responses

200 JSON object with mods, total, limit, term, and refreshed. ModpackApiDataResponsePayloadModSearchPayload
{
  "mods": [
    {
      "id": 5000,
      "name": "Example Project",
      "type": "release",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "description": "## About this project\n\nA longer provider-authored description in **Markdown**.",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": [],
          "width": 512,
          "height": 512,
          "compressed": true
        }
      ],
      "links": [
        {
          "id": 30,
          "name": "Website",
          "link": "https://example.com",
          "type": "website"
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": null,
      "versions": [
        {
          "id": 6000,
          "name": "example-project-1.0.0.jar",
          "type": "release",
          "updated": 1710000000,
          "version": "1.0.0",
          "path": "mods/",
          "url": "https://example.com/example-project-1.0.0.jar",
          "mirrors": [],
          "sha1": "1111111111111111111111111111111111111111",
          "size": 2048,
          "clientonly": false,
          "serveronly": null,
          "targets": [
            {
              "id": 40,
              "name": "minecraft",
              "type": "game",
              "version": "1.20.1",
              "updated": 1710000000
            }
          ],
          "dependencies": [
            {
              "id": 7000,
              "file": null,
              "required": true
            }
          ],
          "conflicts": null
        }
      ],
      "installs": 1200,
      "status": "success",
      "provider": "curseforge",
      "refreshed": 1710000000,
      "timings": []
    }
  ],
  "total": 1,
  "limit": 25,
  "term": "example",
  "refreshed": 1710000000
}

27 endpoints

Modrinth

Browse and search Modrinth projects through Modpacks.ch.

GET /public/modrinth/browse/{filter} Browse Modrinth modpacks

Returns a paged list of Modrinth modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/browse/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/browse/{filter}/{secondFilter} Browse Modrinth modpacks

Returns a paged list of Modrinth modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/browse/popular/%7BsecondFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/browse/{filter}/{secondFilter}/{thirdFilter} Browse Modrinth modpacks

Returns a paged list of Modrinth modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/browse/{filter}/{secondFilter}/{thirdFilter}/{sort} Browse Modrinth modpacks

Returns a paged list of Modrinth modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/browse/{filter}/{secondFilter}/{thirdFilter}/{sort}/{page} Browse Modrinth modpacks

Returns a paged list of Modrinth modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular/1'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.
page requiredpathstringOptional page number.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/search/{filter} Browse Modrinth modpacks

Returns a paged list of Modrinth modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/search/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/search/{filter}/{secondFilter} Browse Modrinth modpacks

Returns a paged list of Modrinth modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/search/popular/%7BsecondFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/search/{filter}/{secondFilter}/{thirdFilter} Browse Modrinth modpacks

Returns a paged list of Modrinth modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/search/popular/%7BsecondFilter%7D/%7BthirdFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/search/{filter}/{secondFilter}/{thirdFilter}/{sort} Browse Modrinth modpacks

Returns a paged list of Modrinth modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/search/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/search/{filter}/{secondFilter}/{thirdFilter}/{sort}/{page} Browse Modrinth modpacks

Returns a paged list of Modrinth modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/search/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular/1'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.
page requiredpathstringOptional page number.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/mods/browse/{filter} Browse Modrinth mods

Returns a paged list of Modrinth mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/mods/browse/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/mods/browse/{filter}/{secondFilter} Browse Modrinth mods

Returns a paged list of Modrinth mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/mods/browse/popular/%7BsecondFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/mods/browse/{filter}/{secondFilter}/{thirdFilter} Browse Modrinth mods

Returns a paged list of Modrinth mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/mods/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/mods/browse/{filter}/{secondFilter}/{thirdFilter}/{sort} Browse Modrinth mods

Returns a paged list of Modrinth mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/mods/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/mods/browse/{filter}/{secondFilter}/{thirdFilter}/{sort}/{page} Browse Modrinth mods

Returns a paged list of Modrinth mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/mods/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular/1'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.
page requiredpathstringOptional page number.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/mods/search/{filter} Browse Modrinth mods

Returns a paged list of Modrinth mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/mods/search/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/mods/search/{filter}/{secondFilter} Browse Modrinth mods

Returns a paged list of Modrinth mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/mods/search/popular/%7BsecondFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/mods/search/{filter}/{secondFilter}/{thirdFilter} Browse Modrinth mods

Returns a paged list of Modrinth mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/mods/search/popular/%7BsecondFilter%7D/%7BthirdFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/mods/search/{filter}/{secondFilter}/{thirdFilter}/{sort} Browse Modrinth mods

Returns a paged list of Modrinth mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/mods/search/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/mods/search/{filter}/{secondFilter}/{thirdFilter}/{sort}/{page} Browse Modrinth mods

Returns a paged list of Modrinth mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/modrinth/mods/search/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular/1'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.
page requiredpathstringOptional page number.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": "AABBCCDD",
      "name": "Example Modrinth Project",
      "updated": 1710000000,
      "synopsis": "A short Modrinth project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": -1,
          "name": "ExampleAuthor",
          "type": "modrinth",
          "website": "https://modrinth.com/user/ExampleAuthor",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": "technology",
          "name": "technology"
        }
      ],
      "provider": "modrinth",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/modrinth/{projectIdOrSlug} Get Modrinth modpack

Returns a Modrinth modpack using the established modpacks.ch/CurseForge response envelope. Provider-authored Markdown must be treated as untrusted content.

curl --request GET 'https://api.modpacks.ch/public/modrinth/%7BprojectIdOrSlug%7D'

Parameters

NameInTypeDescription
projectIdOrSlug requiredpathstringModrinth project ID or slug.

Responses

200 JSON object with status, id, name, type, synopsis, description, art, links, authors, versions, installs, provider, and refreshed. object
{
  "id": "AABBCCDD",
  "name": "Example Modrinth Pack",
  "type": "release",
  "updated": 1710000000,
  "synopsis": "A short pack summary.",
  "description": "## About this pack\n\nA longer provider-authored description in **Markdown**.",
  "art": [
    {
      "type": "square",
      "url": "https://example.com/art.png",
      "mirrors": []
    }
  ],
  "links": [
    {
      "id": 30,
      "name": "Website",
      "link": "https://example.com",
      "type": "website"
    }
  ],
  "authors": [
    {
      "id": 20,
      "name": "Example Author",
      "type": "team",
      "website": "https://example.com",
      "updated": 1710000000
    }
  ],
  "versions": [
    {
      "id": "IIJJKKLL",
      "name": "1.0.0",
      "type": "release",
      "updated": 1710000000,
      "targets": [
        {
          "version": "1.20.1",
          "id": 40,
          "name": "minecraft",
          "type": "game",
          "updated": 1710000000
        }
      ],
      "private": false
    }
  ],
  "installs": 1200,
  "plays": 0,
  "tags": [
    {
      "id": "technology",
      "name": "technology"
    }
  ],
  "featured": false,
  "refreshed": 1710000000,
  "notification": "",
  "rating": {
    "id": -1,
    "configured": false,
    "verified": false,
    "age": 7,
    "gambling": false,
    "frightening": true,
    "alcoholdrugs": false,
    "nuditysexual": false,
    "sterotypeshate": false,
    "language": false,
    "violence": true
  },
  "status": "success",
  "released": 1710000000,
  "provider": "modrinth",
  "plays_14d": 0,
  "private": false
}
GET /public/modrinth/{projectIdOrSlug}/{versionId} Get a parsed Modrinth modpack version

Downloads the primary .mrpack, parses modrinth.index.json into the standard files array, and appends the source archive as type mr-extract. Resolved entries use the Modrinth project ID in id and version ID in version; unresolved or external files fall back to their SHA-1 identity. The sha1 field remains the integrity hash. A fallback SHA-1 may be passed to GET /public/mod/{id} for Modpacks.ch cross-provider lookup. Only entries with type mod are playable mods.

curl --request GET 'https://api.modpacks.ch/public/modrinth/%7BprojectIdOrSlug%7D/%7BversionId%7D'

Parameters

NameInTypeDescription
projectIdOrSlug requiredpathstringModrinth project ID or slug.
versionId requiredpathstringModrinth version ID.

Responses

200 JSON object with status, id, name, type, parent, targets, specs, files, installs, plays, refreshed, and notification. object
{
  "id": "IIJJKKLL",
  "name": "1.0.0",
  "type": "release",
  "updated": 1710000000,
  "status": "success",
  "installs": 1200,
  "plays": 0,
  "refreshed": 1710000000,
  "changelog": "Updated mods and configuration.",
  "parent": "AABBCCDD",
  "notification": "",
  "links": [],
  "targets": [
    {
      "version": "1.20.1",
      "id": 40,
      "name": "minecraft",
      "type": "game",
      "updated": 1710000000
    }
  ],
  "specs": "",
  "files": [
    {
      "id": "m5T5xmUy",
      "version": "r4yqxYQl",
      "name": "example-mod.jar",
      "type": "mod",
      "updated": 1710000000,
      "path": "mods/",
      "url": "https://cdn.modrinth.com/data/ABCDEFGH/versions/QRSTUVWX/example-mod.jar",
      "mirrors": [],
      "sha1": "1111111111111111111111111111111111111111",
      "size": 2048,
      "tags": [],
      "clientonly": false,
      "serveronly": false,
      "optional": false
    },
    {
      "id": "IIJJKKLL",
      "version": "1.0.0",
      "name": "example-pack.mrpack",
      "type": "mr-extract",
      "updated": 1710000000,
      "path": "./",
      "url": "https://cdn.modrinth.com/data/AABBCCDD/versions/IIJJKKLL/example-pack.mrpack",
      "mirrors": [],
      "sha1": "2222222222222222222222222222222222222222",
      "size": -1,
      "tags": [],
      "clientonly": false,
      "serveronly": false,
      "optional": false
    }
  ]
}
GET /public/modrinth/{id}/{versionid}/new Get Modrinth modpack version

Returns a Modrinth modpack version and expands its .mrpack index into the established files manifest.

curl --request GET 'https://api.modpacks.ch/public/modrinth/238222/%7Bversionid%7D/new'

Parameters

NameInTypeDescription
id requiredpathstringModrinth project ID or slug.
versionid requiredpathstringModrinth version ID.

Responses

200 JSON object with status, id, name, type, parent, targets, specs, files, installs, plays, refreshed, and notification. object
{
  "id": "IIJJKKLL",
  "name": "1.0.0",
  "type": "release",
  "updated": 1710000000,
  "status": "success",
  "installs": 1200,
  "plays": 0,
  "refreshed": 1710000000,
  "changelog": "Updated mods and configuration.",
  "parent": "AABBCCDD",
  "notification": "",
  "links": [
    {
      "id": 30,
      "name": "Website",
      "link": "https://example.com",
      "type": "website"
    }
  ],
  "targets": [
    {
      "version": "1.20.1",
      "id": 40,
      "name": "minecraft",
      "type": "game",
      "updated": 1710000000
    }
  ],
  "specs": "",
  "files": [
    {
      "version": "1.0.0",
      "path": "mods/",
      "url": "https://example.com/example-mod.jar",
      "mirrors": [],
      "sha1": "1111111111111111111111111111111111111111",
      "size": 2048,
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "clientonly": false,
      "serveronly": false,
      "optional": false,
      "curseforge": {
        "project": "5000",
        "file": "6000"
      },
      "id": 6000,
      "name": "example-mod.jar",
      "type": "mod",
      "updated": 1710000000
    }
  ]
}
GET /public/modrinth/{id}/{versionid}/server/{platform} Download Modrinth server installer

Downloads the platform-specific server installer binary for a Modrinth modpack version.

curl --request GET 'https://api.modpacks.ch/public/modrinth/238222/%7Bversionid%7D/server/%7Bplatform%7D'

Parameters

NameInTypeDescription
id requiredpathstringModrinth project ID or slug.
versionid requiredpathstringModrinth version ID.
platform requiredpathstringTarget platform: linux, mac, freebsd, or windows.

Responses

200 Binary installer stream. string (binary)
TVoAAA==
GET /public/modrinth/{id}/{versionid}/server/{arch}/{platform} Download Modrinth server installer

Downloads the platform-specific server installer binary for a Modrinth modpack version.

curl --request GET 'https://api.modpacks.ch/public/modrinth/238222/%7Bversionid%7D/server/%7Barch%7D/%7Bplatform%7D'

Parameters

NameInTypeDescription
id requiredpathstringModrinth project ID or slug.
versionid requiredpathstringModrinth version ID.
arch requiredpathstringOptional architecture, such as arm or arm64.
platform requiredpathstringTarget platform: linux, mac, freebsd, or windows.

Responses

200 Binary installer stream. string (binary)
TVoAAA==
GET /public/modrinth/tags List Modrinth tags

Returns non-loader category tags for Modrinth modpacks or mods.

curl --request GET 'https://api.modpacks.ch/public/modrinth/tags'

Responses

200 JSON object with status, tags, and refreshed. ModpackApiDataResponsePayloadTagsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "tags": [
    {
      "id": "technology",
      "name": "technology"
    }
  ]
}
GET /public/modrinth/mods/tags List Modrinth tags

Returns non-loader category tags for Modrinth modpacks or mods.

curl --request GET 'https://api.modpacks.ch/public/modrinth/mods/tags'

Responses

200 JSON object with status, tags, and refreshed. ModpackApiDataResponsePayloadTagsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "tags": [
    {
      "id": "technology",
      "name": "technology"
    }
  ]
}

1 endpoints

Loaders

Get exact loader builds for a Minecraft version.

GET /public/loaders/{mcVersion}/{loader} List loader versions

Returns loader versions available for a Minecraft game version.

curl --request GET 'https://api.modpacks.ch/public/loaders/%7BmcVersion%7D/%7Bloader%7D'

Parameters

NameInTypeDescription
mcVersion requiredpathstringMinecraft game version.
loader requiredpathstringLoader type, such as forge, fabric, quilt, or neoforge.

Responses

200 JSON object with status, art, loaders, id, name, total, and refreshed. ModpackApiDataResponsePayloadLoaderPayload
{
  "status": "success",
  "art": [
    {
      "id": 300,
      "type": "square",
      "updated": 1710000000,
      "url": "https://example.com/art.png",
      "mirrors": [],
      "sha1": "0000000000000000000000000000000000000000",
      "size": 1024,
      "width": 512,
      "height": 512,
      "compressed": true
    }
  ],
  "loaders": [
    {
      "id": 47,
      "version": "47.2.0",
      "game": "minecraft",
      "gameVersion": "1.20.1",
      "type": "forge"
    }
  ],
  "id": 1,
  "name": "Forge",
  "total": 1,
  "refreshed": 1710000000
}

11 endpoints

Hytale

Find Hytale projects and their files.

GET /public/hytale/mods/browse/{filter} Browse Hytale mods

Returns a paged list of CurseForge Hytale mods. Filters can include a Hytale build, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/hytale/mods/browse/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst Hytale build, category ID, or sort field.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 7000,
      "name": "Example Hytale Mod",
      "updated": 1710000000,
      "synopsis": "A short Hytale mod summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": [
        {
          "id": -1,
          "name": "Project Page",
          "link": "https://www.curseforge.com/hytale/mods/example-hytale-mod",
          "type": "curseforge"
        }
      ],
      "targets": [
        {
          "id": null,
          "name": "hytale",
          "type": "game",
          "version": "2026.01",
          "updated": 1710000000
        }
      ]
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/hytale/mods/browse/{filter}/{secondFilter} Browse Hytale mods

Returns a paged list of CurseForge Hytale mods. Filters can include a Hytale build, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/hytale/mods/browse/popular/%7BsecondFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst Hytale build, category ID, or sort field.
secondFilter requiredpathstringOptional second filter.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 7000,
      "name": "Example Hytale Mod",
      "updated": 1710000000,
      "synopsis": "A short Hytale mod summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": [
        {
          "id": -1,
          "name": "Project Page",
          "link": "https://www.curseforge.com/hytale/mods/example-hytale-mod",
          "type": "curseforge"
        }
      ],
      "targets": [
        {
          "id": null,
          "name": "hytale",
          "type": "game",
          "version": "2026.01",
          "updated": 1710000000
        }
      ]
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/hytale/mods/browse/{filter}/{secondFilter}/{thirdFilter} Browse Hytale mods

Returns a paged list of CurseForge Hytale mods. Filters can include a Hytale build, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/hytale/mods/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst Hytale build, category ID, or sort field.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 7000,
      "name": "Example Hytale Mod",
      "updated": 1710000000,
      "synopsis": "A short Hytale mod summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": [
        {
          "id": -1,
          "name": "Project Page",
          "link": "https://www.curseforge.com/hytale/mods/example-hytale-mod",
          "type": "curseforge"
        }
      ],
      "targets": [
        {
          "id": null,
          "name": "hytale",
          "type": "game",
          "version": "2026.01",
          "updated": 1710000000
        }
      ]
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/hytale/mods/browse/{filter}/{secondFilter}/{thirdFilter}/{sort} Browse Hytale mods

Returns a paged list of CurseForge Hytale mods. Filters can include a Hytale build, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/hytale/mods/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst Hytale build, category ID, or sort field.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field: popular, updated, new, or featured.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 7000,
      "name": "Example Hytale Mod",
      "updated": 1710000000,
      "synopsis": "A short Hytale mod summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": [
        {
          "id": -1,
          "name": "Project Page",
          "link": "https://www.curseforge.com/hytale/mods/example-hytale-mod",
          "type": "curseforge"
        }
      ],
      "targets": [
        {
          "id": null,
          "name": "hytale",
          "type": "game",
          "version": "2026.01",
          "updated": 1710000000
        }
      ]
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/hytale/mods/browse/{filter}/{secondFilter}/{thirdFilter}/{sort}/{page} Browse Hytale mods

Returns a paged list of CurseForge Hytale mods. Filters can include a Hytale build, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/hytale/mods/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular/1'

Parameters

NameInTypeDescription
filter requiredpathstringFirst Hytale build, category ID, or sort field.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field: popular, updated, new, or featured.
page requiredpathstringOptional one-based page number.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 7000,
      "name": "Example Hytale Mod",
      "updated": 1710000000,
      "synopsis": "A short Hytale mod summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": [
        {
          "id": -1,
          "name": "Project Page",
          "link": "https://www.curseforge.com/hytale/mods/example-hytale-mod",
          "type": "curseforge"
        }
      ],
      "targets": [
        {
          "id": null,
          "name": "hytale",
          "type": "game",
          "version": "2026.01",
          "updated": 1710000000
        }
      ]
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/hytale/mods/search/{filter} Browse Hytale mods

Returns a paged list of CurseForge Hytale mods. Filters can include a Hytale build, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/hytale/mods/search/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst Hytale build, category ID, or sort field.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 7000,
      "name": "Example Hytale Mod",
      "updated": 1710000000,
      "synopsis": "A short Hytale mod summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": [
        {
          "id": -1,
          "name": "Project Page",
          "link": "https://www.curseforge.com/hytale/mods/example-hytale-mod",
          "type": "curseforge"
        }
      ],
      "targets": [
        {
          "id": null,
          "name": "hytale",
          "type": "game",
          "version": "2026.01",
          "updated": 1710000000
        }
      ]
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/hytale/mods/search/{filter}/{secondFilter} Browse Hytale mods

Returns a paged list of CurseForge Hytale mods. Filters can include a Hytale build, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/hytale/mods/search/popular/%7BsecondFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst Hytale build, category ID, or sort field.
secondFilter requiredpathstringOptional second filter.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 7000,
      "name": "Example Hytale Mod",
      "updated": 1710000000,
      "synopsis": "A short Hytale mod summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": [
        {
          "id": -1,
          "name": "Project Page",
          "link": "https://www.curseforge.com/hytale/mods/example-hytale-mod",
          "type": "curseforge"
        }
      ],
      "targets": [
        {
          "id": null,
          "name": "hytale",
          "type": "game",
          "version": "2026.01",
          "updated": 1710000000
        }
      ]
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/hytale/mods/search/{filter}/{secondFilter}/{thirdFilter} Browse Hytale mods

Returns a paged list of CurseForge Hytale mods. Filters can include a Hytale build, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/hytale/mods/search/popular/%7BsecondFilter%7D/%7BthirdFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst Hytale build, category ID, or sort field.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 7000,
      "name": "Example Hytale Mod",
      "updated": 1710000000,
      "synopsis": "A short Hytale mod summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": [
        {
          "id": -1,
          "name": "Project Page",
          "link": "https://www.curseforge.com/hytale/mods/example-hytale-mod",
          "type": "curseforge"
        }
      ],
      "targets": [
        {
          "id": null,
          "name": "hytale",
          "type": "game",
          "version": "2026.01",
          "updated": 1710000000
        }
      ]
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/hytale/mods/search/{filter}/{secondFilter}/{thirdFilter}/{sort} Browse Hytale mods

Returns a paged list of CurseForge Hytale mods. Filters can include a Hytale build, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/hytale/mods/search/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst Hytale build, category ID, or sort field.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field: popular, updated, new, or featured.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 7000,
      "name": "Example Hytale Mod",
      "updated": 1710000000,
      "synopsis": "A short Hytale mod summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": [
        {
          "id": -1,
          "name": "Project Page",
          "link": "https://www.curseforge.com/hytale/mods/example-hytale-mod",
          "type": "curseforge"
        }
      ],
      "targets": [
        {
          "id": null,
          "name": "hytale",
          "type": "game",
          "version": "2026.01",
          "updated": 1710000000
        }
      ]
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/hytale/mods/search/{filter}/{secondFilter}/{thirdFilter}/{sort}/{page} Browse Hytale mods

Returns a paged list of CurseForge Hytale mods. Filters can include a Hytale build, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/hytale/mods/search/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular/1'

Parameters

NameInTypeDescription
filter requiredpathstringFirst Hytale build, category ID, or sort field.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field: popular, updated, new, or featured.
page requiredpathstringOptional one-based page number.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 7000,
      "name": "Example Hytale Mod",
      "updated": 1710000000,
      "synopsis": "A short Hytale mod summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": [
        {
          "id": -1,
          "name": "Project Page",
          "link": "https://www.curseforge.com/hytale/mods/example-hytale-mod",
          "type": "curseforge"
        }
      ],
      "targets": [
        {
          "id": null,
          "name": "hytale",
          "type": "game",
          "version": "2026.01",
          "updated": 1710000000
        }
      ]
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/hytale/mod/{id} Get Hytale mod

Returns a Hytale mod record by provider project ID.

curl --request GET 'https://api.modpacks.ch/public/hytale/mod/238222'

Parameters

NameInTypeDescription
id requiredpathinteger (int32)Provider project ID.

Responses

200 JSON object with status, id, name, type, synopsis, description, art, links, authors, versions, installs, and refreshed. ModpackApiDataResponsePayloadProviderModPayload
{
  "id": 5000,
  "name": "Example Project",
  "type": "release",
  "updated": 1710000000,
  "synopsis": "A short project summary.",
  "description": "## About this project\n\nA longer provider-authored description in **Markdown**.",
  "art": [
    {
      "type": "square",
      "url": "https://example.com/art.png",
      "mirrors": [],
      "width": 512,
      "height": 512,
      "compressed": true
    }
  ],
  "links": [
    {
      "id": 30,
      "name": "Website",
      "link": "https://example.com",
      "type": "website"
    }
  ],
  "authors": [
    {
      "id": 20,
      "name": "Example Author",
      "type": "team",
      "website": "https://example.com",
      "updated": 1710000000
    }
  ],
  "tags": null,
  "versions": [
    {
      "id": 6000,
      "name": "example-project-1.0.0.jar",
      "type": "release",
      "updated": 1710000000,
      "version": "1.0.0",
      "path": "mods/",
      "url": "https://example.com/example-project-1.0.0.jar",
      "mirrors": [],
      "sha1": "1111111111111111111111111111111111111111",
      "size": 2048,
      "clientonly": false,
      "serveronly": null,
      "targets": [
        {
          "id": 40,
          "name": "minecraft",
          "type": "game",
          "version": "1.20.1",
          "updated": 1710000000
        }
      ],
      "dependencies": [
        {
          "id": 7000,
          "file": null,
          "required": true
        }
      ],
      "conflicts": null
    }
  ],
  "installs": 1200,
  "status": "success",
  "provider": "curseforge",
  "refreshed": 1710000000,
  "timings": []
}

2 endpoints

FTB

Find Feed The Beast packs and their files.

GET /public/ftb/{id} Get FTB modpack

Returns a modpack record for an FTB pack.

curl --request GET 'https://api.modpacks.ch/public/ftb/238222'

Parameters

NameInTypeDescription
id requiredpathinteger (int32)FTB pack ID.

Responses

200 JSON object with status, id, name, type, synopsis, description, art, links, authors, versions, installs, provider, and refreshed. ModpackApiDataResponsePayloadModpackPayload
{
  "synopsis": "A short pack summary.",
  "description": "A longer pack description.",
  "art": [
    {
      "id": 300,
      "type": "square",
      "updated": 1710000000,
      "url": "https://example.com/art.png",
      "mirrors": [],
      "sha1": "0000000000000000000000000000000000000000",
      "size": 1024,
      "width": 512,
      "height": 512,
      "compressed": true
    }
  ],
  "links": [
    {
      "id": 30,
      "name": "Website",
      "link": "https://example.com",
      "type": "website"
    }
  ],
  "authors": [
    {
      "id": 20,
      "name": "Example Author",
      "type": "team",
      "website": "https://example.com",
      "updated": 1710000000
    }
  ],
  "versions": [
    {
      "specs": {
        "id": -1,
        "minimum": 4096,
        "recommended": 8192
      },
      "targets": [
        {
          "version": "1.20.1",
          "id": 40,
          "name": "minecraft",
          "type": "game",
          "updated": 1710000000
        }
      ],
      "private": false,
      "id": 200,
      "name": "1.0.0",
      "type": "release",
      "updated": 1710000000
    }
  ],
  "installs": 1200,
  "plays": 3400,
  "tags": [
    {
      "id": 10,
      "name": "tech"
    }
  ],
  "featured": true,
  "refreshed": 1710000000,
  "notification": "",
  "rating": {
    "id": -1,
    "configured": false,
    "verified": false,
    "age": 7,
    "gambling": false,
    "frightening": true,
    "alcoholdrugs": false,
    "nuditysexual": false,
    "sterotypeshate": false,
    "language": false,
    "violence": true
  },
  "status": "success",
  "released": 1710000000,
  "provider": "ftb",
  "plays_14d": 120,
  "private": false,
  "id": 7000,
  "name": "Example FTB Pack",
  "type": "release",
  "updated": 1710000000
}
GET /public/ftb/{id}/{versionid} Get FTB version

Returns a version record for an FTB pack version.

curl --request GET 'https://api.modpacks.ch/public/ftb/238222/%7Bversionid%7D'

Parameters

NameInTypeDescription
id requiredpathinteger (int32)FTB pack ID.
versionid requiredpathinteger (int32)FTB version ID.

Responses

200 JSON object with status, id, name, type, parent, targets, specs, files, installs, plays, and refreshed. ModpackApiDataResponsePayloadVersionPayload
{
  "status": "success",
  "installs": 1200,
  "plays": 3400,
  "refreshed": 1710000000,
  "changelog": "Updated mods and configuration.",
  "parent": 100,
  "notification": "",
  "links": [
    {
      "id": 30,
      "name": "Website",
      "link": "https://example.com",
      "type": "website"
    }
  ],
  "targets": [
    {
      "version": "1.20.1",
      "id": 40,
      "name": "minecraft",
      "type": "game",
      "updated": 1710000000
    }
  ],
  "specs": {
    "id": -1,
    "minimum": 4096,
    "recommended": 8192
  },
  "files": [
    {
      "version": "1.0.0",
      "path": "mods/",
      "url": "https://example.com/example-mod.jar",
      "mirrors": [],
      "sha1": "1111111111111111111111111111111111111111",
      "size": 2048,
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "clientonly": false,
      "serveronly": false,
      "optional": false,
      "curseforge": {
        "project": "5000",
        "file": "6000"
      },
      "id": 6000,
      "name": "example-mod.jar",
      "type": "mod",
      "updated": 1710000000
    }
  ],
  "private": false,
  "id": 200,
  "name": "1.0.0",
  "type": "release",
  "updated": 1710000000
}

26 endpoints

CurseForge

Browse and search CurseForge projects through Modpacks.ch.

GET /public/curseforge/browse/{filter} Browse CurseForge modpacks

Returns a paged list of CurseForge modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/browse/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/browse/{filter}/{secondFilter} Browse CurseForge modpacks

Returns a paged list of CurseForge modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/browse/popular/%7BsecondFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/browse/{filter}/{secondFilter}/{thirdFilter} Browse CurseForge modpacks

Returns a paged list of CurseForge modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/browse/{filter}/{secondFilter}/{thirdFilter}/{sort} Browse CurseForge modpacks

Returns a paged list of CurseForge modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/browse/{filter}/{secondFilter}/{thirdFilter}/{sort}/{page} Browse CurseForge modpacks

Returns a paged list of CurseForge modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular/1'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.
page requiredpathstringOptional page number.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/search/{filter} Browse CurseForge modpacks

Returns a paged list of CurseForge modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/search/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/search/{filter}/{secondFilter} Browse CurseForge modpacks

Returns a paged list of CurseForge modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/search/popular/%7BsecondFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/search/{filter}/{secondFilter}/{thirdFilter} Browse CurseForge modpacks

Returns a paged list of CurseForge modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/search/popular/%7BsecondFilter%7D/%7BthirdFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/search/{filter}/{secondFilter}/{thirdFilter}/{sort} Browse CurseForge modpacks

Returns a paged list of CurseForge modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/search/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/search/{filter}/{secondFilter}/{thirdFilter}/{sort}/{page} Browse CurseForge modpacks

Returns a paged list of CurseForge modpacks. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/search/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular/1'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.
page requiredpathstringOptional page number.

Responses

200 JSON object with status, packs, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowsePacksPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "packs": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/mods/browse/{filter} Browse CurseForge mods

Returns a paged list of CurseForge mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/mods/browse/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/mods/browse/{filter}/{secondFilter} Browse CurseForge mods

Returns a paged list of CurseForge mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/mods/browse/popular/%7BsecondFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/mods/browse/{filter}/{secondFilter}/{thirdFilter} Browse CurseForge mods

Returns a paged list of CurseForge mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/mods/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/mods/browse/{filter}/{secondFilter}/{thirdFilter}/{sort} Browse CurseForge mods

Returns a paged list of CurseForge mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/mods/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/mods/browse/{filter}/{secondFilter}/{thirdFilter}/{sort}/{page} Browse CurseForge mods

Returns a paged list of CurseForge mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/mods/browse/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular/1'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.
page requiredpathstringOptional page number.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/mods/search/{filter} Browse CurseForge mods

Returns a paged list of CurseForge mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/mods/search/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/mods/search/{filter}/{secondFilter} Browse CurseForge mods

Returns a paged list of CurseForge mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/mods/search/popular/%7BsecondFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/mods/search/{filter}/{secondFilter}/{thirdFilter} Browse CurseForge mods

Returns a paged list of CurseForge mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/mods/search/popular/%7BsecondFilter%7D/%7BthirdFilter%7D'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/mods/search/{filter}/{secondFilter}/{thirdFilter}/{sort} Browse CurseForge mods

Returns a paged list of CurseForge mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/mods/search/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/mods/search/{filter}/{secondFilter}/{thirdFilter}/{sort}/{page} Browse CurseForge mods

Returns a paged list of CurseForge mods. Filters can include loader, game version, category, sort, and page segments.

curl --request GET 'https://api.modpacks.ch/public/curseforge/mods/search/popular/%7BsecondFilter%7D/%7BthirdFilter%7D/popular/1'

Parameters

NameInTypeDescription
filter requiredpathstringFirst filter, sort, category, loader, or game version.
secondFilter requiredpathstringOptional second filter.
thirdFilter requiredpathstringOptional third filter.
sort requiredpathstringOptional sort field.
page requiredpathstringOptional page number.

Responses

200 JSON object with status, mods, page, pages, and refreshed. ModpackApiDataResponsePayloadProviderBrowseModsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "mods": [
    {
      "id": 5000,
      "name": "Example Project",
      "updated": 1710000000,
      "synopsis": "A short project summary.",
      "type": "release",
      "art": [
        {
          "type": "square",
          "url": "https://example.com/art.png",
          "mirrors": []
        }
      ],
      "authors": [
        {
          "id": 20,
          "name": "Example Author",
          "type": "team",
          "website": "https://example.com",
          "updated": 1710000000
        }
      ],
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "provider": "curseforge",
      "installs": 1200,
      "links": null,
      "targets": null
    }
  ],
  "page": "1",
  "pages": 3
}
GET /public/curseforge/{id} Get CurseForge modpack

Returns a modpack record for a CurseForge project. Synopsis is the short CurseForge summary; description is provider-authored Markdown converted from CurseForge HTML and must be treated as untrusted content.

curl --request GET 'https://api.modpacks.ch/public/curseforge/238222'

Parameters

NameInTypeDescription
id requiredpathinteger (int32)CurseForge project ID.

Responses

200 JSON object with status, id, name, type, synopsis, description, art, links, authors, versions, installs, provider, and refreshed. ModpackApiDataResponsePayloadModpackPayload
{
  "synopsis": "A short pack summary.",
  "description": "## About this pack\n\nA longer provider-authored description in **Markdown**.",
  "art": [
    {
      "id": 300,
      "type": "square",
      "updated": 1710000000,
      "url": "https://example.com/art.png",
      "mirrors": [],
      "sha1": "0000000000000000000000000000000000000000",
      "size": 1024,
      "width": 512,
      "height": 512,
      "compressed": true
    }
  ],
  "links": [
    {
      "id": 30,
      "name": "Website",
      "link": "https://example.com",
      "type": "website"
    }
  ],
  "authors": [
    {
      "id": 20,
      "name": "Example Author",
      "type": "team",
      "website": "https://example.com",
      "updated": 1710000000
    }
  ],
  "versions": [
    {
      "specs": {
        "id": -1,
        "minimum": 4096,
        "recommended": 8192
      },
      "targets": [
        {
          "version": "1.20.1",
          "id": 40,
          "name": "minecraft",
          "type": "game",
          "updated": 1710000000
        }
      ],
      "private": false,
      "id": 200,
      "name": "1.0.0",
      "type": "release",
      "updated": 1710000000
    }
  ],
  "installs": 1200,
  "plays": 3400,
  "tags": [
    {
      "id": 10,
      "name": "tech"
    }
  ],
  "featured": true,
  "refreshed": 1710000000,
  "notification": "",
  "rating": {
    "id": -1,
    "configured": false,
    "verified": false,
    "age": 7,
    "gambling": false,
    "frightening": true,
    "alcoholdrugs": false,
    "nuditysexual": false,
    "sterotypeshate": false,
    "language": false,
    "violence": true
  },
  "status": "success",
  "released": 1710000000,
  "provider": "curseforge",
  "plays_14d": 120,
  "private": false,
  "id": 5000,
  "name": "Example CurseForge Pack",
  "type": "release",
  "updated": 1710000000
}
GET /public/curseforge/{id}/{versionid} Get CurseForge version

Returns a version record for a CurseForge modpack project file.

curl --request GET 'https://api.modpacks.ch/public/curseforge/238222/%7Bversionid%7D'

Parameters

NameInTypeDescription
id requiredpathinteger (int32)CurseForge project ID.
versionid requiredpathinteger (int32)CurseForge file ID.

Responses

200 JSON object with status, id, name, type, parent, targets, specs, files, installs, plays, refreshed, and notification. ModpackApiDataResponsePayloadVersionPayload
{
  "status": "success",
  "installs": 1200,
  "plays": 3400,
  "refreshed": 1710000000,
  "changelog": "Updated mods and configuration.",
  "parent": 100,
  "notification": "",
  "links": [
    {
      "id": 30,
      "name": "Website",
      "link": "https://example.com",
      "type": "website"
    }
  ],
  "targets": [
    {
      "version": "1.20.1",
      "id": 40,
      "name": "minecraft",
      "type": "game",
      "updated": 1710000000
    }
  ],
  "specs": {
    "id": -1,
    "minimum": 4096,
    "recommended": 8192
  },
  "files": [
    {
      "version": "1.0.0",
      "path": "mods/",
      "url": "https://example.com/example-mod.jar",
      "mirrors": [],
      "sha1": "1111111111111111111111111111111111111111",
      "size": 2048,
      "tags": [
        {
          "id": 10,
          "name": "tech"
        }
      ],
      "clientonly": false,
      "serveronly": false,
      "optional": false,
      "curseforge": {
        "project": "5000",
        "file": "6000"
      },
      "id": 6000,
      "name": "example-mod.jar",
      "type": "mod",
      "updated": 1710000000
    }
  ],
  "private": false,
  "id": 200,
  "name": "1.0.0",
  "type": "release",
  "updated": 1710000000
}
GET /public/curseforge/{id}/{versionid}/server/{platform} Download CurseForge server installer

Downloads the platform-specific server installer binary for a CurseForge modpack file.

curl --request GET 'https://api.modpacks.ch/public/curseforge/238222/%7Bversionid%7D/server/%7Bplatform%7D'

Parameters

NameInTypeDescription
id requiredpathinteger (int32)CurseForge project ID.
versionid requiredpathinteger (int32)CurseForge file ID.
platform requiredpathstringTarget platform: linux, mac, freebsd, or windows.

Responses

200 Binary installer stream. string (binary)
TVoAAA==
GET /public/curseforge/{id}/{versionid}/server/{arch}/{platform} Download CurseForge server installer

Downloads the platform-specific server installer binary for a CurseForge modpack file.

curl --request GET 'https://api.modpacks.ch/public/curseforge/238222/%7Bversionid%7D/server/%7Barch%7D/%7Bplatform%7D'

Parameters

NameInTypeDescription
id requiredpathinteger (int32)CurseForge project ID.
versionid requiredpathinteger (int32)CurseForge file ID.
arch requiredpathstringOptional architecture, such as arm or arm64.
platform requiredpathstringTarget platform: linux, mac, freebsd, or windows.

Responses

200 Binary installer stream. string (binary)
TVoAAA==
GET /public/curseforge/tags List CurseForge tags

Returns category tags for CurseForge modpacks or mods.

curl --request GET 'https://api.modpacks.ch/public/curseforge/tags'

Responses

200 JSON object with status, tags, and refreshed. ModpackApiDataResponsePayloadTagsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "tags": [
    {
      "id": 10,
      "name": "tech"
    }
  ]
}
GET /public/curseforge/mods/tags List CurseForge tags

Returns category tags for CurseForge modpacks or mods.

curl --request GET 'https://api.modpacks.ch/public/curseforge/mods/tags'

Responses

200 JSON object with status, tags, and refreshed. ModpackApiDataResponsePayloadTagsPayload
{
  "refreshed": 1710000000,
  "status": "success",
  "tags": [
    {
      "id": 10,
      "name": "tech"
    }
  ]
}

40 schemas

Response fields

Open a type to see the fields an endpoint can return.

ModpackApiDataResponsePayloadTagsPayload 3 fields
refreshed integer (int64)
status string
tags array<ModpackApiDataResponsePayloadTagPayload>
ModpackApiDataResponsePayloadTagPayload 2 fields
id unknown
name string
ModpackApiDataResponsePayloadPopularTagsPayload 5 fields
tags array<string>
total integer (int32)
limit integer (int32)
refreshed integer (int64)
status string
ModpackApiDataResponsePayloadPingPayload 2 fields
status string
reply string
ModpackApiDataResponsePayloadProviderModPayload 16 fields
id unknown
name string
type string
updated integer (int64)
synopsis string
description string
art array<ModpackApiDataResponsePayloadProviderArtPayload>
links array<ModpackApiDataResponsePayloadLinkPayload>
authors array<ModpackApiDataResponsePayloadProviderAuthorPayload>
tags array<ModpackApiDataResponsePayloadTagPayload>
versions array<ModpackApiDataResponsePayloadProviderFilePayload>
installs integer (int32)
status string
provider string
refreshed integer (int64)
timings array<unknown>
ModpackApiDataResponsePayloadProviderArtPayload 6 fields
type string
url string
mirrors array<string>
width integer (int32)
height integer (int32)
compressed boolean
ModpackApiDataResponsePayloadLinkPayload 4 fields
id integer (int32)
name string
link string
type string
ModpackApiDataResponsePayloadProviderAuthorPayload 5 fields
id unknown
name string
type string
website string
updated integer (int64)
ModpackApiDataResponsePayloadProviderFilePayload 15 fields
id unknown
name string
type string
updated integer (int64)
version string
path string
url string
mirrors array<string>
sha1 string
size integer (int32)
clientonly boolean
serveronly boolean
targets array<ModpackApiDataResponsePayloadProviderTargetPayload>
dependencies array<ModpackApiDataResponsePayloadDependencyPayload>
conflicts array<ModpackApiDataResponsePayloadDependencyPayload>
ModpackApiDataResponsePayloadProviderTargetPayload 5 fields
id unknown
name string
type string
version string
updated integer (int64)
ModpackApiDataResponsePayloadDependencyPayload 3 fields
id unknown
file unknown
required boolean
ModpackApiDataResponsePayloadPluginSearchPayload 4 fields
plugins array<integer (int32)>
total integer (int32)
limit integer (int32)
refreshed integer (int64)
ModpackApiDataResponsePayloadModMetadataLookupPayload 2 fields
status string
meta ModpackApiDataResponsePayloadModMetadataPayload
ModpackApiDataResponsePayloadModMetadataPayload 9 fields
fileId integer (int32)
name string
filename string
synopsis string
icon string
curseSlug string
curseProject integer (int32)
curseFile integer (int32)
stored integer (int64)
ModpackApiDataResponsePayloadModSearchPayload 5 fields
mods array<unknown>
total integer (int32)
limit integer (int32)
term string
refreshed integer (int64)
ModpackApiDataResponsePayloadProviderBrowsePacksPayload 5 fields
refreshed integer (int64)
status string
packs array<ModpackApiDataResponsePayloadProviderBrowseCardPayload>
page string
pages integer (int32)
ModpackApiDataResponsePayloadProviderBrowseCardPayload 12 fields
id unknown
name string
updated integer (int64)
synopsis string
type string
art array<ModpackApiDataResponsePayloadArtLightPayload>
authors array<ModpackApiDataResponsePayloadAuthorPayload>
tags array<ModpackApiDataResponsePayloadTagPayload>
provider string
installs integer (int32)
links array<ModpackApiDataResponsePayloadLinkPayload>
targets array<ModpackApiDataResponsePayloadProviderTargetPayload>
ModpackApiDataResponsePayloadArtLightPayload 3 fields
type string
url string
mirrors array<string>
ModpackApiDataResponsePayloadAuthorPayload 5 fields
id integer (int32)
name string
type string
website string
updated integer (int64)
ModpackApiDataResponsePayloadProviderBrowseModsPayload 5 fields
refreshed integer (int64)
status string
mods array<ModpackApiDataResponsePayloadProviderBrowseCardPayload>
page string
pages integer (int32)
ModpackApiDataResponsePayloadStatusMessagePayload 2 fields
status string
message string
ModpackApiDataResponsePayloadBrowsePayload 5 fields
refreshed integer (int64)
status string
packs array<ModpackApiDataResponsePayloadBrowsePackPayload>
page string
pages integer (int32)
ModpackApiDataResponsePayloadBrowsePackPayload 10 fields
id string
name string
provider string
synopsis string
type string
updated integer (int64)
art array<ModpackApiDataResponsePayloadArtLightPayload>
authors array<ModpackApiDataResponsePayloadAuthorPayload>
tags array<ModpackApiDataResponsePayloadTagPayload>
installs integer (int32)
ModpackApiDataResponsePayloadChangelogPayload 3 fields
status string
content string
updated integer (int64)
ModpackApiDataResponsePayloadModpackPayload 22 fields
id integer (int32)
name string
type string
updated integer (int64)
synopsis string
description string
art array<ModpackApiDataResponsePayloadArtPayload>
links array<ModpackApiDataResponsePayloadLinkPayload>
authors array<ModpackApiDataResponsePayloadAuthorPayload>
versions array<ModpackApiDataResponsePayloadMiniVersionPayload>
installs integer (int32)
plays integer (int32)
tags array<ModpackApiDataResponsePayloadTagPayload>
featured boolean
refreshed integer (int64)
notification string
rating ModpackApiDataResponsePayloadRatingPayload
status string
released unknown
provider string
plays_14d integer (int32)
private boolean
ModpackApiDataResponsePayloadArtPayload 10 fields
id integer (int32)
type string
updated integer (int64)
url string
mirrors array<string>
sha1 string
size integer (int32)
width integer (int32)
height integer (int32)
compressed boolean
ModpackApiDataResponsePayloadMiniVersionPayload 7 fields
id integer (int32)
name string
type string
updated integer (int64)
specs ModpackApiDataResponsePayloadRecommendPayload
targets array<ModpackApiDataResponsePayloadTargetPayload>
private boolean
ModpackApiDataResponsePayloadRecommendPayload 3 fields
id integer (int32)
minimum integer (int32)
recommended integer (int32)
ModpackApiDataResponsePayloadTargetPayload 5 fields
id integer (int32)
name string
type string
updated integer (int64)
version string
ModpackApiDataResponsePayloadRatingPayload 11 fields
id integer (int32)
configured boolean
verified boolean
age integer (int32)
gambling boolean
frightening boolean
alcoholdrugs boolean
nuditysexual boolean
sterotypeshate boolean
language boolean
violence boolean
ModpackApiDataResponsePayloadPackIdListPayload 5 fields
packs array<integer (int32)>
total integer (int32)
limit integer (int32)
refreshed integer (int64)
status string
ModpackApiDataResponsePayloadPopularPacksPayload 7 fields
packs array<integer (int32)>
total integer (int32)
type string
limit integer (int32)
status string
refreshed integer (int64)
days integer (int32)
ModpackApiDataResponsePayloadSearchPayload 5 fields
packs array<integer (int32)>
curseforge array<integer (int32)>
total integer (int32)
limit integer (int32)
refreshed integer (int64)
ModpackApiDataResponsePayloadShareLookupPayload 2 fields
status string
packid integer (int32)
ModpackApiDataResponsePayloadVersionPayload 16 fields
id integer (int32)
name string
type string
updated integer (int64)
status string
installs integer (int32)
plays integer (int32)
refreshed integer (int64)
changelog string
parent integer (int32)
notification string
links array<ModpackApiDataResponsePayloadLinkPayload>
targets array<ModpackApiDataResponsePayloadTargetPayload>
specs ModpackApiDataResponsePayloadRecommendPayload
files array<ModpackApiDataResponsePayloadFilePayload>
private boolean
ModpackApiDataResponsePayloadFilePayload 15 fields
id integer (int32)
name string
type string
updated integer (int64)
version string
path string
url string
mirrors array<string>
sha1 string
size integer (int32)
tags array<ModpackApiDataResponsePayloadTagPayload>
clientonly boolean
serveronly boolean
optional boolean
curseforge ModpackApiDataResponsePayloadCurseForgeReferencePayload
ModpackApiDataResponsePayloadCurseForgeReferencePayload 2 fields
project string
file string
ModpackApiDataResponsePayloadVersionModsPayload 16 fields
id integer (int32)
name string
type string
updated integer (int64)
status string
installs integer (int32)
plays integer (int32)
refreshed integer (int64)
changelog string
parent integer (int32)
notification string
links array<ModpackApiDataResponsePayloadLinkPayload>
targets array<ModpackApiDataResponsePayloadTargetPayload>
specs ModpackApiDataResponsePayloadRecommendPayload
files string
mods array<ModpackApiDataResponsePayloadModMetadataPayload>
ModpackApiDataResponsePayloadLoaderPayload 7 fields
status string
art array<ModpackApiDataResponsePayloadArtPayload>
loaders array<ModpackApiDataResponsePayloadLoaderVersionPayload>
id integer (int32)
name string
total integer (int32)
refreshed integer (int64)
ModpackApiDataResponsePayloadLoaderVersionPayload 5 fields
id integer (int32)
version string
game string
gameVersion string
type string