# Mango Scraper - Prices, Rebajas, Variants & Composition (`abotapi/mango-com-scraper`) Actor

Scrape Mango (shop.mango.com) fashion products: current price plus strike-through Rebajas (sale) discount, full colour/size variant matrix, section and category, and (with full detail) composition, care, materials, origin, fit and per-size availability. Search by keyword or Rebajas, or paste links.

- **URL**: https://apify.com/abotapi/mango-com-scraper.md
- **Developed by:** [Abot API](https://apify.com/abotapi) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 product 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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

## Mango Product Scraper

Pull product data from Mango (shop.mango.com), the global fashion retailer. Search by keyword or browse the site's own Rebajas (sale) feed, or paste product and listing links directly. Every record includes the current price, the strike-through original price with computed discount when a product is marked down, and the full colour/size variant matrix -- with per-size availability and composition/care/materials/fit when you ask for full detail.

### Why This Scraper?

- **Was-price and discount, structured, straight from Mango's own pricing service.** When a product is marked down, both prices are captured plus the discount percentage and Mango's own promotion label.
- **Rebajas, first class.** A `specialsOnly` toggle browses Mango's own, real, queryable Rebajas (sale) catalog with genuine server-side pagination -- not a guessed category. Mango Outlet is a separate site and out of scope here.
- **Full colour/size matrix.** Every colourway and size Mango sells for a product, each colour with its own price/discount and image gallery; with full detail on, each size also carries real-time availability (in stock, last units, or delayed).
- **Composition, care, materials, origin and fit.** With `fetchDetails` on, every product also returns its fabric composition, wash-care instructions, a material breakdown by percentage, country of origin, and garment fit measurements.
- **Two ways in.** Keyword search or Rebajas browse, or paste any product/category link and continue pagination automatically.
- **Optional export to your apps.** Send results into Notion, Linear, Airtable, or any Apify MCP connector alongside the dataset.

### Data You Get

| Field | Example value |
|---|---|
| productId | `123456` |
| name | `Sample Linen Trousers` |
| brand / section | `Mango`, `Women` |
| category / families | `Trousers`, `[{"id": "26", "label": "Trousers", "labelEn": "Trousers"}]` |
| url | `https://shop.mango.com/es/es/p/mujer/pantalones/sample-linen-trousers/123456` |
| price / currency | `19.99`, `EUR` |
| originalPrice / discountAmount / discountPercent | `29.99`, `10.00`, `33.4` |
| isOnSpecial / promoLabel | `true`, `PROMOCION HASTA REBAJAS` |
| colors[] | `[{"id": "99", "label": "Black", "rgb": "36,36,36", "sizes": [{"id": "36", "label": "36", "plusSize": false, "available": true, "isDelayed": false, "lastUnits": false}], "images": [...], "price": 19.99, ...}]` |
| compositions / care / materials | `["Composition: 55% linen, 45% viscose"]`, `["Machine wash max 30°C"]`, `[{"name": "LINEN", "percent": 55}, {"name": "VISCOSE FSC", "percent": 45}]` |
| originCountry | `China` |
| measures | `["Inseam 76 cm", "Side length 104 cm"]` |
| reviews | `{"averageRating": null, "totalReviewCount": 0, "items": []}` |

> Sample shape: values above are illustrative placeholders, not from a live product.

### How to Use

**1. Keyword search, default market and section (Women, Spain):**
```json
{
  "mode": "search",
  "searchTerm": "vestido",
  "maxItems": 20
}
````

**2. Browse the UK men's Rebajas feed:**

```json
{
  "mode": "search",
  "market": "gb/en",
  "section": "MEN",
  "specialsOnly": true,
  "maxItems": 50,
  "maxPages": 5
}
```

**3. Full product detail (composition, care, per-size availability) for a pasted product link:**

```json
{
  "mode": "url",
  "urls": ["https://shop.mango.com/es/es/p/mujer/sample-linen-trousers/123456"],
  "fetchDetails": true
}
```

**4. Paste a category/Rebajas listing and keep paginating forward:**

```json
{
  "mode": "url",
  "urls": ["https://shop.mango.com/es/es/c/mujer/rebajas--70/93ea7423"],
  "maxItems": 100,
  "maxPages": 10
}
```

### Input Parameters

| Parameter | Type | Description |
|---|---|---|
| `mode` | string | `search` or `url`. |
| `market` | string | Mango's own market path prefix, e.g. `es/es`, `gb/en` (search mode only; a pasted URL carries its own market). |
| `section` | string | `WOMEN` or `MEN` (search mode only). Other Mango sections can still be scraped via pasted URLs. |
| `searchTerm` | string | Keyword (search mode only). Mango's own search results page does not paginate. |
| `specialsOnly` | boolean | Browse Mango's real Rebajas catalog for the chosen section instead of keyword search (search mode only). |
| `minPrice` / `maxPrice` | number | Price band to keep, in the market's own currency. |
| `urls` | array | Product or category/Rebajas listing URLs to scrape (url mode only). |
| `fetchDetails` | boolean | Fetch composition, care, materials, origin, fit measures, and per-size availability. |
| `maxPages` | integer | Cap on result pages per Rebajas/URL entry; empty = unlimited. Keyword search is always one page. |
| `maxItems` | integer | Cap on total products returned; `0` = unlimited. |
| `proxy` | object | Connection settings. This actor always uses Apify RESIDENTIAL underneath regardless of this setting -- see the note below. |
| `mcpConnectors` | array | Optional MCP connectors to export results into (Notion, Linear, Airtable, Apify). |
| `notionParentPageUrl` | string | Notion connector only: page under which item pages are created. |
| `maxNotifyListings` | integer | Cap on items exported to each connector per run. Does not affect the dataset. |

### Output Example

```json
{
  "productId": "123456",
  "name": "Sample Linen Trousers",
  "brand": "Mango",
  "section": "Women",
  "collection": "OI2026",
  "model": "SACO",
  "category": "Trousers",
  "families": [{ "id": "26", "label": "Trousers", "labelEn": "Trousers" }],
  "url": "https://shop.mango.com/es/es/p/mujer/pantalones/sample-linen-trousers/123456",
  "price": 19.99,
  "currency": "EUR",
  "originalPrice": 29.99,
  "discountAmount": 10.0,
  "discountPercent": 33.4,
  "isOnSpecial": true,
  "promoLabel": "PROMOCION HASTA REBAJAS",
  "image": "https://media.mango.com/is/image/punto/123456-99-002",
  "defaultColorId": "99",
  "colors": [
    {
      "id": "99",
      "label": "Black",
      "rgb": "36,36,36",
      "sizes": [
        { "id": "36", "label": "36", "plusSize": false, "available": true, "isDelayed": false, "lastUnits": false }
      ],
      "images": [{ "code": "002", "url": "https://media.mango.com/is/image/punto/123456-99-002", "alt": "Sample Linen Trousers" }],
      "price": 19.99,
      "currency": "EUR",
      "originalPrice": 29.99,
      "discountAmount": 10.0,
      "discountPercent": 33.4,
      "isOnSpecial": true,
      "promoLabel": "PROMOCION HASTA REBAJAS"
    }
  ],
  "compositions": ["Composition: 55% linen, 45% viscose"],
  "care": ["Machine wash max 30°C, short spin", "Do not bleach"],
  "materials": [{ "name": "LINEN", "percent": 55 }, { "name": "VISCOSE FSC", "percent": 45 }],
  "originCountry": "China",
  "measures": ["Inseam 76 cm", "Side length 104 cm"],
  "lastUnits": false,
  "isSellable": true,
  "isUniqueSize": false,
  "reviews": { "averageRating": null, "totalReviewCount": 0, "items": [] }
}
```

> Sample shape: values above are illustrative placeholders, not from a live product.

### A note on reviews, sort, and brand/filters

Mango does not surface customer reviews on its product pages -- `reviews` is always returned as an empty structure rather than omitted or guessed. No server-side sort parameter was found on any Mango listing or search route in live testing, so none is exposed here rather than faking one. Mango is a single-brand shop, so there is no brand filter -- every record's `brand` is `Mango`.

### A note on proxy and cost

Mango's site has a strict anti-bot layer on every route. This actor always connects over a residential proxy internally (matched to your requested market's country), regardless of the `proxy` input -- a datacenter connection is IP-reputation blocked here. Residential traffic is billed at a materially higher rate than datacenter; factor this into large runs.

### Send results into your apps (MCP connectors)

Optionally pipe results into the apps you already use through Model Context Protocol (MCP) connectors. Authorize a connector once under Apify, Settings, Integrations, then select it in the `mcpConnectors` field. Each connector receives a condensed, human-readable summary per product (name plus key fields), while the complete record always stays in the Apify dataset. For Notion, set `notionParentPageUrl` to the page the item pages should be created under, and use `maxNotifyListings` to cap how many items are exported per connector per run. Supported connectors: Notion, Linear, Airtable, and Apify. Leave the field empty to skip; it never changes the dataset output.

# Actor input Schema

## `mode` (type: `string`):

'search' finds products by keyword and/or Mango's own Rebajas (sale) feed for a chosen section. 'url' scrapes any product or category/Rebajas listing page URL you paste, walking pagination forward automatically.

## `market` (type: `string`):

Mango's own market path prefix, e.g. 'es/es' (Spain, Castellano) or 'gb/en' (UK, English). Applies to search mode; a pasted URL in url mode carries its own market instead.

## `section` (type: `string`):

Which Mango nav section to search/browse. Only Women and Men are wired to keyword search and the Rebajas feed below; other sections (Teen, Kids, Home) can still be scraped via pasted URLs in url mode.

## `searchTerm` (type: `string`):

Free-text keyword, e.g. 'vestido' or 'pantalon lino'. Mango's own search results page does not paginate (verified live), so a keyword search always returns a single page of results. Leave empty and use Rebajas only below to browse the sale feed without a keyword.

## `specialsOnly` (type: `boolean`):

Browse Mango's own, real, queryable Rebajas (sale) catalog for the chosen section, with genuine server-side pagination -- verified live (2000+ items across dozens of pages). Does not combine with a keyword (mango.com's search and its Rebajas catalog are two separate systems); a keyword is ignored when this is on. Mango has no separate 'Outlet' catalog on shop.mango.com itself (Mango Outlet is a distinct site, out of scope here), so Rebajas is the site's one real specials taxonomy.

## `minPrice` (type: `number`):

Only return products priced at or above this amount, in the market's own currency.

## `maxPrice` (type: `number`):

Only return products priced at or below this amount, in the market's own currency.

## `urls` (type: `array`):

Paste one or more mango.com product pages or category/Rebajas listing pages, in any market. Pagination continues forward automatically from any ?page= already in the URL. Filter fields above are ignored in this mode.

## `fetchDetails` (type: `boolean`):

Adds composition, care instructions, material breakdown by percentage, country of origin, fit/garment measurements, and per-size availability (in stock / last units / delayed) from the product page. Current price, was-price/discount, and the colour/size matrix (without per-size availability) are already included without this toggle. A pasted product URL in url mode always fetches full detail regardless of this toggle.

## `maxPages` (type: `integer`):

Stop after this many result pages per Rebajas/URL entry. Only applies to Rebajas browsing and pasted category URLs (keyword search is always a single page). Leave empty for no page limit -- the run stops at Max products total.

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

Hard cap on total products returned across every search/URL entry. 0 = unlimited (still bounded by Max pages per search).

## `proxy` (type: `object`):

This actor always connects over a residential proxy (country matched to your requested market), regardless of what is selected here, because a datacenter connection is IP-reputation blocked on every mango.com route. Residential is billed at a higher rate than datacenter -- factor this into your usage.

## `mcpConnectors` (type: `array`):

Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify -> Settings -> Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON; the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).

## `notionParentPageUrl` (type: `string`):

URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.

## `maxNotifyListings` (type: `integer`):

Cap on items written to each connector per run. Does not affect the dataset.

## Actor input object example

```json
{
  "mode": "search",
  "market": "es/es",
  "section": "WOMEN",
  "searchTerm": "vestido",
  "specialsOnly": false,
  "urls": [
    "https://shop.mango.com/es/es/c/mujer/rebajas--70/93ea7423"
  ],
  "fetchDetails": false,
  "maxItems": 20,
  "proxy": {
    "useApifyProxy": true
  },
  "maxNotifyListings": 50
}
```

# Actor output Schema

## `overview` (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 = {
    "mode": "search",
    "market": "es/es",
    "searchTerm": "vestido",
    "urls": [
        "https://shop.mango.com/es/es/c/mujer/rebajas--70/93ea7423"
    ],
    "proxy": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/mango-com-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 = {
    "mode": "search",
    "market": "es/es",
    "searchTerm": "vestido",
    "urls": ["https://shop.mango.com/es/es/c/mujer/rebajas--70/93ea7423"],
    "proxy": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/mango-com-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 '{
  "mode": "search",
  "market": "es/es",
  "searchTerm": "vestido",
  "urls": [
    "https://shop.mango.com/es/es/c/mujer/rebajas--70/93ea7423"
  ],
  "proxy": {
    "useApifyProxy": true
  }
}' |
apify call abotapi/mango-com-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Mango Scraper - Prices, Rebajas, Variants & Composition",
        "description": "Scrape Mango (shop.mango.com) fashion products: current price plus strike-through Rebajas (sale) discount, full colour/size variant matrix, section and category, and (with full detail) composition, care, materials, origin, fit and per-size availability. Search by keyword or Rebajas, or paste links.",
        "version": "1.0",
        "x-build-id": "vgGsT3sDzZv8YvgNG"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~mango-com-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-mango-com-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/abotapi~mango-com-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-mango-com-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/abotapi~mango-com-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-mango-com-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",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "search",
                            "url"
                        ],
                        "type": "string",
                        "description": "'search' finds products by keyword and/or Mango's own Rebajas (sale) feed for a chosen section. 'url' scrapes any product or category/Rebajas listing page URL you paste, walking pagination forward automatically.",
                        "default": "search"
                    },
                    "market": {
                        "title": "Market (country/language)",
                        "type": "string",
                        "description": "Mango's own market path prefix, e.g. 'es/es' (Spain, Castellano) or 'gb/en' (UK, English). Applies to search mode; a pasted URL in url mode carries its own market instead.",
                        "default": "es/es"
                    },
                    "section": {
                        "title": "Section",
                        "enum": [
                            "WOMEN",
                            "MEN"
                        ],
                        "type": "string",
                        "description": "Which Mango nav section to search/browse. Only Women and Men are wired to keyword search and the Rebajas feed below; other sections (Teen, Kids, Home) can still be scraped via pasted URLs in url mode.",
                        "default": "WOMEN"
                    },
                    "searchTerm": {
                        "title": "Search keyword",
                        "type": "string",
                        "description": "Free-text keyword, e.g. 'vestido' or 'pantalon lino'. Mango's own search results page does not paginate (verified live), so a keyword search always returns a single page of results. Leave empty and use Rebajas only below to browse the sale feed without a keyword."
                    },
                    "specialsOnly": {
                        "title": "Rebajas (sale) only",
                        "type": "boolean",
                        "description": "Browse Mango's own, real, queryable Rebajas (sale) catalog for the chosen section, with genuine server-side pagination -- verified live (2000+ items across dozens of pages). Does not combine with a keyword (mango.com's search and its Rebajas catalog are two separate systems); a keyword is ignored when this is on. Mango has no separate 'Outlet' catalog on shop.mango.com itself (Mango Outlet is a distinct site, out of scope here), so Rebajas is the site's one real specials taxonomy.",
                        "default": false
                    },
                    "minPrice": {
                        "title": "Minimum price",
                        "type": "number",
                        "description": "Only return products priced at or above this amount, in the market's own currency."
                    },
                    "maxPrice": {
                        "title": "Maximum price",
                        "type": "number",
                        "description": "Only return products priced at or below this amount, in the market's own currency."
                    },
                    "urls": {
                        "title": "URLs to scrape",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Paste one or more mango.com product pages or category/Rebajas listing pages, in any market. Pagination continues forward automatically from any ?page= already in the URL. Filter fields above are ignored in this mode.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "fetchDetails": {
                        "title": "Fetch full product detail",
                        "type": "boolean",
                        "description": "Adds composition, care instructions, material breakdown by percentage, country of origin, fit/garment measurements, and per-size availability (in stock / last units / delayed) from the product page. Current price, was-price/discount, and the colour/size matrix (without per-size availability) are already included without this toggle. A pasted product URL in url mode always fetches full detail regardless of this toggle.",
                        "default": false
                    },
                    "maxPages": {
                        "title": "Max pages per search",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Stop after this many result pages per Rebajas/URL entry. Only applies to Rebajas browsing and pasted category URLs (keyword search is always a single page). Leave empty for no page limit -- the run stops at Max products total."
                    },
                    "maxItems": {
                        "title": "Max products total",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Hard cap on total products returned across every search/URL entry. 0 = unlimited (still bounded by Max pages per search).",
                        "default": 20
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "This actor always connects over a residential proxy (country matched to your requested market), regardless of what is selected here, because a datacenter connection is IP-reputation blocked on every mango.com route. Residential is billed at a higher rate than datacenter -- factor this into your usage.",
                        "default": {
                            "useApifyProxy": true
                        }
                    },
                    "mcpConnectors": {
                        "title": "Pipe results into your apps (optional)",
                        "type": "array",
                        "description": "Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify -> Settings -> Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON; the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
                    },
                    "notionParentPageUrl": {
                        "title": "Notion parent page (Notion connector only)",
                        "type": "string",
                        "description": "URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
                    },
                    "maxNotifyListings": {
                        "title": "Max items to export per connector",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Cap on items written to each connector per run. Does not affect the dataset.",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
