{
  "openapi": "3.0.1",
  "info": {
    "title": "Modrinth Scraper: Minecraft Mods, Plugins & Versions",
    "description": "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.",
    "version": "0.1",
    "x-build-id": "RwsNWEyXOEKYuh1vy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~modrinth-minecraft-mods-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-modrinth-minecraft-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/recordsdata~modrinth-minecraft-mods-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-modrinth-minecraft-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/recordsdata~modrinth-minecraft-mods-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-modrinth-minecraft-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": {
          "includeSearch": {
            "title": "Search / browse",
            "type": "boolean",
            "description": "Scrape the Modrinth project catalog: search by keyword or browse everything sorted by downloads, followers or date, using the filters below. Turn off to fetch only the project slugs listed further down.",
            "default": true
          },
          "searchQuery": {
            "title": "Search query (optional)",
            "type": "string",
            "description": "Keyword to search Modrinth projects by name or description, for example sodium, shaders or magic. Leave empty to browse all projects of the selected type, ordered by the sort option.",
            "default": ""
          },
          "projectType": {
            "title": "Project type",
            "enum": [
              "mod",
              "plugin",
              "datapack",
              "resourcepack",
              "shader",
              "modpack",
              "minecraft_java_server"
            ],
            "type": "string",
            "description": "Which kind of Modrinth project to scrape: mod, plugin, data pack, resource pack, shader, modpack or Minecraft Java server listing. Defaults to mod.",
            "default": "mod"
          },
          "categories": {
            "title": "Categories (optional)",
            "type": "array",
            "description": "Only projects tagged with these categories, for example optimization, technology, worldgen, adventure, magic or library (resource packs: 16x, gui, realistic; shaders: realistic, cartoon). Matches a project's main and additional categories. See Categories match to choose between all of them and any of them. An unknown category stops the run before any request is charged and lists the valid names.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "categoriesMatch": {
            "title": "Categories match",
            "enum": [
              "all",
              "any"
            ],
            "type": "string",
            "description": "All: a project must carry every category listed above (AND). Any: at least one of them is enough (OR). Only used when Categories is not empty.",
            "default": "all"
          },
          "gameVersion": {
            "title": "Game version (optional)",
            "type": "string",
            "description": "Only projects compatible with this Minecraft version, for example 1.21.4. Kept for older inputs; to combine several versions use Game versions below (both are merged). An unknown version stops the run before any request is charged.",
            "default": ""
          },
          "gameVersions": {
            "title": "Game versions (optional, any of)",
            "type": "array",
            "description": "Only projects compatible with at least one of these Minecraft versions, for example 1.21.4 and 1.20.1. Snapshots such as 26.4-snapshot-3 are accepted. Merged with Game version above.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "loader": {
            "title": "Loader (optional)",
            "enum": [
              "",
              "fabric",
              "forge",
              "neoforge",
              "quilt",
              "paper",
              "spigot",
              "babric",
              "bta-babric",
              "bukkit",
              "bungeecord",
              "canvas",
              "datapack",
              "folia",
              "geyser",
              "iris",
              "java-agent",
              "legacy-fabric",
              "liteloader",
              "minecraft",
              "modloader",
              "nilloader",
              "optifine",
              "ornithe",
              "purpur",
              "rift",
              "sponge",
              "vanilla",
              "velocity",
              "waterfall"
            ],
            "type": "string",
            "description": "Only projects that support this loader or platform (Fabric, Forge, NeoForge, Quilt, Paper, Spigot and 22 more). Kept for older inputs; to combine several loaders use Loaders below (both are merged). Leave on Any for no loader filter.",
            "default": ""
          },
          "loaders": {
            "title": "Loaders (optional, any of)",
            "type": "array",
            "description": "Only projects that support at least one of these loaders, for example fabric and neoforge. Accepts every loader Modrinth lists (fabric, forge, neoforge, quilt, paper, spigot, bukkit, purpur, folia, velocity, iris, optifine and more); an unknown name stops the run before any request is charged and lists the valid ones. Merged with Loader above.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "clientSide": {
            "title": "Client side (optional)",
            "enum": [
              "",
              "required",
              "optional",
              "unsupported",
              "unknown"
            ],
            "type": "string",
            "description": "Filter by how the project behaves on the player's client: required, optional, unsupported or unknown. Leave on Any for no filter.",
            "default": ""
          },
          "serverSide": {
            "title": "Server side (optional)",
            "enum": [
              "",
              "required",
              "optional",
              "unsupported",
              "unknown"
            ],
            "type": "string",
            "description": "Filter by how the project behaves on a dedicated server: required, optional, unsupported or unknown. Client side required plus server side unsupported finds client-only mods such as Sodium. Leave on Any for no filter.",
            "default": ""
          },
          "license": {
            "title": "License (optional)",
            "type": "string",
            "description": "Only projects under this license, as the license column shows it: an SPDX id such as MIT, Apache-2.0, GPL-3.0-only or LGPL-3.0-only, or a custom id such as LicenseRef-All-Rights-Reserved. SPDX ids are matched ignoring case. Leave empty for any license.",
            "default": ""
          },
          "openSourceOnly": {
            "title": "Open source only",
            "type": "boolean",
            "description": "Only projects that publish their source code (Modrinth's open source flag). Off by default.",
            "default": false
          },
          "author": {
            "title": "Author (optional)",
            "type": "string",
            "description": "Only projects owned by this Modrinth username, for example modmuss50. Matched ignoring case. Leave empty for all authors.",
            "default": ""
          },
          "minDownloads": {
            "title": "Minimum downloads",
            "minimum": 0,
            "type": "integer",
            "description": "Only projects with at least this many downloads. 0 means no minimum.",
            "default": 0
          },
          "minFollowers": {
            "title": "Minimum followers",
            "minimum": 0,
            "type": "integer",
            "description": "Only projects with at least this many followers. 0 means no minimum.",
            "default": 0
          },
          "updatedSince": {
            "title": "Updated since (optional)",
            "type": "string",
            "description": "Only projects updated on or after this date. Use YYYY-MM-DD (UTC), today, yesterday, or a relative value such as 7d (days), 4w (weeks), 3m (months of 30 days) or 1y. Leave empty for no date filter.",
            "default": ""
          },
          "createdSince": {
            "title": "Created since (optional)",
            "type": "string",
            "description": "Only projects first published on or after this date. Same formats as Updated since. Combine with the Newest sort to follow new releases on Modrinth.",
            "default": ""
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "downloads",
              "follows",
              "newest",
              "updated",
              "relevance"
            ],
            "type": "string",
            "description": "How search results are ordered: most downloaded, most followed, newest, recently updated, or keyword relevance. Defaults to downloads.",
            "default": "downloads"
          },
          "includeServerInfo": {
            "title": "Server listing details",
            "type": "boolean",
            "description": "For Minecraft Java server listings (project type above, or a slug that is a server), add the join address, region, languages, players online and maximum, game version and verified plays. Costs one extra request per server and no extra charge. Off by default.",
            "default": false
          },
          "projectSlugs": {
            "title": "Project slugs (full details)",
            "type": "array",
            "description": "Modrinth project slugs or URLs (for example sodium, fabric-api) to fetch as full project records with the 20 latest game versions plus the total count, loaders, links, gallery, donation links and the long description. Unknown slugs return an uncharged error row.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "includeTeam": {
            "title": "Team and author for slugs",
            "type": "boolean",
            "description": "Add the project's author, organization and team member usernames with their roles to each full project record. Costs one or two extra requests per slug and no extra charge. Off by default.",
            "default": false
          },
          "includeVersions": {
            "title": "Version history per project",
            "type": "boolean",
            "description": "One row per released version (game versions, loaders, downloads, changelog, file name, link and checksums, dependencies) for each slug above.",
            "default": false
          },
          "maxVersionsPerProject": {
            "title": "Max versions per project",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Cap on version rows per project.",
            "default": 50
          },
          "versionGameVersions": {
            "title": "Version rows: game versions (any of)",
            "type": "array",
            "description": "Only version rows built for at least one of these Minecraft versions, for example 1.21.4. Applies to the version history of the slugs above and nothing else. Leave empty for all versions.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "versionLoaders": {
            "title": "Version rows: loaders (any of)",
            "type": "array",
            "description": "Only version rows built for at least one of these loaders, for example fabric. Applies to the version history of the slugs above and nothing else. Leave empty for all loaders.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "versionTypes": {
            "title": "Version rows: release channels (any of)",
            "type": "array",
            "description": "Only version rows of these channels: release, beta, alpha. Leave empty for all channels.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of billable rows to return across search rows, project records and version rows. Free users are limited to 10 items (preview). Paid users: up to 1,000,000.",
            "default": 10
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}