# Monday.com Marketplace Scraper (`crawlerbros/monday-marketplace-scraper`) Actor

Scrape the monday.com App Marketplace, browse featured, trending, editor's choice, and new apps; browse by category; or search for specific apps. Extracts app name, developer, rating, install count, payment type, categories, keywords, and direct app URL

- **URL**: https://apify.com/crawlerbros/monday-marketplace-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 7 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

## Monday.com Marketplace Scraper

Scrape the [monday.com App Marketplace](https://monday.com/marketplace) — the official app store for monday.com. Browse featured apps, explore categories like CRM, Integrations, HR, and Finance, or search for specific apps. Extracts app name, developer, rating, install count, payment type, categories, keywords, and direct app URL.

### What it does

- **Browse homepage** — extract apps from all homepage sections (Featured, Trending this week, Editor's choice, New apps, and more)
- **Browse by category** — get all apps in a specific category (20 categories supported)
- **Search** — find apps by keyword or phrase
- **Filter by payment type** — show only Free, Paid, or Freemium apps
- Returns app ratings, install counts, developer names, and direct links

### Input

| Field | Type | Description | Default |
|---|---|---|---|
| `mode` | select | `browse`, `byCategory`, or `search` | `browse` |
| `category` | select | App category (required for `byCategory` mode) | `featured` |
| `searchQuery` | string | Search keyword (required for `search` mode) | `CRM` |
| `paymentType` | select | Filter by payment type (optional) | All |
| `maxItems` | integer | Maximum apps to return (1–500) | `100` |

#### Supported Categories

| Value | Label |
|---|---|
| `all-apps` | All apps |
| `featured` | Featured |
| `crm` | CRM |
| `team-management` | Team management |
| `productivity-efficiency` | Productivity & efficiency |
| `integrations` | Integrations |
| `collaboration` | Collaboration |
| `reporting-analytics` | Reporting & analytics |
| `import-export` | Import & export |
| `views-by-monday` | Views by monday |
| `marketing` | Marketing |
| `editors-choice` | Editor's choice |
| `new-apps` | New apps |
| `software-development` | Software development |
| `project-management` | Project management |
| `trending-this-week` | Trending this week |
| `design-creative` | Design & creative |
| `hr` | HR |
| `finance` | Finance |
| `board-account-functionality` | Board/Account functionality |

#### Example Inputs

**Browse featured apps:**
```json
{
  "mode": "browse",
  "maxItems": 50
}
````

**Browse CRM category:**

```json
{
  "mode": "byCategory",
  "category": "crm",
  "maxItems": 100
}
```

**Search for apps:**

```json
{
  "mode": "search",
  "searchQuery": "Slack",
  "paymentType": "free",
  "maxItems": 20
}
```

### Output

Each record represents one app in the marketplace:

| Field | Type | Description |
|---|---|---|
| `appId` | string | Unique app identifier |
| `appName` | string | App display name |
| `developerName` | string | Developer or company name |
| `appShortDescription` | string | Brief app description |
| `paymentType` | string | `free`, `paid`, or `freemium` |
| `appRating` | float | Average user rating (1–5) |
| `installsCount` | integer | Total installs |
| `categories` | array | App categories (from chipContent) |
| `keywords` | array | App keywords/tags |
| `availableForProducts` | array | monday.com products the app supports |
| `appLogoUrl` | string | App logo image URL |
| `appUrl` | string | Direct link to the app on monday.com |
| `createdAt` | string | ISO-8601 app creation date |
| `scrapedAt` | string | ISO-8601 scrape timestamp |

#### Example Output Record

```json
{
  "appId": "1234",
  "appName": "HubSpot CRM",
  "developerName": "HubSpot",
  "appShortDescription": "Sync your HubSpot CRM data with monday.com",
  "paymentType": "free",
  "appRating": 4.7,
  "installsCount": 12500,
  "categories": ["CRM", "Integrations"],
  "keywords": ["crm", "sales", "hubspot"],
  "availableForProducts": ["monday.com", "monday sales CRM"],
  "appLogoUrl": "https://dapulse-res.cloudinary.com/image/upload/monday_platform/apps/logos/hubspot.png",
  "appUrl": "https://monday.com/marketplace/apps/hubspot-crm",
  "createdAt": "2023-01-15T00:00:00+00:00",
  "scrapedAt": "2026-05-20T10:00:00+00:00"
}
```

### Use cases

- **App discovery** — find the most popular monday.com integrations for your workflow
- **Competitive analysis** — monitor competitor apps, ratings, and install counts
- **Category research** — find all free apps in Finance or HR categories
- **Partnership scouting** — identify high-rated developers and integrations
- **Market research** — track trends in monday.com app adoption

### FAQ

**Do I need a monday.com account?**
No. The monday.com Marketplace is publicly accessible and no login is required.

**How many apps are available?**
The monday.com Marketplace has hundreds of apps across 20+ categories.

**What does `mode=browse` return?**
It extracts all apps from the homepage sections: Featured, Trending this week, Editor's choice, New apps, and Integrations sections.

**Can I get all apps in a category?**
Yes — use `mode=byCategory` with the category slug (e.g., `"crm"`) to get all apps in that category.

**Are ratings and install counts accurate?**
Yes — data is extracted directly from the monday.com Marketplace React Query cache, which contains live data loaded by the marketplace website.

**Why use Playwright?**
The monday.com Marketplace is a React SPA (Single Page Application) that loads all data dynamically via API calls. Playwright renders the page and reads the React Query cache to extract the complete data.

### Technical Notes

This actor uses Playwright (headless Chromium) to load the monday.com Marketplace page and extracts data from the React Query (`window.marketplaceQueryClient`) cache. No authentication, cookies, or proxies are required — the marketplace is fully public.

# Actor input Schema

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

How to scrape the marketplace.

## `category` (type: `string`):

The app category to browse. Required when mode=byCategory.

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

Keyword or phrase to search for (mode=search only).

## `paymentType` (type: `string`):

Optional — filter apps by payment type. Values match the monday.com API.

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

Maximum number of apps to return (1–500).

## Actor input object example

```json
{
  "mode": "browse",
  "category": "featured",
  "searchQuery": "CRM",
  "paymentType": "",
  "maxItems": 100
}
```

# Actor output Schema

## `apps` (type: `string`):

Dataset containing all scraped monday.com marketplace apps.

# 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": "browse",
    "category": "featured",
    "searchQuery": "CRM",
    "paymentType": "",
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/monday-marketplace-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": "browse",
    "category": "featured",
    "searchQuery": "CRM",
    "paymentType": "",
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/monday-marketplace-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": "browse",
  "category": "featured",
  "searchQuery": "CRM",
  "paymentType": "",
  "maxItems": 100
}' |
apify call crawlerbros/monday-marketplace-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Monday.com Marketplace Scraper",
        "description": "Scrape the monday.com App Marketplace, browse featured, trending, editor's choice, and new apps; browse by category; or search for specific apps. Extracts app name, developer, rating, install count, payment type, categories, keywords, and direct app URL",
        "version": "1.0",
        "x-build-id": "TFO98YVoRf1S9Ptei"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~monday-marketplace-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-monday-marketplace-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/crawlerbros~monday-marketplace-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-monday-marketplace-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/crawlerbros~monday-marketplace-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-monday-marketplace-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": [
                            "browse",
                            "byCategory",
                            "search"
                        ],
                        "type": "string",
                        "description": "How to scrape the marketplace.",
                        "default": "browse"
                    },
                    "category": {
                        "title": "Category (mode=byCategory)",
                        "enum": [
                            "all-apps",
                            "featured",
                            "crm",
                            "team-management",
                            "productivity-efficiency",
                            "integrations",
                            "collaboration",
                            "reporting-analytics",
                            "import-export",
                            "views-by-monday",
                            "marketing",
                            "editors-choice",
                            "new-apps",
                            "software-development",
                            "project-management",
                            "trending-this-week",
                            "design-creative",
                            "hr",
                            "finance",
                            "board-account-functionality"
                        ],
                        "type": "string",
                        "description": "The app category to browse. Required when mode=byCategory.",
                        "default": "featured"
                    },
                    "searchQuery": {
                        "title": "Search query (mode=search)",
                        "type": "string",
                        "description": "Keyword or phrase to search for (mode=search only).",
                        "default": "CRM"
                    },
                    "paymentType": {
                        "title": "Payment type filter",
                        "enum": [
                            "",
                            "free",
                            "freeplanavailable",
                            "trial"
                        ],
                        "type": "string",
                        "description": "Optional — filter apps by payment type. Values match the monday.com API.",
                        "default": ""
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of apps to return (1–500).",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
