# itch.io Game Scraper (`parseforge/itch-io-scraper`) Actor

Scrape indie game listings from itch.io by top-rated, new and popular, top sellers, or newest. Optionally filter by genre. Returns title, developer, price, rating, tags, and platform flags per game.

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

## Pricing

from $29.00 / 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### itch.io Game Scraper

**Scrape itch.io game listings by genre, popularity, rating, or sales rank, up to a million records per run.** Every game row returns its title, developer, price, rating, tags, and platform flags. No API key or login needed. Export to CSV, JSON, Excel, or XML.

Itch.io is the largest open marketplace for indie games, game jams, and experimental interactive work. Its browsing UI is great for discovery but terrible for bulk research: no data export, no programmatic access, and no way to compare hundreds of listings side by side. This Actor reads the public browse feeds directly, so you get every visible game in a clean, flat dataset you can sort, filter, and pivot in your own tools.

If you need game assets instead, see the itch.io Game Assets Scraper by CrawlerBros.

| Who uses it | What they scrape itch.io for |
|---|---|
| Indie game market analysts | Identify which genres, themes, and pricing models dominate the paid and free markets this quarter. |
| Game publishers and scouts | Discover highly rated new releases and hidden gems that have strong rating volumes but low visibility. |
| Competitive researchers | Track how competing developers tag their games, set prices, and describe visual styles across the platform. |
| Academic researchers | Build datasets for game studies, analyzing representation, accessibility tags, and platform support trends. |

### What it does

This Actor collects itch.io game listings from the main browse feeds and returns each as a flat row with normalized metadata, pricing, and platform support.

- 📊 **Sorted feeds:** scrape top-rated, new and popular, top sellers, or newest listings in one run.
- 🏷️ **Genre filter:** narrow to a single tag like platformer, rpg, action, or visual-novel. Leave empty for every genre at once.
- 📈 **Scaled extraction:** free users preview up to 10 games. Paid plans unlock up to 1,000,000 rows per run.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with itch.io data

**📈 Market sizing and trend reports.**

An analyst runs the scraper on the Top Sellers feed monthly, slices the dataset by genre and price tier in a spreadsheet, and decides which emerging niches to cover in the next investor newsletter.

**🕵️ Competition monitoring.**

A publisher scrapes the New and Popular feed once a week, filters for the platformer genre, and creates a watchlist of fast-growing indie platformers that overlap with their own upcoming release.

**🧪 Dataset construction for research.**

A graduate student scrapes Top Rated across all genres, exports the full set to CSV, and uses the tag and platform columns to study how accessibility tags correlate with rating distributions.

**💡 Game scouting for a label.**

A small label scrapes the Newest feed daily, filters for any title tagged pixel-art or retro, and flags every game with above 4 stars and more than 50 ratings for a first-contact email.

### Why choose this scraper

| | What you get |
|---|---|
| **No API setup** | Scrape public itch.io browse pages with no registration, no OAuth token, and no rate-limit negotiation. |
| **Normalized metadata** | Every game lands in your dataset with the same column structure: price, rating, tags, platforms, and developer name. |
| **Market coverage** | Pull top sellers alongside brand new releases in one run to see the full competitive landscape. |

### How it compares

Three other actors scrape itch.io listings; this one focuses on the main game browse feeds with built-in sort orders and optional genre filtering, returning flat rows ready for CSV or database import.

| Feature | ParseForge | itch.io Games Scraper (shahidirfan) | itch.io Game Assets Scraper | itch.io Games Scraper (newbs) |
|---|---|---|---|---|
| Sort by top-rated, new-and-popular, top-sellers, newest | Yes, four built-in sort orders | Not listed | Not listed | Not listed |
| Optional genre filter | Yes, single tag filter per run | Not listed | Not listed | Yes |
| Scrapes full game listings | Yes | Yes | Not listed | Yes |
| Scrapes game assets | No, game listings only | Not listed | Yes | Not listed |
| Returns normalized flat rows | Yes | Yes | Not listed | Yes |
| Supports devlog and demo scraping | Not listed | Not listed | Not listed | Yes |

### Configure the run

Drive the Actor from a sort order and an optional genre tag. Filtering runs on the itch.io browse feed so only matching games land in your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
 "maxItems": 10,
 "sortBy": "top-rated"
}
```

A larger pull:

```json
{
 "maxItems": 200,
 "sortBy": "top-rated"
}
```

### Pricing

Pay-per-result: **$0.031 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $3.10 |
| 1,000 results | $31.00 |
| 10,000 results | $310.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [itch.io Game Scraper](https://apify.com/parseforge/itch-io-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to itch.io through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/itch-io-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check your genre filter spelling: a tag that does not match itch.io's exact wording returns an empty page. Try removing the genre filter and running again. If you are on the free plan, the Actor stops after 10 items, which may look empty if you used the wrong sort order.

**The scraper stopped after a few games.**

Free accounts are limited to 10 items as a preview. Upgrade to a paid plan to raise the maxItems value and pull larger lists.

**Some game prices are empty or zero.**

Itch.io lists many games as free, pay-what-you-want, or 'name your own price.' These appear with a base price of zero or empty. The Actor returns whatever the listing card shows.

**The rating counts seem low compared to the store page.**

Browse listing cards sometimes show rounded or cached rating counts that differ slightly from the full game page. For exact rating volumes, scrape individual game pages.

**I get a timeout or proxy error on large runs.**

Long runs can hit rate limits. Add an Apify proxy configuration to your Actor run to rotate IP addresses, and consider splitting very large extractions into multiple runs of 100,000 items each.

### FAQ

| Question | Answer |
|---|---|
| Does the scraper fetch adult or NSFW games? | No. The Actor respects itch.io's default public browse settings, which exclude content marked as adult. No NSFW material reaches your dataset. |
| Can I get the full game description and screenshot URLs? | The dataset includes the fields available from the browse listing cards: title, developer, price, rating, tags, and platform flags. Full body descriptions and media galleries require visiting each game page individually, which this Actor does not do. Try the crawlerbros/itch-io-game-assets-scraper if you need asset-level detail. |
| What is the difference between newest and new and popular? | Newest is a strict chronological feed. New and Popular is itch.io's algorithmic feed that mixes recency with engagement signals like views, downloads, and early ratings. |
| Can I filter by multiple genres in one run? | The genre field accepts a single tag per run. For multiple genres, run the Actor once per tag and merge the CSV files after, or run without a genre filter and separate the tags in your own analysis. |
| Does the Actor handle game jam entries? | Game jam entries appear in the browse feeds if they meet the default visibility rules. The Actor captures whatever the selected sort order shows; it does not have a dedicated jam filter. |
| Are free games included? | Yes. Games listed as free or pay-what-you-want appear alongside paid titles in every sort order. |
| Does the scraper follow pagination? | Yes. The Actor automatically paginates through the browse feed until it reaches the maxItems limit you set. |
| Can I export to Google Sheets directly? | You can export the finished dataset to CSV and import it into Google Sheets in one step. The Apify platform also supports direct integrations with Google Drive and other services. |
| Will I get blocked by itch.io? | The Actor uses reasonable delays and standard browser headers. For very large runs, using Apify proxies is recommended to distribute requests across multiple IP addresses. |
| Does the scraper need my itch.io login? | No. It reads only the publicly visible browse feeds. No cookie, session, or account is needed. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by itch.io. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

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

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

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

How to sort the game listings.

## `genre` (type: `string`):

Optional genre to filter by (e.g. platformer, rpg, action). Leave empty for all genres.

## Actor input object example

```json
{
  "maxItems": 10,
  "sortBy": "top-rated"
}
```

# 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,
    "sortBy": "top-rated"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/itch-io-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,
    "sortBy": "top-rated",
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).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,
  "sortBy": "top-rated"
}' |
apify call parseforge/itch-io-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/itch-io-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Q8754SluibPMitFEi/builds/EVpZh21JBNHjC24aK/openapi.json
