# 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, 100.0% runs succeeded, 0 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 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 catalog-service GraphQL API for discovery and HTML parsing with JSON-LD extraction for full product details.

### 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 filter — leave blank to browse all extensions (optional for all modes) |
| `slugs` | array | Extension slugs for `getBySlug` mode |
| `maxItems` | integer | Max results to return (default: 100, max: 10000) |

### Available categories

Leave `category` blank to browse all ~3,700 extensions.

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

### Example inputs

**Search for payment extensions:**

```json
{
  "mode": "search",
  "query": "payment",
  "maxItems": 20
}
```

**Browse all extensions:**

```json
{
  "mode": "browse",
  "maxItems": 50
}
```

**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 catalog-service GraphQL API (`catalog-service.adobe.io/graphql`) for extension discovery and HTML parsing with Schema.org JSON-LD extraction for full product details. No authentication or proxy 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). Leave blank to browse all extensions.

## `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": "browse",
  "query": "payment",
  "category": "payments-security",
  "slugs": [],
  "maxItems": 20
}
```

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

// 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": "browse",
    "query": "payment",
    "category": "payments-security",
    "slugs": [],
    "maxItems": 20,
}

# 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(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "browse",
  "query": "payment",
  "category": "payments-security",
  "slugs": [],
  "maxItems": 20
}' |
apify call crawlerbros/adobe-commerce-scraper --silent --output-dataset

```

## MCP server setup

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

```

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

## OpenAPI specification

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