CurseForge Mods Scraper | Export Minecraft Mod Data CSV/JSON
Pricing
from $19.00 / 1,000 results
CurseForge Mods Scraper | Export Minecraft Mod Data CSV/JSON
Scrape Minecraft mods from CurseForge. Export mod details, downloads, authors, files, categories, game versions, and mod loader info as CSV, Excel, JSON, or XML.
Pricing
from $19.00 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share

🔥 CurseForge Mods Scraper
🚀 Export Minecraft mod data from CurseForge in seconds. Mod name, slug, downloads, categories, loader, supported MC versions, license, author, main file URL, screenshots, and the full description - straight to CSV, Excel, JSON, or XML.
🕒 Last updated: 2026-05-22 · 📊 23 fields per record · 150K+ mods available on CurseForge · All Minecraft versions and loaders
The CurseForge Mods Scraper turns the public CurseForge Minecraft Mods catalog into a clean, structured dataset. It fetches each mod's server-rendered detail page (no API key required, no Cloudflare key needed from you) and parses the embedded React Server Components payload to surface every field the public page exposes.
Coverage spans 52 official Minecraft mod categories (Adventure & RPG, Magic, Storage, Technology, Performance, Utility & QoL, Map and Information, Tinker's Construct, Create, Refined Storage, and more), 7 mod loaders (Forge, Fabric, NeoForge, Quilt, LiteLoader, Cauldron, Any), and every Minecraft release version from 1.7.10 up to the current 1.21.x line.
| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| 🎮 Modpack creators | Identify popular mods by loader and MC version |
| 🛠️ Launcher and tool developers | Mirror CurseForge metadata into your own DB |
| 📊 Data analysts | Track download counts, loader market share, license trends |
| 🎥 Content creators | Find the top-downloaded mods for a specific version before recording |
| 🏢 Server operators | Audit which mods are compatible with your server stack |
| 🤖 AI / ML teams | Build a corpus of mod descriptions and metadata |
📋 What the CurseForge Mods Scraper does
- Fetches the CurseForge
/minecraft/mc-modslisting or/search?search=...page with a real Chrome TLS fingerprint. - Extracts the slug of every mod the SSR page surfaces (up to 20 per query).
- Visits each mod's detail page and parses the embedded RSC payload for the full project record.
- Applies post-fetch filters for
categoryIds,gameVersions, andmodLoaderTypesagainst the surfaced set. - Flattens everything into a 23-field record with
imageUrlfirst anderrorlast. - Exports as CSV, Excel, JSON, JSONL, XML, RSS, or HTML.
💡 Why it matters: the official CurseForge API requires a private API key and the internal web API is hard-locked behind Cloudflare bot management. This actor uses the public detail pages directly - the data you'd see in a browser, without needing your own key or
cf_clearancecookie.
🎬 Full Demo
🚧 Coming soon.
⚙️ Input
| Field | Type | Required | Description |
|---|---|---|---|
| searchQuery | string | No | Free-text search (e.g. jei, magic, storage). Leave empty to pull the default popular listing. Prefill: jei. |
| maxItems | integer | No | Free users: 10. Paid users: up to 1,000,000. Per-query soft cap: ~20 mods (see caveat). Prefill: 10. |
| sortField | enum | No | Featured, Popularity, LastUpdated, Name, Author, TotalDownloads. Default: Popularity. |
| categoryIds | string[] | No | 52 official CurseForge categories: Adventure & RPG, API and Library, Magic, Storage, Technology, Performance, Utility & QoL, Cosmetic, Create, Tinker's Construct, Twilight Forest, Refined Storage, and more. |
| gameVersions | string[] | No | Free-text MC versions, e.g. 1.21.1, 1.20.1. |
| modLoaderTypes | string[] | No | Forge, Fabric, NeoForge, Quilt, LiteLoader, Cauldron, Any. |
Example 1 - search for JEI:
{"searchQuery": "jei","maxItems": 10,"sortField": "Popularity"}
Example 2 - magic mods on Forge for 1.20.1:
{"searchQuery": "magic","maxItems": 20,"sortField": "TotalDownloads","categoryIds": ["magic"],"gameVersions": ["1.20.1"],"modLoaderTypes": ["Forge"]}
⚠️ Good to Know: CurseForge only server-renders the first 20 mods of any listing; the rest is hydrated client-side via a Cloudflare-protected internal API. This scraper returns up to ~20 mods per query. To widen coverage, run multiple queries with different
searchQueryterms - that's the recommended workflow.categoryIds,gameVersions, andmodLoaderTypesare applied as post-fetch filters on the surfaced set so the input remains honest.
📊 Output
Each record is a flat object. imageUrl is always first, error is always last.
| Field | Type | Description |
|---|---|---|
🖼️ imageUrl | string | Mod avatar URL (CDN). |
📌 name | string | Display name of the mod. |
🔖 slug | string | URL-safe slug. |
🔗 url | string | Canonical CurseForge mod page. |
🆔 id | number | CurseForge project ID. |
📝 summary | string | Short tagline / one-liner. |
🏷️ primaryCategory | string | Top-level class (always Mods for this actor). |
🏷️ categories | string[] | All categories the mod belongs to. |
👤 author | string | Primary author username. |
👥 members | object[] | All project members with name and role. |
🧩 modLoader | string | Main file's mod loader (Forge / Fabric / NeoForge / Quilt / ...). |
🎮 gameVersion | string | Main file's primary MC version. |
🎮 gameVersions | string[] | All MC versions the main file targets. |
⬇️ downloadCount | number | Lifetime project download count. |
📜 licenseType | string | License name (e.g. MIT License, Custom License). |
📅 dateCreated | ISO 8601 | Project creation date. |
🔄 updateDate | ISO 8601 | Project last-update date. |
🔗 links | object | { website, wiki, issues, source, donation }. |
📦 mainFile | object | { id, fileName, displayName, fileLength, releaseType, primaryGameVersion, gameVersions, modLoader, dateCreated, dateModified }. |
🖼️ screenshots | string[] | Screenshot image URLs. |
📄 description | string | Full HTML description from the project page. |
🕒 scrapedAt | ISO 8601 | When this row was scraped. |
❌ error | string|null | Per-record error (null on success). |
Sample record (JEI):
{"imageUrl": "https://media.forgecdn.net/avatars/thumbnails/29/69/256/256/635838945588716414.jpeg","name": "Just Enough Items (JEI)","slug": "jei","url": "https://www.curseforge.com/minecraft/mc-mods/jei","id": 238222,"summary": "View Items and Recipes","primaryCategory": "Mods","categories": ["Map and Information", "API and Library"],"author": "mezz","members": [{ "name": "mezz", "role": "Owner" },{ "name": "CFGrafanaStats", "role": "Mascot" }],"modLoader": "NeoForge","gameVersion": "1.21.1","gameVersions": ["1.21.1", "1.21"],"downloadCount": 573555876,"licenseType": "MIT License","dateCreated": "2015-11-23T23:00:41.000Z","updateDate": "2026-05-18T13:29:37.000Z","mainFile": {"fileName": "jei-1.21.1-neoforge-19.27.0.336.jar","displayName": "19.27.0.336 for NeoForge 1.21.1","fileLength": 1529192,"modLoader": "NeoForge"},"scrapedAt": "2026-05-22T23:22:20.754Z","error": null}
Sample record (Distraction Free Recipes):
{"imageUrl": "https://media.forgecdn.net/avatars/thumbnails/1145/593/256/256/638711642517202621.png","name": "Distraction Free Recipes (EMI / REI / JEI)","slug": "distraction-free-recipes","id": 1167848,"summary": "Automatically hides the recipe viewer when not searching.","categories": ["Utility & QoL", "Performance", "Cosmetic"],"author": "Txni","modLoader": "Fabric","gameVersion": "1.21.1","downloadCount": 17212679,"licenseType": "Custom License"}
✨ Why choose this Actor
| ✨ Feature | What it gets you |
|---|---|
| 🔓 No API key required | You don't need a CurseForge x-api-key or a cf_clearance cookie. |
| 🛡️ Real Chrome TLS fingerprint | Uses impit so detail pages return 200, not 403. |
| 📦 Full project record | Authors, members, main file, screenshots, HTML description, license. |
| 🧩 Mod-only scope | Locked to classId=6 (Mods). Modpacks, resourcepacks, shaders excluded. |
| 📊 23 fields per record | Far beyond what the CurseForge UI shows on a single screen. |
| 🎯 Honest pagination | The README and input description make the per-query cap clear up front. |
📈 How it compares to alternatives
| Approach | Free? | Fields | Coverage | Effort |
|---|---|---|---|---|
| Manually copy from curseforge.com | ✅ | ~5 | Browsing limit | Hours of clicking |
| CurseForge Core API | ❌ (requires key + approval) | Full | Full | API key application + integration code |
| Internal web API | ❌ (Cloudflare-locked) | Full | Full | cf_clearance reverse-engineering |
| CurseForge Mods Scraper | ✅ ($5 trial credit) | 23 | ~20 per query, run many queries | 1 click |
🚀 How to use
- Sign up. Create a free Apify account w/ $5 credit.
- Open the CurseForge Mods Scraper page.
- Set inputs. Type a
searchQueryand pick a sort field. Optionally addcategoryIds,gameVersions,modLoaderTypes. - Run. Click Start. Free users get 10 items, paid users up to 1,000,000 (in batches of ~20 per query).
- Export. Download the dataset as CSV, Excel, JSON, JSONL, XML, RSS, or HTML.
💼 Business use cases
🎒 Modpack curation
Pull the top mods for Minecraft 1.20.1 Forge by search topic - performance, magic, storage, technology - and seed your modpack manifest with the mainFile info per row.
📊 Catalog analytics
Track download growth over time across loaders and MC versions. Run on a schedule and pipe to BigQuery / Snowflake.
🧩 Launcher / store integration
Mirror a curated slice of the CurseForge catalog into your own launcher or store front. No API key approval needed.
🤖 AI dataset / RAG corpus
Index the description HTML for an AI assistant that recommends mods, compares alternatives ("Forge vs Fabric versions of X"), or explains mod compatibility.
🔌 Automating CurseForge Mods Scraper
- Make (Integromat) - schedule a weekly pull, push CSV to Google Sheets.
- Zapier - Slack alert when a tracked mod hits a download milestone.
- Slack - daily digest of newest mods for a specific MC version.
- Airbyte - sync the dataset into your warehouse.
- GitHub Actions - commit JSON snapshots to a repo on a cron.
- Google Drive / Dropbox / S3 - drop the export into a folder.
- Webhooks - POST dataset URLs anywhere.
🌟 Beyond business use cases
🔬 Research
Compare CurseForge and Modrinth catalogs. Study which mods exist on both, which are exclusive, license distribution, author overlap.
🎮 Personal projects
Discord bots, personal launchers, modpack recommendation tools, "best of 2026" Reddit posts.
🤝 Non-profit / education
Use the dataset to teach data analysis with a topic students actually care about.
🧪 Experimentation
Train embeddings on mod descriptions. Cluster by category overlap. LLM-generate modpack themes from a filtered set.
🤖 Ask an AI assistant about this scraper
Paste this into ChatGPT, Claude, Perplexity, or Copilot:
"Help me design a series of input queries for the ParseForge CurseForge Mods Scraper to build a 200-mod dataset of popular Forge 1.20.1 magic and tech mods, knowing the scraper returns up to 20 results per query."
❓ Frequently Asked Questions
🔑 Do I need a CurseForge API key?
No. The actor uses the public detail pages directly. No x-api-key and no cf_clearance cookie are required from you.
🤔 Why does each query return at most ~20 mods?
CurseForge only server-renders the first 20 mods on any listing. The remaining results are hydrated client-side via a Cloudflare-protected internal API that hard-blocks every non-browser client. To pull more, run multiple queries with different searchQuery terms.
🎮 Does it scrape modpacks, resourcepacks, or shaders?
No. Scope is locked to classId=6 (Mods only). Modpacks (4471), resourcepacks (12), shaders, and addons categories are excluded by design.
🧩 What loaders are supported?
Forge, Fabric, NeoForge, Quilt, LiteLoader, Cauldron, and Any.
🎯 What MC versions does it support?
Every version CurseForge tags, from 1.7.10 (legacy) through the current 1.21.x line. Pass them as strings like 1.21.1.
📦 Does the output include a download URL?
Yes. mainFile.downloadUrl is included where CurseForge surfaces it on the page, alongside fileName, displayName, and fileLength.
📊 How many fields per record?
23 fields. See the Output section.
🆓 What do free users get?
Up to 10 items per run on a $5 trial credit. Paid users can run as many queries as needed and pull up to 1,000,000 items total.
🔄 How often is the data refreshed?
Live on every run. The actor fetches CurseForge in real time.
🌍 Does this use proxies?
The actor uses impit (Chrome TLS fingerprint) on Apify infrastructure. No residential proxies required for detail-page fetches.
⚠️ Is this affiliated with CurseForge or Overwolf?
No. This is an independent tool. It is not endorsed by or affiliated with Overwolf or CurseForge.
📥 What export formats are available?
CSV, Excel (XLSX), JSON, JSONL, XML, RSS, and HTML.
🔌 Integrate with any app
Apify natively integrates with Make, Zapier, n8n, Slack, Discord, Airbyte, Keboola, Google Drive, Google Sheets, Dropbox, AWS S3, GitHub, GitLab, generic webhooks, and the Apify API / SDK (Python, JavaScript, CLI).
🔗 Recommended Actors
| Actor | What it does |
|---|---|
| Modrinth Mods Scraper | Pull the same kind of data from Modrinth's official v2 API. |
| Steam Store Scraper | Game prices, reviews, and metadata from Steam. |
| GitHub Repo Scraper | Repo metadata, stars, releases, contributors. |
| itch.io Games Scraper | Indie game listings, tags, and prices from itch.io. |
| OurAirports Database Scraper | Full global airport reference dataset. |
💡 Pro Tip: browse the complete ParseForge collection for more catalog and marketplace scrapers.
🆘 Need Help? Open our contact form
⚠️ Disclaimer: this is an independent tool, not affiliated with Overwolf, CurseForge, or Mojang. Only publicly available data from the CurseForge website is collected. Respect the licenses of the mods you download.