# Adobe Commerce Marketplace Scraper (`crawlerbros/adobe-commerce-scraper`) Actor

Scrape Adobe Commerce Marketplace (formerly Magento Marketplace) - search 3700+ extensions by keyword or category, browse by type, or fetch details by slug. Returns name, description, categories, developer, pricing, rating, review count, version, compatibility, icon, screenshots, and more.

- **URL**: https://apify.com/crawlerbros/adobe-commerce-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## 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

## Adobe Commerce Marketplace Scraper

Scrape [Adobe Commerce Marketplace](https://commercemarketplace.adobe.com/) (formerly Magento Marketplace) — the official marketplace for 3,700+ Adobe Commerce and Magento 2 extensions. Search by keyword, browse by category, or fetch specific extensions by slug. Returns full metadata including name, description, categories, developer details, pricing, rating, version, compatibility, screenshots, and more.

No authentication, no proxy, no paid add-ons required. Works entirely via the public REST search API and HTML parsing.

### What this actor does

- **Three modes:** `search`, `browse`, `getBySlug`
- **Rich metadata:** name, description, categories, developer name & URL, pricing, rating, review count, current version, compatibility (Adobe Commerce cloud/on-prem/Magento Open Source), screenshots, license type, and build type
- **Search by keyword:** Find extensions matching any text query (e.g. "payment gateway", "SEO", "shipping")
- **Browse by category:** Get all extensions in Payments & Security, Shipping, Marketing, Customer Support, and more
- **Fetch by slug:** Direct lookup of known extensions by their URL slug
- **Empty fields omitted:** Only fields with real data are included in output

### Output fields (per extension)

| Field | Type | Description |
|---|---|---|
| `id` | string | Internal product ID |
| `slug` | string | URL slug (e.g. `stripe-stripe-payments`) |
| `name` | string | Extension name |
| `description` | string | Full description (HTML stripped) |
| `shortDescription` | string | Short description if available |
| `sku` | string | Composer package name (e.g. `stripe/stripe-payments`) |
| `categories` | array | Category path (e.g. `["Extensions", "Payments & Security"]`) |
| `developerName` | string | Extension developer / seller name |
| `developerUrl` | string | Developer's marketplace profile URL |
| `integratorName` | string | Integration company name |
| `contactEmail` | string | Vendor contact email |
| `price` | number | Price in USD (0 for free) |
| `priceCurrency` | string | Currency code (e.g. `USD`) |
| `rating` | number | Average rating (0–5) |
| `reviewCount` | integer | Number of reviews |
| `currentVersion` | string | Latest version (e.g. `4.5.0`) |
| `compatibleWith` | array | Platform/version compatibility list |
| `buildType` | string | Build type (e.g. `Stable Build`) |
| `updatedAt` | string | Last updated date |
| `licenseType` | string | License type |
| `iconUrl` | string | Extension icon image URL |
| `screenshotUrls` | array | Screenshot image URLs |
| `productUrl` | string | Full marketplace product URL |
| `recordType` | string | Always `extension` |
| `scrapedAt` | string | UTC ISO timestamp |

### Input

| Parameter | Type | Description |
|---|---|---|
| `mode` | select | `search`, `browse`, or `getBySlug` |
| `query` | string | Search keyword (required for `search` mode) |
| `category` | select | Category slug (required for `browse`, optional for `search`) |
| `slugs` | array | Extension slugs for `getBySlug` mode |
| `maxItems` | integer | Max results to return (default: 100, max: 10000) |

### Available categories

| Slug | Name |
|---|---|
| `payments-security` | Payments & Security |
| `marketing-automation-email-marketing` | Marketing & Email Marketing |
| `shipping-fulfillment` | Shipping & Fulfillment |
| `customer-support` | Customer Support |
| `accounting-finance` | Accounting & Finance |
| `site-optimization` | Site Optimization |
| `content-customizations` | Content & Customizations |
| `reporting-analytics` | Reporting & Analytics |
| `inventory-order-management` | Inventory & Order Management |
| `b2b` | B2B |
| `erp` | ERP |

### Example inputs

**Search for payment extensions:**
```json
{
  "mode": "search",
  "query": "payment",
  "maxItems": 20
}
````

**Browse Payments & Security category:**

```json
{
  "mode": "browse",
  "category": "payments-security",
  "maxItems": 50
}
```

**Fetch a specific extension by slug:**

```json
{
  "mode": "getBySlug",
  "slugs": ["stripe-stripe-payments", "braintree-magento2-braintree"]
}
```

### FAQs

**What is Adobe Commerce Marketplace?**
Adobe Commerce Marketplace (formerly Magento Marketplace) is the official store for extensions, integrations, and themes for Adobe Commerce and Magento 2 e-commerce platforms. It hosts 3,700+ extensions from third-party developers.

**Do I need an Adobe account?**
No. All data is scraped from publicly available marketplace pages — no login or API key required.

**What is a "slug"?**
The slug is the URL path of an extension. For example, `stripe-stripe-payments` is the slug for `https://commercemarketplace.adobe.com/stripe-stripe-payments.html`.

**How many extensions can I scrape?**
The marketplace has ~3,700 active extensions. Set `maxItems` up to 10,000 to retrieve all of them.

**Are ratings available for all extensions?**
Ratings only appear when an extension has received reviews. Extensions without any reviews will not have `rating` or `reviewCount` fields.

**Why does fetching many extensions take time?**
Each extension requires fetching its dedicated product page to extract full metadata. A small delay between requests ensures reliable scraping.

### Data source

Data is fetched from [commercemarketplace.adobe.com](https://commercemarketplace.adobe.com/) using the public REST search API for discovery and HTML parsing with Schema.org JSON-LD extraction for product details. No authentication required.

# Actor input Schema

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

What to fetch.

## `query` (type: `string`):

Keyword query to search for extensions (mode=search).

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

Browse or filter by category (mode=browse or mode=search).

## `slugs` (type: `array`):

List of extension slugs (e.g. 'stripe-stripe-payments', 'braintree-magento2-braintree'). Can also be full product URLs.

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

Maximum number of extensions to return.

## Actor input object example

```json
{
  "mode": "search",
  "query": "payment",
  "category": "",
  "slugs": [],
  "maxItems": 100
}
```

# Actor output Schema

## `extensions` (type: `string`):

Dataset containing all scraped Adobe Commerce Marketplace extensions.

# 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",
    "query": "payment",
    "category": "",
    "slugs": [],
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/adobe-commerce-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",
    "query": "payment",
    "category": "",
    "slugs": [],
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/adobe-commerce-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",
  "query": "payment",
  "category": "",
  "slugs": [],
  "maxItems": 100
}' |
apify call crawlerbros/adobe-commerce-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Adobe Commerce Marketplace Scraper",
        "description": "Scrape Adobe Commerce Marketplace (formerly Magento Marketplace) - search 3700+ extensions by keyword or category, browse by type, or fetch details by slug. Returns name, description, categories, developer, pricing, rating, review count, version, compatibility, icon, screenshots, and more.",
        "version": "1.0",
        "x-build-id": "tTPJEprIwN9BsxQpN"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~adobe-commerce-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-adobe-commerce-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~adobe-commerce-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-adobe-commerce-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~adobe-commerce-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-adobe-commerce-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",
                            "browse",
                            "getBySlug"
                        ],
                        "type": "string",
                        "description": "What to fetch.",
                        "default": "search"
                    },
                    "query": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Keyword query to search for extensions (mode=search)."
                    },
                    "category": {
                        "title": "Category",
                        "enum": [
                            "",
                            "payments-security",
                            "marketing-automation-email-marketing",
                            "shipping-fulfillment",
                            "customer-support",
                            "accounting-finance",
                            "site-optimization",
                            "content-customizations",
                            "reporting-analytics",
                            "inventory-order-management",
                            "b2b",
                            "erp"
                        ],
                        "type": "string",
                        "description": "Browse or filter by category (mode=browse or mode=search).",
                        "default": ""
                    },
                    "slugs": {
                        "title": "Extension slugs (mode=getBySlug)",
                        "type": "array",
                        "description": "List of extension slugs (e.g. 'stripe-stripe-payments', 'braintree-magento2-braintree'). Can also be full product URLs.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of extensions to return.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
