# Framer Marketplace Templates & Plugins Scraper (`crawlerbros/framer-marketplace-scraper`) Actor

Scrape Framer Marketplace with templates, plugins, and components. Search by keyword, browse by category, find free items, or fetch details for specific marketplace URLs.

- **URL**: https://apify.com/crawlerbros/framer-marketplace-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Developer tools, E-commerce, 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

## Framer Marketplace Templates & Plugins Scraper

Extract templates, plugins, and components from the Framer Marketplace. Search by keyword, browse by category, get featured items, or fetch details for specific marketplace URLs — all without any authentication.

### What It Does

The Framer Marketplace Scraper gives you structured access to the full Framer Marketplace catalog:

- **Search templates or plugins** by keyword across thousands of items
- **Browse by category** (portfolio, SaaS, ecommerce, agency, blog, etc.)
- **Get featured and trending items** across the marketplace
- **Fetch specific items** by providing their marketplace URLs
- Filter results by price (free/paid), item type, and sort order

Each result includes the item title, author, price, preview URL, thumbnail, usage metrics, and more — ready for analysis, research, or integration.

### Input Parameters

| Parameter | Type | Description | Default |
|---|---|---|---|
| `mode` | Select | What to scrape: `searchTemplates`, `searchPlugins`, `byCategory`, `featured`, `getItem` | `searchTemplates` |
| `searchQuery` | Text | Keywords to search for | `portfolio` |
| `startUrls` | List | Marketplace URLs for mode=getItem | — |
| `category` | Select | Category to browse (mode=byCategory): portfolio, business, saas, ecommerce, etc. | `portfolio` |
| `itemType` | Select | Filter by type: `template`, `plugin`, `component` | `template` |
| `isFree` | Boolean | Only return free items | `false` |
| `sortBy` | Select | Sort order: `popular`, `new`, `featured` | `popular` |
| `maxItems` | Integer | Maximum number of results (1–5000) | `20` |

### Output Fields

Each record in the dataset contains:

| Field | Type | Description |
|---|---|---|
| `itemId` | String | Unique Framer marketplace item ID |
| `type` | String | Item type: template, plugin, or component |
| `title` | String | Item name |
| `description` | String | Item description |
| `author` | String | Creator name |
| `authorUrl` | String | Creator's Framer profile URL |
| `price` | Number | Price in USD (0.0 = free) |
| `currency` | String | Currency code (USD, EUR, etc.) |
| `isFree` | Boolean | Whether the item is free |
| `previewUrl` | String | Live preview URL of the template |
| `thumbnailUrl` | String | Thumbnail image URL |
| `screenshots` | Array | Additional screenshot URLs |
| `url` | String | Framer Marketplace item URL |
| `likeCount` | Integer | Number of remixes/uses |
| `conversionRate` | Number | Marketplace conversion rate |
| `publishedAt` | String | ISO 8601 publish date |
| `createdAt` | String | ISO 8601 creation date |
| `recordType` | String | Always `marketplace_item` |
| `scrapedAt` | String | ISO 8601 scrape timestamp |

### Example Output

```json
{
  "itemId": "48274",
  "type": "template",
  "title": "Portfolito",
  "description": "A personal Portfolio & Landing Page Template designed to showcase your work.",
  "author": "Pentaclay",
  "authorUrl": "https://www.framer.com/@pentaclay/",
  "price": 0.0,
  "currency": "USD",
  "isFree": true,
  "previewUrl": "https://pentos.framer.website",
  "thumbnailUrl": "https://y4pdgnepgswqffpt.public.blob.vercel-storage.com/templates/48274/pentos-xyz",
  "url": "https://www.framer.com/marketplace/templates/pentos/",
  "likeCount": 10284,
  "conversionRate": 0.4186,
  "publishedAt": "2024-11-18T15:16:10.814Z",
  "recordType": "marketplace_item",
  "scrapedAt": "2026-05-17T12:00:00.000000+00:00"
}
````

### Modes

#### searchTemplates

Search across all Framer templates by keyword. Set `searchQuery` to your search terms (e.g., "portfolio", "SaaS landing page", "dark minimal").

#### searchPlugins

Search across all Framer plugins and extensions by keyword.

#### byCategory

Browse all items within a specific category. Set `category` to one of: portfolio, business, landing-page, blog, ecommerce, agency, saas, personal, minimal, dark, ai, app, education, crypto, and more.

#### featured

Retrieve the highest-ranked and featured items on the marketplace. Does not require a search query.

#### getItem

Fetch detailed information for one or more specific marketplace items. Provide a list of Framer Marketplace URLs in the `startUrls` field.

### FAQ

**Do I need a Framer account or API key?**
No. The Framer Marketplace is publicly accessible and this scraper requires no credentials.

**How many items can I scrape?**
Up to 5,000 items per run. For larger datasets, run multiple searches with different queries.

**Are plugin items supported?**
Yes. Set `mode` to `searchPlugins` to search plugins, or set `itemType` to `plugin` in category/featured mode.

**Can I filter to free templates only?**
Yes. Set `isFree` to `true` to return only free marketplace items.

**How fresh is the data?**
The scraper reads live data from the Framer Marketplace on each run.

**What is the likeCount field?**
Framer calls this "remixes" — the number of times a template has been used/forked by community members.

### Limitations

- This scraper uses Framer's internal Next.js RSC routes. Page structure may change if Framer updates their platform.
- Some very new or unlisted items may not appear in search results.
- Plugin details (install count, compatibility) may vary by item.
- Rate limiting may apply for very large runs.

# Actor input Schema

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

What to scrape from Framer Marketplace.

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

Keywords to search for (used in searchTemplates and searchPlugins modes).

## `startUrls` (type: `array`):

List of Framer Marketplace URLs to fetch details for (e.g. https://www.framer.com/marketplace/templates/portfolite/).

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

Browse all items in this category.

## `itemType` (type: `string`):

Filter results to templates or plugins.

## `isFree` (type: `boolean`):

When enabled, only return items with a free price.

## `sortBy` (type: `string`):

Order results by this field.

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

Maximum number of marketplace items to return.

## Actor input object example

```json
{
  "mode": "searchTemplates",
  "searchQuery": "portfolio",
  "startUrls": [],
  "category": "portfolio",
  "itemType": "template",
  "isFree": false,
  "sortBy": "popular",
  "maxItems": 20
}
```

# Actor output Schema

## `items` (type: `string`):

Dataset containing all scraped Framer Marketplace items.

# 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": "searchTemplates",
    "searchQuery": "portfolio",
    "startUrls": [],
    "category": "portfolio",
    "itemType": "template",
    "isFree": false,
    "sortBy": "popular",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/framer-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": "searchTemplates",
    "searchQuery": "portfolio",
    "startUrls": [],
    "category": "portfolio",
    "itemType": "template",
    "isFree": False,
    "sortBy": "popular",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/framer-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": "searchTemplates",
  "searchQuery": "portfolio",
  "startUrls": [],
  "category": "portfolio",
  "itemType": "template",
  "isFree": false,
  "sortBy": "popular",
  "maxItems": 20
}' |
apify call crawlerbros/framer-marketplace-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Framer Marketplace Templates & Plugins Scraper",
        "description": "Scrape Framer Marketplace with templates, plugins, and components. Search by keyword, browse by category, find free items, or fetch details for specific marketplace URLs.",
        "version": "1.0",
        "x-build-id": "6hRhlUuTpNAgexlke"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~framer-marketplace-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-framer-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~framer-marketplace-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-framer-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~framer-marketplace-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-framer-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": [
                            "searchTemplates",
                            "searchPlugins",
                            "byCategory",
                            "featured",
                            "getItem"
                        ],
                        "type": "string",
                        "description": "What to scrape from Framer Marketplace.",
                        "default": "searchTemplates"
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Keywords to search for (used in searchTemplates and searchPlugins modes).",
                        "default": "portfolio"
                    },
                    "startUrls": {
                        "title": "Start URLs (mode=getItem)",
                        "type": "array",
                        "description": "List of Framer Marketplace URLs to fetch details for (e.g. https://www.framer.com/marketplace/templates/portfolite/).",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "category": {
                        "title": "Category (mode=byCategory)",
                        "enum": [
                            "portfolio",
                            "business",
                            "landing-page",
                            "blog",
                            "ecommerce",
                            "agency",
                            "saas",
                            "personal",
                            "minimal",
                            "dark",
                            "ai",
                            "app",
                            "education",
                            "crypto",
                            "health",
                            "legal",
                            "music",
                            "real-estate",
                            "restaurant",
                            "travel"
                        ],
                        "type": "string",
                        "description": "Browse all items in this category.",
                        "default": "portfolio"
                    },
                    "itemType": {
                        "title": "Item type",
                        "enum": [
                            "template",
                            "plugin",
                            "component"
                        ],
                        "type": "string",
                        "description": "Filter results to templates or plugins.",
                        "default": "template"
                    },
                    "isFree": {
                        "title": "Free items only",
                        "type": "boolean",
                        "description": "When enabled, only return items with a free price.",
                        "default": false
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "popular",
                            "new",
                            "featured"
                        ],
                        "type": "string",
                        "description": "Order results by this field.",
                        "default": "popular"
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of marketplace items to return.",
                        "default": 20
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
