# Modrinth Mods Scraper (`parseforge/modrinth-mods-scraper`) Actor

Search the Modrinth catalog of Minecraft mods, modpacks, resource packs, shaders, plugins and data packs. Returns slugs, authors, downloads, follows, supported versions, mod loaders, license, gallery and more.

- **URL**: https://apify.com/parseforge/modrinth-mods-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Developer tools, Business, Automation
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $26.62 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🧱 Modrinth Mods Scraper

> 🚀 **Export the entire Modrinth mod catalog in seconds.** Pull mod metadata, download stats, loaders, supported Minecraft versions, license, gallery, and the latest JAR file URL - straight to CSV, Excel, JSON, or XML.

> 🕒 **Last updated:** 2026-05-22 · **📊 34 fields** per record · **40K+ mods** indexed · **All Minecraft versions 1.0 → 26.1.x**

The Modrinth Mods Scraper turns the public [Modrinth](https://modrinth.com) catalog into a clean, structured dataset. It calls the official Modrinth v2 API (`api.modrinth.com/v2`) to enumerate every Minecraft mod that matches your filters, then fetches the full project record and latest version so every row ships with the real `.jar` download URL, license, author, and gallery.

Coverage spans the full Modrinth mod surface: 19 mod categories (adventure, magic, optimization, technology, worldgen, library, and more), 24 loaders (Fabric, Forge, NeoForge, Quilt, LiteLoader, Bukkit, Spigot, Paper, Velocity, Sponge, and the rest), and 96 Minecraft release versions from 1.0 up to the current 26.1.x line. Filters combine with AND so you can isolate, say, every Fabric optimization mod that supports 1.21.1.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| 🎮 Modpack creators and curators | Bulk-discover mods by category, loader, and MC version |
| 🛠️ Launcher and tooling devs | Mirror the catalog into your own DB or build a recommender |
| 📊 Data analysts and researchers | Track download trends, loader market share, license distribution |
| 🎥 YouTubers and streamers | Find the top-N mods for a Minecraft version before recording |
| 🏢 Server operators | Audit which mods are server-side compatible and on what licenses |
| 🤖 AI / ML teams | Build a corpus of mod descriptions, dependencies, and metadata |

### 📋 What the Modrinth Mods Scraper does

- Calls the official Modrinth v2 search API with your filters (categories, loaders, game versions, sort).
- Resolves each result to its full project record for the body, gallery, license, donation, issue tracker, and source links.
- Fetches the latest version record so every row includes the real `.jar` URL, filename, size, and dependency tree.
- Normalises everything into a flat 34-field record with `imageUrl` first and `error` last.
- Exports the dataset as CSV, Excel, JSON, XML, JSONL, RSS, or HTML in one click.

> 💡 **Why it matters:** the Modrinth website only lets you browse 20 mods at a time and copy data row-by-row. This actor returns the same data flattened, joined with the latest version file, and ready to drop into a spreadsheet, a database, or an LLM context window.

### 🎬 Full Demo

_🚧 Coming soon._

### ⚙️ Input

<table>
<tr><th>Field</th><th>Type</th><th>Required</th><th>Description</th></tr>
<tr><td>searchQuery</td><td>string</td><td>No</td><td>Free-text search across mod titles, descriptions, and slugs (e.g. sodium, jei, create). Leave empty to browse all mods.</td></tr>
<tr><td>maxItems</td><td>integer</td><td>No</td><td>Free users: 10 (preview). Paid users: up to 1,000,000. Prefill: 10.</td></tr>
<tr><td>sortBy</td><td>enum</td><td>No</td><td>relevance, downloads, follows, newest, updated. Default: relevance.</td></tr>
<tr><td>categories</td><td>string[]</td><td>No</td><td>19 mod categories: adventure, cursed, decoration, economy, equipment, food, game-mechanics, library, magic, management, minigame, mobs, optimization, social, storage, technology, transportation, utility, worldgen.</td></tr>
<tr><td>loaders</td><td>string[]</td><td>No</td><td>24 loaders: fabric, forge, neoforge, quilt, liteloader, bukkit, spigot, paper, purpur, folia, velocity, bungeecord, waterfall, sponge, geyser, datapack, modloader, rift, nilloader, ornithe, legacy-fabric, babric, bta-babric, java-agent.</td></tr>
<tr><td>gameVersions</td><td>string[]</td><td>No</td><td>96 Minecraft release versions, from 1.0 through 26.1.2.</td></tr>
</table>

**Example 1 - top optimization mods for Fabric 1.21.1:**
```json
{
  "searchQuery": "",
  "maxItems": 25,
  "sortBy": "downloads",
  "categories": ["optimization"],
  "loaders": ["fabric"],
  "gameVersions": ["1.21.1"]
}
````

**Example 2 - search for "sodium":**

```json
{
  "searchQuery": "sodium",
  "maxItems": 5,
  "sortBy": "relevance"
}
```

> ⚠️ **Good to Know:** filters combine with AND across dimensions and OR within a dimension. Passing `loaders: ["fabric","forge"]` returns mods that support Fabric OR Forge; adding `categories: ["optimization"]` narrows to optimization mods AND (Fabric OR Forge).

### 📊 Output

Each record is a flat object with the following fields. `imageUrl` is always first, `error` is always last.

| Field | Type | Description |
|---|---|---|
| 🖼️ `imageUrl` | string | Mod icon URL (CDN). |
| 📌 `title` | string | Display title of the mod. |
| 🔖 `slug` | string | URL-safe slug (e.g. `sodium`). |
| 🔗 `url` | string | Canonical Modrinth page. |
| 🆔 `projectId` | string | Modrinth project ID. |
| 📝 `description` | string | Short tagline / one-liner. |
| 👤 `author` | string | Primary author username. |
| ⬇️ `downloads` | number | Lifetime download count. |
| ⭐ `follows` | number | Follower count. |
| 🏷️ `categories` | string\[] | Mod categories (e.g. `optimization`, `magic`). |
| 🧩 `loaders` | string\[] | Loaders supported (fabric, forge, neoforge, quilt, ...). |
| 🎮 `gameVersions` | string\[] | All supported Minecraft versions. |
| 🖥️ `clientSide` | string | `required`, `optional`, `unsupported`. |
| 🛡️ `serverSide` | string | `required`, `optional`, `unsupported`. |
| 📜 `license` | string | SPDX-style license code. |
| 🔗 `licenseUrl` | string | URL to the license text. |
| 💻 `sourceUrl` | string | Source repository URL. |
| 🐛 `issuesUrl` | string | Issue tracker URL. |
| 📚 `wikiUrl` | string | Wiki URL. |
| 💬 `discordUrl` | string | Discord invite. |
| 💰 `donationUrl` | string | Donation page. |
| 📅 `dateCreated` | ISO 8601 | Project creation date. |
| 🔄 `dateModified` | ISO 8601 | Last modification date. |
| 📄 `bodyMarkdown` | string | Full project description in Markdown. |
| 🔢 `latestVersionNumber` | string | Latest version label. |
| 🆔 `latestVersionId` | string | Latest version ID. |
| 📅 `latestVersionDate` | ISO 8601 | Date the latest version was published. |
| 📦 `fileUrl` | string | Direct `.jar` download URL. |
| 📁 `fileName` | string | JAR filename. |
| 📏 `fileSize` | number | File size in bytes. |
| 🔗 `dependencies` | object\[] | Required / optional / embedded dependencies. |
| 🖼️ `gallery` | string\[] | Gallery image URLs. |
| 🕒 `scrapedAt` | ISO 8601 | When this row was scraped. |
| ❌ `error` | string|null | Per-record error (null on success). |

**Sample record (Sodium):**

```json
{
  "imageUrl": "https://cdn.modrinth.com/data/AANobbMI/295862f4724dc3f78df3447ad6072b2dcd3ef0c9_96.webp",
  "title": "Sodium",
  "slug": "sodium",
  "url": "https://modrinth.com/mod/sodium",
  "projectId": "AANobbMI",
  "description": "The fastest and most compatible rendering optimization mod for Minecraft. Now available for both NeoForge and Fabric!",
  "author": "jellysquid3",
  "downloads": 156839865,
  "follows": 36481,
  "categories": ["optimization"],
  "loaders": ["fabric", "neoforge", "quilt"],
  "gameVersions": ["1.16.3", "1.16.4", "1.16.5", "1.17", "1.17.1", "1.18.2", "1.19.4", "1.20.1", "1.20.4", "1.21", "1.21.1", "1.21.11", "26.1.2"],
  "clientSide": "required",
  "serverSide": "unsupported",
  "license": "LicenseRef-Polyform-Shield-1.0.0",
  "sourceUrl": "https://github.com/CaffeineMC/sodium",
  "latestVersionNumber": "mc1.21.11-0.8.12-neoforge",
  "fileUrl": "https://cdn.modrinth.com/data/AANobbMI/versions/ylHOo4fY/sodium-neoforge-0.8.12%2Bmc1.21.11.jar",
  "fileName": "sodium-neoforge-0.8.12+mc1.21.11.jar",
  "fileSize": 1133516,
  "scrapedAt": "2026-05-22T23:16:13.449Z",
  "error": null
}
```

**Sample record (Sodium Extra):**

```json
{
  "imageUrl": "https://cdn.modrinth.com/data/PtjYWJkn/0df4fb22a11e1dcb5e83cb0aadd275b571aca7a9_96.webp",
  "title": "Sodium Extra",
  "slug": "sodium-extra",
  "projectId": "PtjYWJkn",
  "author": "FlashyReese",
  "downloads": 70252787,
  "follows": 12301,
  "categories": ["cursed", "optimization", "utility"],
  "loaders": ["fabric", "neoforge", "quilt"],
  "license": "GNU Lesser General Public License v3.0 only",
  "latestVersionNumber": "mc26.1.1-0.8.7+fabric",
  "fileSize": 401602,
  "dependencies": [
    { "projectId": "AANobbMI", "type": "required" }
  ]
}
```

### ✨ Why choose this Actor

| ✨ Feature | What it gets you |
|---|---|
| 📡 Official API | Calls `api.modrinth.com/v2` directly. No scraping, no proxies, no rate-limit drama. |
| 📦 Full project record | Every row carries metadata, latest version, license, gallery, dependencies. |
| 🎯 Real `.jar` URL | The `fileUrl` field is the same URL the Modrinth website would hand you. |
| 🧩 Mod-only scope | Excludes resourcepacks, datapacks, modpacks, shaders, plugins. Just mods. |
| 📊 34 fields per record | Far beyond what the Modrinth UI shows on a single screen. |
| 🚀 Up to 1M items | Paid users can pull the entire catalog if they want. |

### 📈 How it compares to alternatives

| Approach | Free? | Fields | Coverage | Effort |
|---|---|---|---|---|
| Manually copy from modrinth.com | ✅ | ~5 | Browsing limit | Hours of clicking |
| Custom scrape with Python + requests | ✅ | Up to you | Up to you | Days of engineering |
| **Modrinth Mods Scraper** | ✅ ($5 trial credit) | **34** | **Full catalog, all filters** | **1 click** |

### 🚀 How to use

1. **Sign up.** [Create a free Apify account w/ $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. **Open** the Modrinth Mods Scraper page.
3. **Set inputs.** Pick a `searchQuery`, sort order, and any combination of `categories`, `loaders`, `gameVersions`.
4. **Run.** Click Start. Free users get 10 items, paid users up to 1,000,000.
5. **Export.** Download the dataset as CSV, Excel, JSON, JSONL, XML, RSS, or HTML.

### 💼 Business use cases

#### 🎒 Modpack curation

Pull every optimization + QoL mod for Minecraft 1.21.1 Fabric in one shot, sort by downloads, and seed your modpack manifest. The `fileUrl` is ready to drop into a launcher import.

#### 📊 Catalog analytics

Track download growth, loader market share (Fabric vs NeoForge vs Forge), and license distribution over time. Run on a schedule, push to BigQuery / Snowflake / Postgres.

#### 🧩 Launcher / store integration

Mirror the Modrinth catalog into your own launcher, mod store, or recommendation engine without hitting the public API on every user request.

#### 🤖 AI dataset / RAG corpus

Build a searchable index over the `bodyMarkdown` field for an AI assistant that recommends mods, explains incompatibilities, or answers "what mods work with Sodium and Fabric 1.21?".

### 🔌 Automating Modrinth Mods Scraper

Connect the actor to any of the apps below and trigger runs on a schedule or webhook:

- **Make (Integromat)** - fire the actor every Monday, push CSV to Google Sheets.
- **Zapier** - when a new row is added to the dataset, post to Slack.
- **Slack** - alert a channel when a tracked mod crosses a download threshold.
- **Airbyte** - sync the dataset directly into your warehouse.
- **GitHub Actions** - run on push, commit the JSON to a repo.
- **Google Drive / Dropbox / S3** - drop the CSV into a folder on completion.
- **Webhooks** - POST the dataset URL anywhere you want.

### 🌟 Beyond business use cases

#### 🔬 Research

Study the Minecraft modding ecosystem. License composition, loader adoption over time, the long tail of mods with under 100 downloads - all available in one dataset.

#### 🎮 Personal projects

Building a Discord bot that recommends mods? A Reddit thread of "top 100 Fabric mods for 1.21"? A personal launcher? Start here.

#### 🤝 Non-profit / education

Teach data analysis with a fun dataset. Map the open-source modding community. Compare licenses to see what's actually free-as-in-freedom.

#### 🧪 Experimentation

Train embeddings on mod descriptions. Cluster mods by dependency graph. Generate modpack ideas with an LLM seeded by your filtered set.

### 🤖 Ask an AI assistant about this scraper

Paste this into ChatGPT, Claude, Perplexity, or Copilot:

> "I want to use the ParseForge Modrinth Mods Scraper on Apify. Help me build an input that pulls the top 100 most-downloaded Fabric optimization mods for Minecraft 1.21.1."

### ❓ Frequently Asked Questions

#### 🔌 Does this use the official Modrinth API?

Yes. The actor calls `api.modrinth.com/v2/search`, `/v2/project/{slug}`, and `/v2/version/{id}` - all public, documented endpoints.

#### 🎮 Does it scrape modpacks, resourcepacks, or shaders?

No. Scope is locked to `project_type=mod`. Modpacks, resourcepacks, datapacks, shaders, and plugins are excluded by design.

#### 🧩 What loaders are supported?

All 24 Modrinth loaders: fabric, forge, neoforge, quilt, liteloader, bukkit, spigot, paper, purpur, folia, velocity, bungeecord, waterfall, sponge, geyser, datapack, modloader, rift, nilloader, ornithe, legacy-fabric, babric, bta-babric, java-agent.

#### 🎯 What Minecraft versions does it cover?

96 release versions from 1.0 through 26.1.2 (current). Snapshot and pre-release versions are excluded.

#### 📦 Does the output include the actual `.jar` download URL?

Yes. The `fileUrl` field is the direct CDN URL to the latest version's primary file. `fileName` and `fileSize` are also included.

#### 📊 How many fields per record?

34 fields. See the Output section for the full list.

#### 🆓 What do free users get?

Up to 10 items per run on a $5 trial credit. Paid users can pull up to 1,000,000 per run.

#### 🔄 How often is the data refreshed?

Live on every run. The actor hits the Modrinth API in real time. No caching.

#### 🌍 Do you need proxies?

No. The Modrinth API is public, unauthenticated, and unrestricted for normal use.

#### ⚠️ Is this affiliated with Modrinth?

No. This is an independent tool that consumes the public Modrinth API. It is not endorsed by or affiliated with Rinth, Inc.

#### 📥 What export formats are available?

CSV, Excel (XLSX), JSON, JSONL, XML, RSS, and HTML.

#### 🛠️ Can I filter by multiple categories at once?

Yes. Pass an array like `["optimization","utility"]`. Multiple categories combine with AND.

### 🔌 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 |
|---|---|
| [CurseForge Mods Scraper](https://apify.com/parseforge/curseforge-mods-scraper) | Pull mod metadata from CurseForge, the other major Minecraft mod host. |
| [Steam Store Scraper](https://apify.com/parseforge/steam-store-scraper) | Game prices, reviews, and metadata from Steam. |
| [GitHub Repo Scraper](https://apify.com/parseforge/github-repo-scraper) | Repo metadata, stars, releases, contributors. |
| [itch.io Games Scraper](https://apify.com/parseforge/itch-io-scraper) | Indie game listings, tags, and prices from itch.io. |
| [OurAirports Database Scraper](https://apify.com/parseforge/ourairports-scraper) | Full global airport reference dataset. |

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more catalog and marketplace scrapers.

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA)

> **⚠️ Disclaimer:** this is an independent tool, not affiliated with Rinth, Inc. or Modrinth. Only publicly available data from the Modrinth v2 API is collected. Respect the licenses of the mods you download.

# Actor input Schema

## `searchQuery` (type: `string`):

Free-text search across mod titles, descriptions and slugs (e.g. "sodium", "jei", "create"). Leave empty to browse all mods.

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000.

## `sortBy` (type: `string`):

How to order results.

## `categories` (type: `array`):

Filter by mod categories. Multiple values combine with AND.

## `loaders` (type: `array`):

Filter by mod loader (Fabric, Forge, NeoForge, Quilt, etc.). Multiple values combine with OR.

## `gameVersions` (type: `array`):

Filter by supported Minecraft release version (e.g. 1.21.4, 1.20.1). Multiple values combine with OR.

## Actor input object example

```json
{
  "maxItems": 10,
  "sortBy": "relevance"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/modrinth-mods-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/modrinth-mods-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10
}' |
apify call parseforge/modrinth-mods-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/modrinth-mods-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Modrinth Mods Scraper",
        "description": "Search the Modrinth catalog of Minecraft mods, modpacks, resource packs, shaders, plugins and data packs. Returns slugs, authors, downloads, follows, supported versions, mod loaders, license, gallery and more.",
        "version": "0.1",
        "x-build-id": "PHRimyULYIie0sSkO"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~modrinth-mods-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-modrinth-mods-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~modrinth-mods-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-modrinth-mods-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~modrinth-mods-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-modrinth-mods-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Free-text search across mod titles, descriptions and slugs (e.g. \"sodium\", \"jei\", \"create\"). Leave empty to browse all mods."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000."
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "relevance",
                            "downloads",
                            "follows",
                            "newest",
                            "updated"
                        ],
                        "type": "string",
                        "description": "How to order results.",
                        "default": "relevance"
                    },
                    "categories": {
                        "title": "Categories",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Filter by mod categories. Multiple values combine with AND.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "adventure",
                                "cursed",
                                "decoration",
                                "economy",
                                "equipment",
                                "food",
                                "game-mechanics",
                                "library",
                                "magic",
                                "management",
                                "minigame",
                                "mobs",
                                "optimization",
                                "social",
                                "storage",
                                "technology",
                                "transportation",
                                "utility",
                                "worldgen"
                            ],
                            "enumTitles": [
                                "Adventure",
                                "Cursed",
                                "Decoration",
                                "Economy",
                                "Equipment",
                                "Food",
                                "Game Mechanics",
                                "Library",
                                "Magic",
                                "Management",
                                "Minigame",
                                "Mobs",
                                "Optimization",
                                "Social",
                                "Storage",
                                "Technology",
                                "Transportation",
                                "Utility",
                                "World Generation"
                            ]
                        }
                    },
                    "loaders": {
                        "title": "Mod Loaders",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Filter by mod loader (Fabric, Forge, NeoForge, Quilt, etc.). Multiple values combine with OR.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "babric",
                                "bta-babric",
                                "bukkit",
                                "bungeecord",
                                "datapack",
                                "fabric",
                                "folia",
                                "forge",
                                "geyser",
                                "java-agent",
                                "legacy-fabric",
                                "liteloader",
                                "modloader",
                                "neoforge",
                                "nilloader",
                                "ornithe",
                                "paper",
                                "purpur",
                                "quilt",
                                "rift",
                                "spigot",
                                "sponge",
                                "velocity",
                                "waterfall"
                            ],
                            "enumTitles": [
                                "Babric",
                                "BTA-Babric",
                                "Bukkit",
                                "BungeeCord",
                                "Datapack",
                                "Fabric",
                                "Folia",
                                "Forge",
                                "Geyser",
                                "Java Agent",
                                "Legacy Fabric",
                                "LiteLoader",
                                "ModLoader",
                                "NeoForge",
                                "NilLoader",
                                "Ornithe",
                                "Paper",
                                "Purpur",
                                "Quilt",
                                "Rift",
                                "Spigot",
                                "Sponge",
                                "Velocity",
                                "Waterfall"
                            ]
                        }
                    },
                    "gameVersions": {
                        "title": "Minecraft Versions",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Filter by supported Minecraft release version (e.g. 1.21.4, 1.20.1). Multiple values combine with OR.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "26.1.2",
                                "26.1.1",
                                "26.1",
                                "1.21.11",
                                "1.21.10",
                                "1.21.9",
                                "1.21.8",
                                "1.21.7",
                                "1.21.6",
                                "1.21.5",
                                "1.21.4",
                                "1.21.3",
                                "1.21.2",
                                "1.21.1",
                                "1.21",
                                "1.20.6",
                                "1.20.5",
                                "1.20.4",
                                "1.20.3",
                                "1.20.2",
                                "1.20.1",
                                "1.20",
                                "1.19.4",
                                "1.19.3",
                                "1.19.2",
                                "1.19.1",
                                "1.19",
                                "1.18.2",
                                "1.18.1",
                                "1.18",
                                "1.17.1",
                                "1.17",
                                "1.16.5",
                                "1.16.4",
                                "1.16.3",
                                "1.16.2",
                                "1.16.1",
                                "1.16",
                                "1.15.2",
                                "1.15.1",
                                "1.15",
                                "1.14.4",
                                "1.14.3",
                                "1.14.2",
                                "1.14.1",
                                "1.14",
                                "1.13.2",
                                "1.13.1",
                                "1.13",
                                "1.12.2",
                                "1.12.1",
                                "1.12",
                                "1.11.2",
                                "1.11.1",
                                "1.11",
                                "1.10.2",
                                "1.10.1",
                                "1.10",
                                "1.9.4",
                                "1.9.3",
                                "1.9.2",
                                "1.9.1",
                                "1.9",
                                "1.8.9",
                                "1.8.8",
                                "1.8.7",
                                "1.8.6",
                                "1.8.5",
                                "1.8.4",
                                "1.8.3",
                                "1.8.2",
                                "1.8.1",
                                "1.8",
                                "1.7.10",
                                "1.7.9",
                                "1.7.8",
                                "1.7.7",
                                "1.7.6",
                                "1.7.5",
                                "1.7.4",
                                "1.7.3",
                                "1.7.2",
                                "1.6.4",
                                "1.6.2",
                                "1.6.1",
                                "1.5.2",
                                "1.5.1",
                                "1.4.7",
                                "1.4.6",
                                "1.4.5",
                                "1.4.4",
                                "1.4.2",
                                "1.3.2",
                                "1.3.1",
                                "1.2.5",
                                "1.2.4",
                                "1.2.3",
                                "1.2.2",
                                "1.2.1",
                                "1.1",
                                "1.0"
                            ]
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
