# Adobe Exchange Scraper (`crawlerbros/adobe-exchange-scraper`) Actor

Scrape Adobe Exchange marketplace - search extensions, plugins, and integrations for Creative Cloud (Photoshop, Illustrator, Premiere Pro, After Effects, etc.) and Adobe Commerce. Returns name, description, developer, categories, tags, version, screenshots, product URLs, and more.

- **URL**: https://apify.com/crawlerbros/adobe-exchange-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Developer tools, E-commerce, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 4 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

## Adobe Exchange Scraper

Scrape the **Adobe Exchange marketplace** — search extensions, plugins, and integrations for Creative Cloud (Photoshop, Illustrator, Premiere Pro, After Effects, InDesign, and more) and Adobe Commerce / Experience Cloud. Returns name, description, developer, categories, tags, version, screenshots, product URLs, and more.

### What it does

- **Search** Adobe Commerce / Experience Cloud extensions by keyword (e.g., "export", "payment", "shipping")
- **Browse** featured Creative Cloud plugins (Photoshop panels, Illustrator plugins, etc.)
- **Fetch by ID** — retrieve specific extensions by their Adobe Exchange app ID

No API key, login, or proxy required. Scraper uses the same public API that powers the Adobe Exchange website.

### Input

| Field | Type | Description | Default |
|-------|------|-------------|---------|
| `mode` | Select | What to fetch: `search`, `browse`, or `getById` | `search` |
| `query` | Text | Keyword to search for (mode=search) | `export` |
| `appType` | Select | `EC` (Commerce/Experience Cloud), `CC` (Creative Cloud), or all | `EC` |
| `ids` | List | Adobe Exchange app IDs to fetch (mode=getById) | `[]` |
| `maxItems` | Integer | Maximum number of extensions to return (1–10,000) | `100` |

#### Mode descriptions

| Mode | Description |
|------|-------------|
| `search` | Search Commerce (EC) or Creative Cloud (CC) extensions by keyword. EC type supports full-text search. CC type returns featured results. |
| `browse` | Browse featured Creative Cloud plugins. Returns the curated featured list. |
| `getById` | Fetch specific extensions by their Adobe Exchange app ID (numeric or alphanumeric). |

#### Extension types

| Value | Description |
|-------|-------------|
| `EC` | Adobe Commerce / Experience Cloud extensions (formerly Magento Marketplace integrations) |
| `CC` | Adobe Creative Cloud plugins (Photoshop, Illustrator, Premiere Pro, After Effects, InDesign, XD, etc.) |

### Output

Each record contains the following fields (all optional — only populated when data is available):

| Field | Type | Description |
|-------|------|-------------|
| `id` | String | Adobe Exchange app ID |
| `name` | String | Extension / plugin name |
| `summary` | String | Short summary / tagline |
| `description` | String | Full description |
| `version` | String | Current version number |
| `releaseNote` | String | Latest release notes |
| `type` | String | Extension type (`EC` or `CC`) |
| `appType` | String | App type (e.g., `extension`, `plugin`) |
| `appSubType` | String | App subtype (e.g., `premium`, `free`) |
| `developerName` | String | Publisher / developer name |
| `developerLevel` | String | Publisher tier (Gold, Platinum, etc.) |
| `developerWebsite` | String | Publisher website URL |
| `developerDeeplinkUrl` | String | Link to publisher's Exchange profile |
| `adobeProducts` | Array | Compatible Adobe products (e.g., Photoshop, Illustrator) |
| `optionalProducts` | Array | Optional compatible Adobe products |
| `industries` | Array | Target industry categories |
| `targetCountries` | Array | Target country codes |
| `tags` | Array | Custom and standard tags |
| `supportedLanguages` | Array | Supported language codes |
| `iconUrl` | String | Extension icon URL |
| `featuredImageUrl` | String | Featured / banner image URL |
| `screenshotUrls` | Array | Screenshot / preview image URLs |
| `supportEmail` | String | Support email address |
| `extensionUrl` | String | Canonical Adobe Exchange product page URL |
| `publishedDate` | String | First published date (ISO 8601) |
| `lastModified` | String | Last modified date (ISO 8601) |
| `isVerified` | Boolean | Whether the extension is Adobe-verified |
| `isDownloadable` | Boolean | Whether the extension is directly downloadable |
| `perpetualIndicator` | Boolean | Whether the license is perpetual |
| `recordType` | String | Always `extension` |
| `scrapedAt` | String | Timestamp when the record was scraped (ISO 8601 UTC) |

### Sample output

```json
{
  "id": "109051",
  "name": "Export Manager Pro",
  "summary": "Batch export assets from Adobe Commerce to multiple formats",
  "description": "Export Manager Pro provides a comprehensive solution for exporting...",
  "version": "2.4.1",
  "type": "EC",
  "appType": "extension",
  "developerName": "Acme Commerce Solutions",
  "developerLevel": "Gold",
  "developerWebsite": "https://acmecommerce.io",
  "adobeProducts": ["Adobe Commerce"],
  "industries": ["Retail", "eCommerce"],
  "targetCountries": ["US", "CA", "GB"],
  "tags": ["export", "batch", "csv", "pdf"],
  "supportedLanguages": ["en"],
  "iconUrl": "https://cdn.magento.com/extensions/109051/icon.png",
  "extensionUrl": "https://exchange.adobe.com/apps/ec/109051",
  "publishedDate": "2022-03-10T00:00:00Z",
  "lastModified": "2024-01-15T00:00:00Z",
  "isVerified": true,
  "isDownloadable": false,
  "recordType": "extension",
  "scrapedAt": "2024-06-01T12:00:00+00:00"
}
````

### Compatible Adobe products

The scraper maps internal app codes to human-readable product names:

| Code | Product |
|------|---------|
| PHSP | Photoshop |
| ILST | Illustrator |
| IDSN | InDesign |
| PPRO | Premiere Pro |
| AEFT | After Effects |
| SPRK | XD |
| MDOC | Acrobat |
| ANMT | Animate |
| FLPR | Fresco |
| KBRG | Bridge |
| COMMC | Adobe Commerce |
| DEXM | Experience Manager |

### Use cases

- **Extension market research** — analyze what plugins are available for specific Adobe products
- **Competitive analysis** — track extensions by developer, category, or product compatibility
- **Extension monitoring** — track version updates and new releases for specific extension IDs
- **Data aggregation** — build directories of Adobe Commerce integrations for payment, shipping, or marketing
- **Lead generation** — identify extension developers and their contact information

### FAQ

**Do I need an Adobe account or API key?**
No. The scraper uses the same public API that powers the Adobe Exchange website. No credentials required.

**What is the difference between EC and CC extensions?**
EC (Experience Cloud) extensions are integrations for Adobe Commerce (formerly Magento), Experience Manager, and other enterprise products. CC (Creative Cloud) extensions are plugins and panels for desktop apps like Photoshop, Illustrator, and Premiere Pro.

**Can I search Creative Cloud plugins by keyword?**
Yes — set `appType` to `CC` and provide a `query`. However, the CC search endpoint returns fewer results than EC search. For broader CC coverage, use `mode=browse` to get the featured plugin list.

**How many extensions can I scrape?**
The `maxItems` parameter supports up to 10,000 items. Adobe Exchange typically has thousands of EC extensions available.

**How do I find a specific extension by ID?**
Set `mode` to `getById` and provide the extension ID in the `ids` field. IDs can be numeric (e.g., `109051`) or alphanumeric (e.g., `ab4uu4uvot`). You can find IDs in the extension URL: `exchange.adobe.com/apps/ec/{id}`.

**Are prices included in the output?**
Adobe Exchange does not expose pricing data via its API. Pricing information is only shown on the extension detail pages for some extensions and is not returned by the API.

**Can I filter by Adobe product (e.g., only Photoshop plugins)?**
Currently, direct product filtering is available for browse mode (CC featured). For search mode, including the product name in the query (e.g., "photoshop panel") is the most effective approach.

### Data source

Data is sourced from Adobe Exchange (`exchange.adobe.com`) via its official public API at `appregistry.adobe.io`. Adobe Exchange is the official marketplace for Adobe Creative Cloud plugins and Adobe Commerce integrations. The API is publicly accessible without authentication.

# Actor input Schema

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

What to fetch.

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

Keyword query to search for extensions (mode=search). Works best for Commerce (EC type) extensions.

## `appType` (type: `string`):

Type of extension to search/browse.

## `ids` (type: `array`):

List of Adobe Exchange app IDs (e.g. '109051', 'ab4uu4uvot').

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

Maximum number of extensions to return.

## Actor input object example

```json
{
  "mode": "search",
  "query": "export",
  "appType": "EC",
  "ids": [],
  "maxItems": 100
}
```

# Actor output Schema

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

Dataset containing all scraped Adobe Exchange extensions and plugins.

# 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": "export",
    "appType": "EC",
    "ids": [],
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/adobe-exchange-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": "export",
    "appType": "EC",
    "ids": [],
    "maxItems": 100,
}

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

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Adobe Exchange Scraper",
        "description": "Scrape Adobe Exchange marketplace - search extensions, plugins, and integrations for Creative Cloud (Photoshop, Illustrator, Premiere Pro, After Effects, etc.) and Adobe Commerce. Returns name, description, developer, categories, tags, version, screenshots, product URLs, and more.",
        "version": "1.0",
        "x-build-id": "cI7kpfS3FoF6LbAZD"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~adobe-exchange-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-adobe-exchange-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-exchange-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-adobe-exchange-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-exchange-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-adobe-exchange-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",
                            "getById"
                        ],
                        "type": "string",
                        "description": "What to fetch.",
                        "default": "search"
                    },
                    "query": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Keyword query to search for extensions (mode=search). Works best for Commerce (EC type) extensions."
                    },
                    "appType": {
                        "title": "Extension type",
                        "enum": [
                            "EC",
                            "CC",
                            ""
                        ],
                        "type": "string",
                        "description": "Type of extension to search/browse.",
                        "default": "EC"
                    },
                    "ids": {
                        "title": "Extension IDs (mode=getById)",
                        "type": "array",
                        "description": "List of Adobe Exchange app IDs (e.g. '109051', 'ab4uu4uvot').",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
