# MangaDex Titles Scraper (`parseforge/mangadex-titles-scraper`) Actor

Search MangaDex for manga titles and capture cover URL, manga ID, title, description, status, year, author, artist, tags, demographic, latest chapter, and language. Filter by content rating. Useful for fan apps, reading trackers, recommendation engines, and manga market research.

- **URL**: https://apify.com/parseforge/mangadex-titles-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Automation, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.50 / 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)

## 📖 MangaDex Titles Scraper

> 🚀 **Export MangaDex titles in seconds. Title, alt titles, description, status, year, author, artist, tags, latest chapter.**

> 🕒 **Last updated:** 2026-05-29 · **📊 12 fields** per record · Structured records · Ready for CSV, Excel, JSON, XML

The MangaDex Titles Scraper turns a public data source into a clean, structured dataset. Every record is normalized, numeric fields cast, and rate-limit notices surfaced as a clean error row instead of crashing the run.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| 📊 Analysts | Build datasets for reporting and BI |
| 🏢 B2B teams | Enrich CRM and prospecting workflows |
| 🤖 ML engineers | Construct training and evaluation sets |
| 📰 Journalists | Verify facts with one click |
| 👩‍💻 Developers | Mirror upstream data into your own database |
| 🧪 Researchers | Snapshot a domain for longitudinal study |

### 📋 What the MangaDex Titles Scraper does

- Queries the upstream source with the parameters you supply.
- Parses each record and flattens it into a single row.
- Casts numeric and date fields where appropriate.
- Surfaces upstream errors and rate limits as a clean error record.
- Exports as CSV, Excel, JSON, JSONL, XML, RSS, or HTML.

> 💡 **Why it matters:** raw upstream responses are rarely ready for analysis. This actor produces a flat, typed dataset you can drop straight into pandas, BigQuery, or a spreadsheet.

### 🎬 Full Demo

_🚧 Coming soon._

### ⚙️ Input

<table>
<tr><th>Field</th><th>Type</th><th>Required</th><th>Description</th></tr>
<tr><td><code>title</code></td><td>string</td><td>No</td><td>Search by manga title.</td></tr>
<tr><td><code>contentRating</code></td><td>array</td><td>No</td><td>Allowed content ratings.</td></tr>
<tr><td><code>maxItems</code></td><td>integer</td><td>No</td><td>Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000</td></tr>
</table>

**Example input:**
```json
{
  "maxItems": 10
}
````

> ⚠️ **Good to Know:** free Apify accounts are capped at 10 records per run. Upgrade for full datasets.

### 📊 Output

| Field | Type | Description |
|---|---|---|
| `coverUrl` | mixed | Parsed field. |
| `manga_id` | mixed | Parsed field. |
| `title` | mixed | Parsed field. |
| `alt_titles` | mixed | Parsed field. |
| `description` | mixed | Parsed field. |
| `status` | mixed | Parsed field. |
| `year` | mixed | Parsed field. |
| `author` | mixed | Parsed field. |
| `artist` | mixed | Parsed field. |
| `tags` | mixed | Parsed field. |
| `demographic` | mixed | Parsed field. |
| `latest_chapter` | mixed | Parsed field. |
| `language` | mixed | Parsed field. |
| `scrapedAt` | mixed | Parsed field. |
| `error` | mixed | Set if the upstream returned an error. |

### ✨ Why choose this Actor

| 🆓 | Works on the free Apify plan up to 10 records per run. |
| 🧹 | Clean snake\_case keys ready for BI. |
| 🔢 | Numeric casting baked in. |
| 🛟 | Errors surfaced as data, never crashes. |
| 💾 | One-click CSV, Excel, JSON, XML export. |

### 📈 How it compares to alternatives

| Approach | Setup time | Clean keys | Error handling |
|---|---|---|---|
| Roll your own fetch | 30 min + | ❌ | ❌ |
| Python wrapper lib | 1 hr install + script | ✅ | partial |
| **This Actor** | 5 sec, no install | ✅ | ✅ |

### 🚀 How to use

1. Click **Try for free**.
2. Tweak the input fields or accept the defaults.
3. Click **Start**. Within seconds your dataset is ready, download as CSV, Excel, JSON, or XML.

### 💼 Business use cases

**📊 Analytics.** Pull a full snapshot into your warehouse and run aggregations.

**🏢 B2B enrichment.** Match upstream records against your CRM, score and prioritize.

**📰 Newsroom.** Verify a fact or source for a story in 30 seconds.

**🤖 ML feature engineering.** Build a typed, deduplicated training set in one run.

### 🔌 Automating MangaDex Titles Scraper

- **Make / Zapier**: trigger on schedule, push results to Airtable, Sheets, or Slack.
- **Cron**: native Apify scheduler.
- **Webhooks**: POST notification when a run finishes.
- **Warehouse**: ship rows straight to BigQuery, Snowflake, or Postgres.

### 🌟 Beyond business use cases

**🎓 Education.** Spin up a dataset for a classroom exercise in seconds.

**🧪 Personal research.** Track a topic over time, build a personal archive.

**🤝 Non-profit & open data.** Publish public dashboards without writing client code.

**🧰 Tinkering.** Prototype an app against real data without writing a scraper.

### 🤖 Ask an AI assistant about this scraper

Drop this README into ChatGPT, Claude, or any LLM and ask it to map your specific workflow to the actor's inputs. The schema, examples, and field list above contain everything an assistant needs to design a working pipeline.

### ❓ Frequently Asked Questions

**❓ Do I need an API key?** Depends on the source. If the input schema exposes an `apiKey` field, yes, you should provide one for production use.

**❓ Is there a rate limit?** Yes, the upstream source enforces its own limits. We surface rate-limit notices as a clean error record.

**❓ Can I schedule runs?** Yes, use Apify's native scheduler or hook into Make, Zapier, or cron.

**❓ What format can I download?** CSV, Excel, JSON, JSONL, XML, RSS, or HTML, straight from the dataset UI.

**❓ Will the schema change?** Core fields are stable. Optional fields may be added over time.

**❓ Is this scraping or API?** Whichever method is most reliable for the source. Both produce the same normalized output.

**❓ How do you handle errors?** Each error is pushed as a single-row record with an `error` field populated.

**❓ Can I filter results?** Yes, see the input schema above for every supported filter.

**❓ Do you respect robots.txt?** Yes, and only public endpoints are accessed.

**❓ Where can I see sample output?** Run the actor with the default inputs, the dataset preview shows live records.

### 🔌 Integrate with any app

Apify ships native integrations with Make, Zapier, Slack, Discord, Google Drive, Google Sheets, Gmail, Airbyte, Keboola, Telegram, GitHub, and any REST API or webhook endpoint.

### 🔗 Recommended Actors

| Actor | What it does |
|---|---|
| [ParseForge Alpha Vantage Scraper](https://apify.com/parseforge/alpha-vantage-public-scraper) | Market data, FX, crypto, indicators. |
| [ParseForge OurAirports Scraper](https://apify.com/parseforge/ourairports-scraper) | Global airport database. |
| [ParseForge NBA Stats Scraper](https://apify.com/parseforge/nba-stats-scraper) | Player and team stats from NBA.com. |
| [ParseForge CurseForge Mods Scraper](https://apify.com/parseforge/curseforge-mods-scraper) | Public mod metadata from CurseForge. |

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for 900+ production-grade scrapers across business intelligence, real estate, e-commerce, sports, finance, and public records.

***

**Disclaimer:** This actor scrapes only publicly available data. ParseForge is not affiliated with, endorsed by, or sponsored by any of the third-party services referenced. Users are responsible for complying with the target site's terms of service and applicable law. [Create a free account w/ $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp).

# Actor input Schema

## `title` (type: `string`):

Search by manga title.

## `contentRating` (type: `array`):

Allowed content ratings.

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

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

## Actor input object example

```json
{
  "title": "One Piece",
  "contentRating": [
    "safe",
    "suggestive"
  ],
  "maxItems": 10
}
```

# 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 = {
    "title": "One Piece",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/mangadex-titles-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 = {
    "title": "One Piece",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/mangadex-titles-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 '{
  "title": "One Piece",
  "maxItems": 10
}' |
apify call parseforge/mangadex-titles-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "MangaDex Titles Scraper",
        "description": "Search MangaDex for manga titles and capture cover URL, manga ID, title, description, status, year, author, artist, tags, demographic, latest chapter, and language. Filter by content rating. Useful for fan apps, reading trackers, recommendation engines, and manga market research.",
        "version": "0.1",
        "x-build-id": "46OEmYtaepYL5PwD1"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~mangadex-titles-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-mangadex-titles-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~mangadex-titles-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-mangadex-titles-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~mangadex-titles-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-mangadex-titles-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": {
                    "title": {
                        "title": "Title Search",
                        "type": "string",
                        "description": "Search by manga title."
                    },
                    "contentRating": {
                        "title": "Content Rating",
                        "type": "array",
                        "description": "Allowed content ratings.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "safe",
                                "suggestive",
                                "erotica",
                                "pornographic"
                            ]
                        },
                        "default": [
                            "safe",
                            "suggestive"
                        ]
                    },
                    "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"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
