Modrinth Scraper: Minecraft Mods, Plugins & Versions
Pricing
Pay per event
Modrinth Scraper: Minecraft Mods, Plugins & Versions
Scrape Modrinth: Minecraft mods, plugins, shaders, resource packs and modpacks with downloads, followers, categories, licenses and per-version file links. Filter by game version and loader. Searches 161,000+ projects. Export CSV, Excel, JSON. No login or API key.
Pricing
Pay per event
Rating
0.0
(0)
Developer
RecordsData
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Modrinth Scraper: Minecraft Mods, Plugins & Versions
Modrinth Scraper exports Minecraft mod, plugin, shader, resource pack, data pack, modpack and server listing data from modrinth.com: title, author, downloads, followers, categories, license, game versions, loaders, client and server side, plus one row per released version with file hashes and changelog. Filter by category, game version, loader, side, license, author, downloads and dates. Up to 72 fields per row. Export CSV, Excel, JSON or XML. No login, no API key. Priced from $10 per 1,000 search rows.
Modrinth lists 161,305 projects as of 2026-10-03 (76,721 of them mods), and this Modrinth scraper turns any slice of that catalog into a dataset. It reads Modrinth's official public API, so download and follower counts are the exact registry numbers at the moment you run it. A search is no longer capped at 10,000 rows.
๐ What does Modrinth Scraper do?
Use it to find the most downloaded Fabric or NeoForge mods for Minecraft 1.21.4, client-only or server-only mods, Minecraft Java server listings, full project records for slugs such as sodium, and the version history per mod with changelog, SHA-1 and SHA-512 hashes and dependencies. Schedule the same query weekly to track download growth.
๐ What data can you extract from Modrinth?
Each row has up to 72 fields (71 data columns plus error). Fields that do not apply are omitted.
| Group | Fields | Row types |
|---|---|---|
| Identity | recordType, projectId, slug, title, projectType, url, scrapedAt | all |
| People | author, organization, teamMembers (usernames and roles) | search, project |
| Text | description, body (up to 20,000 characters) | search, project |
| Taxonomy | categories (no loaders), additionalCategories, loaders, environment | search, project |
| Popularity | downloads, followers | all |
| Compatibility | clientSide, serverSide, latestGameVersion, latestReleaseVersion, gameVersions (latest 20), gameVersionCount | search, project |
| License | license, licenseName, licenseUrl | search, project |
| Status | projectStatus, monetizationStatus, versionCount, latestVersionId | project |
| Links and media | sourceUrl, issuesUrl, wikiUrl, discordUrl, donationUrls, iconUrl, galleryUrls | project |
| Dates | dateCreated, dateApproved, dateModified | search, project |
| Server listings | serverAddress, serverRegion, serverCountry, serverLanguages, serverPlayersOnline, serverPlayersMax, serverVersion, serverVerifiedPlays2w, serverVerifiedPlays4w, serverCheckedAt | server rows |
| Versions | projectSlug, projectTitle, versionId, name, versionNumber, versionType, versionStatus, featured, changelog (up to 3,000 characters), datePublished | version rows |
| Files | fileName, fileUrl, fileSizeBytes, fileSha1, fileSha512, fileCount, dependencyCount, dependencies | version rows |
๐งพ Sample output of the Modrinth scraper
A trimmed search row for the Sodium mod from the 2026-10-10 verification run:
{"recordType": "search-hit","slug": "sodium","projectType": "mod","categories": ["optimization"],"loaders": ["fabric", "neoforge", "quilt"],"url": "https://modrinth.com/mod/sodium"}
categories no longer lists loaders; use loaders.
๐ฐ How much does it cost to scrape Modrinth?
Pay per event. You pay only for rows saved to your dataset. Error rows, "project not found" rows, invalid-input runs and empty searches are never charged. Server details, team info and extra filters add no charge.
| Event | What is billed | Free tier | Bronze | Silver | Gold and above |
|---|---|---|---|---|---|
search-record | One project or server listing from search | $0.01125 | $0.01031 | $0.010 | $0.010 |
project-record | One full project record per slug | $0.015 | $0.01406 | $0.01313 | $0.01219 |
version-record | One released version row | $0.010 | $0.010 | $0.010 | $0.010 |
Worked examples at the Free tier: 1,000 search rows cost $11.25. One project record for sodium plus 100 version rows costs $0.015 + $1.00 = $1.015. At Silver, 1,000 search rows cost $10. Set a maximum charge per run and the actor stops cleanly when it is reached. The Pricing tab is authoritative.
๐ How to scrape Modrinth in 3 steps
- Open the actor and choose a project type (mod, plugin, shader, resource pack, data pack, modpack or Minecraft Java server). Optionally set categories, game versions, loaders, client and server side, or license.
- Choose how to sort (downloads, followers, newest, recently updated, relevance) and set Max Items. Optionally add project slugs, team info and version history.
- Click Start, then download the dataset as CSV, Excel, JSON or XML.
โ๏ธ Input
| Field | Type | Default | Meaning |
|---|---|---|---|
includeSearch | boolean | true | Scrape the catalog by search or browse |
searchQuery | string | empty | Keyword; empty browses everything of the chosen type |
projectType | select | mod | mod, plugin, datapack, resourcepack, shader, modpack, minecraft_java_server |
categories, categoriesMatch | list, select | empty, all | Categories; all needs every one, any needs one |
gameVersions, gameVersion | list, string | empty | Minecraft versions (any of); the single field still works |
loaders, loader | list, select | empty | Any of 29 loaders, read live from Modrinth; the single field still works |
clientSide, serverSide | select | any | required, optional, unsupported or unknown |
license, openSourceOnly | string, boolean | empty, false | SPDX license id; open source projects only |
author | string | empty | Author username, case-insensitive |
minDownloads, minFollowers | integer | 0 | Minimum counts |
updatedSince, createdSince | string | empty | YYYY-MM-DD, today, yesterday, 7d, 4w, 3m, 1y |
sortBy | select | downloads | downloads, follows, newest, updated, relevance |
includeServerInfo | boolean | false | Server address, region, languages, players, plays |
projectSlugs | list | empty | Slugs or URLs for full project records |
includeTeam | boolean | false | Slug mode: author, organization and team members with roles |
includeVersions | boolean | false | Add one row per release for each slug |
maxVersionsPerProject | integer | 50 | Cap on version rows per slug |
versionGameVersions, versionLoaders, versionTypes | list | empty | Version rows only: game versions, loaders, release, beta or alpha |
maxItems | integer | 10 | Cap on billable rows; free users limited to 10 |
Values inside one list are combined with OR; different filters with AND. An unknown category, loader, game version or date stops the run with a clear message and no charge.
{"projectType": "mod","categories": ["optimization"],"loaders": ["fabric", "neoforge"],"gameVersions": ["1.21.4", "1.20.1"],"clientSide": "required","serverSide": "unsupported","sortBy": "downloads","maxItems": 10}
๐ฆ Output
Rows go to the default dataset with three views: Overview, Versions and Servers. A search runs until maxItems or the end of the results; the old 10,000-row ceiling is gone (a 10,300-row search was checked locally, the largest cloud run so far had 501 rows). A search with no matches finishes as SUCCEEDED with the message "No results matched your search filters. Nothing was charged." In slug mode, after at least 25 failed slugs the rest of the list is skipped.
โ๏ธ Modrinth scraper vs alternatives
Store pages read on 2026-10-10.
| Actor | Price per 1,000 rows | Filters shown in listing |
|---|---|---|
| This actor | $10 to $11.25 by tier | Category, version, loader, side, license, dates |
| parseforge/modrinth-mods-scraper | $35.50 | Category (AND), loader (OR); rest not stated |
| fortuitous_pirate/modrinth-scraper | $12.50 | Loader, game version; rest not stated |
Version history, server listings and team info are not stated in either rival listing. Our search row is about 3.2 to 3.6 times cheaper than parseforge and 10 to 20 percent below fortuitous_pirate. A third rival, crawlerbros/modrinth-scraper, returned 404 and is not compared. Our project record costs $0.01219 to $0.015, so check the Pricing tab for your tier.
๐งฉ Use cases
Mod analytics, modpack curation, server discovery, content production ("best shaders for 1.21" articles with real download counts) and ecosystem research by diffing weekly snapshots.
๐ Run Modrinth Scraper via API and integrations
curl -X POST "https://api.apify.com/v2/acts/RecordsData~modrinth-minecraft-mods-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"projectType":"shader","sortBy":"downloads","maxItems":10}'
Use the Apify API, the JavaScript or Python client, schedules and webhooks, or connect the dataset to Zapier, Make, n8n and Google Sheets.
๐ Is it legal to scrape Modrinth?
The actor reads Modrinth's official public API, which serves public project metadata, and sends a user agent with a contact address as Modrinth asks. It collects project data, not private user data. You are responsible for using the output in line with Modrinth's terms and the license of each project.
๐ค Modrinth Scraper MCP server for AI agents
AI agents can call this Actor through the Apify MCP server at https://mcp.apify.com?tools=RecordsData/modrinth-minecraft-mods-scraper. The URL loads only this Actor as a tool.
Config for Claude Desktop, Cursor, VS Code or any client with remote MCP:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=RecordsData/modrinth-minecraft-mods-scraper"}}}
Example agent prompt:
Use the Modrinth Scraper to list the 10 most downloaded client-only Fabric mods in the optimization category for Minecraft 1.21.4 with their downloads, followers and license.
Tool description: "Scrape Modrinth Minecraft mods, plugins, shaders, resource packs, data packs, modpacks and server listings with downloads, followers, categories, license and loaders, plus version history per project. Filter by category, game version, loader, client and server side, license and dates."
Choose this tool when an agent needs current Modrinth download counts, game versions, loaders or version history. It takes the same fields as the Input table.
โ Frequently asked questions
How do I scrape Modrinth mods without coding?
Open the Modrinth Scraper on Apify, pick a project type such as mod, shader or plugin, set Max Items and click Start. No login or API key is needed because the actor reads Modrinth's official public API. Download the dataset as CSV, Excel, JSON or XML, or fetch it through the Apify API.
Can I filter Modrinth mods by Minecraft version and loader?
Yes. In the Modrinth Scraper set gameVersions (or the older gameVersion) and loaders (or loader). The loader list has 29 values, read live from Modrinth. Filters are applied on Modrinth's side, so you get a ranked list such as the most downloaded Fabric mods for one Minecraft version.
How do the category, loader and game version filters combine (AND or OR)?
Values inside one list are combined with OR: loaders fabric and neoforge match either one. Different filters are combined with AND. Categories default to AND (categoriesMatch set to all); set it to any to accept projects with at least one of them. An unknown value stops the run before any request.
How do I find client-only or server-only mods?
Use clientSide and serverSide, each with required, optional, unsupported or unknown. Client required plus server unsupported gives client-only mods, which were 16,048 of 77,055 mods on 2026-10-10. Server required plus client unsupported gives server-only mods. The values come back on every row as clientSide and serverSide.
Can the Modrinth Scraper list Minecraft servers?
Yes. Set projectType to minecraft_java_server. Switch on includeServerInfo to add the address, region, country, languages, players online and maximum, server software and verified plays over two and four weeks. It adds no extra charge: server rows bill as search-record, the same event as any other search row.
Can I get the project team and organization?
Yes, in slug mode. Add slugs to projectSlugs and switch on includeTeam. Each record then gets the author, the organization name and teamMembers with usernames and roles. For projects with no Owner role, such as Sodium and Lithium, the author is the Project Lead and the organization is CaffeineMC. It adds no extra charge.
Does the Modrinth Scraper get download counts for each version?
Yes. Turn on includeVersions and add project slugs such as sodium. Each version row has its own download count, release channel, game versions, loaders, file name, direct file URL, size and hashes. maxVersionsPerProject caps the version rows per slug and defaults to 50.
Can I filter version history by game version, loader and release type?
Yes. Use versionGameVersions and versionLoaders to keep only matching versions (applied on Modrinth's side), and versionTypes with release, beta or alpha to choose release channels. In a verified run with Fabric, 1.21.4 and release only, every version row matched all three. They do not apply to search rows.
Why did my Modrinth Scraper run return 0 results?
The filters matched nothing on Modrinth, for example a minimum downloads value no mod reaches. The run still succeeds, shows the message "No results matched your search filters. Nothing was charged.", and bills nothing. Loosen the filters or keyword and retry. A misspelled category, loader, game version or date fails fast instead, with a message listing valid values.
Am I charged for errors or unknown slugs in the Modrinth Scraper?
No. In the Modrinth Scraper, error rows and "project not found" rows are saved without a billable event, empty searches are never charged, and a run stopped by invalid input costs nothing. You pay only for rows saved to your dataset: search rows, full project records and version rows, each at the event price shown on the Pricing tab.
How many Modrinth projects can one scraper run return?
More than 10,000. The old per-query cap is gone: the Modrinth Scraper keeps paging until maxItems or the end of the results. A 10,300-row search was delivered in full in a local test, with no duplicates. The largest cloud run so far had 501 rows, so set a maximum charge per run for safety.
Why did the column order and the categories field change?
Every row now follows one fixed column order, so some columns, for example iconUrl, sit in new positions in CSV and Excel files; names and meanings are unchanged. Also, categories no longer includes loader names: for Sodium it is now ["optimization"] and loaders holds ["fabric","neoforge","quilt"].
How current is the Modrinth Scraper data?
The Modrinth Scraper reads Modrinth's official public API live on every run, so download and follower counts are the exact registry numbers at the moment you start it. Each row includes a scrapedAt timestamp, and project rows carry dateCreated and dateModified.
Can I try the Modrinth Scraper for free?
Yes. Free Apify users get a 10-row preview per run, enough to check the fields, filters and output format. Paid Apify plans remove that limit and also get lower per-row event prices, for example $0.010 per search row from the Silver tier instead of $0.01125.
๐งญ Want related data? Other RecordsData scrapers
- Steam Charts Scraper for game player counts.
- Epic Games Store Scraper for game listings and prices.
- OpenCritic Games Scraper for game review scores.
๐ฌ Support
Found a bug or a missing field? Open the Issues tab on this actor's page, or write to contact.punkrecordsdata@gmail.com.
Last updated: 2026-10-11