Discover/CurseForge API
live

CurseForge APIcurseforge.com

Access CurseForge game mods, modpacks, files, and dependency graphs via a structured API. Search projects, list categories, and fetch version details.

Endpoint health
verified 7d ago
list_games
get_project_relations
search_projects
get_project_details
get_project_files
6/6 passing latest checkself-healing
Endpoints
6
Updated
22d ago

What is the CurseForge API?

This API exposes 6 endpoints covering CurseForge's full project catalog — games, mods, modpacks, texture packs, and their associated files and dependencies. Use search_projects to find mods across Minecraft, World of Warcraft, The Sims 4, and dozens of other supported games, filtering by category, sort order, and game version. Each response returns structured fields including download counts, mod loaders, project slugs, and canonical URLs.

Try it

No input parameters required.

api.parse.bot/scraper/f806094d-902d-4b71-ae23-e90d3dfe4ea5/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/f806094d-902d-4b71-ae23-e90d3dfe4ea5/list_games' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace curseforge-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: CurseForge SDK — browse games, search mods, inspect details and files."""
from parse_apis.curseforge_scraper_api import CurseForge, Sort, RelationType, ProjectNotFound

client = CurseForge()

# Browse available games on CurseForge
for game in client.games.list(limit=3):
    print(game.name, game.slug, game.mod_count)

# Search for popular magic mods in Minecraft
project = client.projectsummaries.search(
    query="botania", sort_by=Sort.DOWNLOADS, limit=1
).first()

if project:
    print(project.name, project.author, project.description)

    # Navigate to full project details from a search result
    try:
        detail = project.details()
        print(detail.name, detail.downloads, detail.license)
        print(detail.mod_loaders, detail.game_versions[:3])
    except ProjectNotFound as exc:
        print(f"Project gone: {exc.slug}")

    # List available files for this project
    for f in project.files.list(limit=3):
        print(f.name, f.version, f.loader, f.size)

    # Check what depends on this project
    for rel in project.relations.list(relation_type=RelationType.DEPENDENTS, limit=3):
        print(rel.name, rel.downloads, rel.updated)

# List mod categories for filtering
for cat in client.categories.list(limit=5):
    print(cat.name, cat.slug)

print("exercised: games.list / projectsummaries.search / details / files.list / relations.list / categories.list")
All endpoints · 6 totalmissing one? ·

List all games supported on CurseForge with their mod counts and total download stats. Returns all games in a single page. Each game has a slug usable as input to other endpoints.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "games": "array of game objects with name, slug, url, thumbnail, mod_count, and download_count",
    "total": "integer total number of games"
  },
  "sample": {
    "data": {
      "games": [
        {
          "url": "https://www.curseforge.com/minecraft",
          "name": "Minecraft",
          "slug": "minecraft",
          "mod_count": "284.5K",
          "thumbnail": "https://media.forgecdn.net/game-box-art/432_bc6c42ce-5dd9-496a-a5cd-a51cf3584008.jpg",
          "download_count": "115.1B"
        }
      ],
      "total": 125
    },
    "status": "success"
  }
}

About the CurseForge API

Browsing Games and Categories

list_games returns every game CurseForge supports, with each game object including a slug, thumbnail, and aggregate download stats. That slug is the required input for most other endpoints. Before running a search, call get_categories with a game and class (e.g., minecraft / mc-mods) to retrieve valid slug values for the category filter — passing an invalid category slug to search_projects will silently return unfiltered results.

Searching and Inspecting Projects

search_projects accepts up to six parameters: game, class, query, sort_by, category, and page. Results come back in pages of up to 20 items, each containing a project's name, slug, description, author, and stats such as total downloads. The sort_by field accepts relevancy, popularity, creation, updated, name, or downloads. To get the full project description as HTML, call get_project_details with the same game, class, and the slug from the search result. The details object includes game_versions, mod_loaders, license, project_id, and categories.

Files and Dependency Graph

get_project_files returns every downloadable release for a project. Each file object includes type (e.g., release or beta), version, loader, size, date, and per-file downloads. This is useful for resolving which file matches a specific Minecraft version and loader (Forge, Fabric, NeoForge). get_project_relations maps the dependency graph in both directions: set relation_type to dependencies to see what a mod requires, or dependents to see which other mods list it as a requirement. Each relation object carries the related project's slug, thumbnail, downloads, and updated timestamp.

Reliability & maintenanceVerified

The CurseForge API is a managed, monitored endpoint for curseforge.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when curseforge.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official curseforge.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
7d ago
Latest check
6/6 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a mod compatibility checker that resolves dependencies for a given modpack using get_project_relations.
  • Track download growth over time by periodically calling search_projects sorted by downloads for a specific game.
  • Generate a mod catalog for a launcher app by paginating search_projects across all categories returned by get_categories.
  • Identify the latest stable release for a mod targeting a specific version and loader via get_project_files.
  • Index all CurseForge-supported games and their mod counts using the stats field from list_games.
  • Map the full dependency tree of a large modpack by recursively calling get_project_relations with relation_type=dependencies.
  • Filter texture packs by category and sort by updated to surface recently maintained resources for a game.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does CurseForge have an official developer API?+
Yes. CurseForge provides an official REST API available at https://docs.curseforge.com. It requires an API key obtained through their developer portal and has its own usage terms. This Parse API provides access to CurseForge project data without requiring a CurseForge API key.
What does `get_project_details` return beyond what `search_projects` already includes?+
search_projects returns summary fields — name, slug, author, thumbnail, and aggregate stats. get_project_details adds description_html (the full formatted project description), license, project_id, game_versions, mod_loaders, and the complete categories list. You need the game, class, and slug from a search result to call it.
Are user comments, reviews, or ratings for projects available?+
Not currently. The API covers project metadata, file listings, and dependency relations. You can fork this API on Parse and revise it to add an endpoint that fetches comment or review data from a project page.
How does pagination work for `search_projects` and `get_project_relations`?+
Both endpoints return up to 20 results per page. Use the page parameter (starting at 1 or 0 depending on your test) to step through results. The total field in the response reflects the count of items on the current page, not the total across all pages, so you cannot determine total project count from a single call.
Can I retrieve a project's changelog or patch notes for individual files?+
Not currently. get_project_files returns per-file metadata including name, type, version, loader, size, date, and downloads, but not changelog text. You can fork this API on Parse and revise it to add a file changelog endpoint.
Page content last updated . Spec covers 6 endpoints from curseforge.com.
Related APIs in Developer ToolsSee all →
thunderstore.io API
Browse and search thousands of mods across Thunderstore gaming communities. Retrieve mod metadata, version history, dependencies, download URLs, and decompiled source code files for any listed mod.
minecraftservers.org API
Search and discover Minecraft servers with real-time player counts, server details, and statistics directly from minecraftservers.org. Find the perfect server by filtering results and viewing comprehensive information like gameplay modes, player capacity, and server ratings.
topg.org API
Discover and compare Minecraft servers by version, type, location, and player count, plus track voting scores and historical player data to find the best server for your gameplay. Search across multiple game categories, view newly launched servers, and submit your own server votes to help others discover quality gaming communities.
planetminecraft.com API
Find and explore Minecraft servers (Java and Bedrock) by searching through thousands of options with detailed stats, player counts, and descriptions. Discover trending, top-voted, and newly added servers to find your next gaming community.
gamepedia.com API
Search gaming wikis across Fandom to find guides, maps, strategies, and game information, then retrieve detailed page content in multiple formats along with images and metadata. Discover trending articles, browse categories, and navigate game-specific knowledge bases to get the gaming data you need.
wikia.com API
Extract structured data from Fandom (formerly Wikia) gaming wikis. Search pages, retrieve full page content, list category members, and convert wiki pages into organized guides with infoboxes, section breakdowns, and clean text.
itch.io API
itch.io API
funpay.com API
Browse and monitor gaming marketplace listings and prices on FunPay.com. Search for games and categories, view current listings and pricing, explore the full game directory alphabetically, and look up seller profiles to research reputation and active offers.