# Framer Templates Scraper (`parsebird/framer-templates-scraper`) Actor

Extract template data from the Framer Marketplace — the leading platform for responsive website templates. Browse all templates or filter by category, pricing, and search query. Optionally visit detail pages for rich metadata including features, screenshots, and page lists.

- **URL**: https://apify.com/parsebird/framer-templates-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 20 total users, 2 monthly users, 88.2% runs succeeded, 2 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $3.00 / 1,000 template listeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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

### Framer Templates Scraper

Extract template data from the [Framer Marketplace](https://www.framer.com/marketplace/templates/) — the leading platform for responsive website templates used by designers, agencies, and startups worldwide.

<table><tr>
<td style="border-left:4px solid #2D6A4F;padding:12px 16px;font-weight:600">Research competitors, spot pricing trends, and track new releases across the entire Framer template marketplace.</td>
</tr></table>

<br>

<table>
<tr>
<td colspan="3" style="padding:10px 14px;background:#2D6A4F;border:none;border-radius:4px 4px 0 0">
<span style="color:#FAFAF9;font-size:14px;font-weight:700;letter-spacing:0.5px">ParseBird Framer Marketplace</span>
<span style="color:#D8F3DC;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Structured data from every listing</span>
</td>
</tr>
<tr>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 0 4px;border-right:none;border-top:none;vertical-align:top;width:33%;background:#D8F3DC">
<img src="https://images.apifyusercontent.com/osrl58jgxX4hBkefRYzgF49YOI4XtZaKSi9Xvou8yS4/rs:fill:250:250/cb:1/aHR0cHM6Ly9hcGlmeS1pbWFnZS11cGxvYWRzLXByb2QuczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20vc2ZucEJvV2tRWE1rU1V2ZnQtYWN0b3ItbDdvdVlMVVBkUVZ1MmhHNm4tYTc2NzRBTEtFTS1zdmdfaW1hZ2VfJTI4OTElMjkucG5n.webp" width="20" height="20" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/parsebird/framer-templates-scraper" style="color:#2D6A4F;text-decoration:none;font-weight:700;font-size:13px">Templates</a><br>
<span style="color:#2D6A4F;font-size:11px;font-weight:600">&#10148; You are here</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:33%">
<img src="https://images.apifyusercontent.com/W6-5XjwamDQRTAqyyWdWrZg3u59AgjHUXBpGJiOtF0k/rs:fill:250:250/cb:1/aHR0cHM6Ly9hcGlmeS1pbWFnZS11cGxvYWRzLXByb2QuczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20vc2ZucEJvV2tRWE1rU1V2ZnQtYWN0b3ItMmM1VGdtVk1HZk91RzMzR2YtaERMNjR4N0hidC1zdmdfaW1hZ2VfJTI4OTIlMjkucG5n.webp" width="20" height="20" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/parsebird/framer-plugins-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Plugins</a><br>
<span style="color:#78716C;font-size:11px">625+ plugins with changelogs, versions</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:33%">
<img src="https://images.apifyusercontent.com/Mee61xDYnTB82Z12U55FKvfkNH0821CFvm5QJUQKsNk/rs:fill:250:250/cb:1/aHR0cHM6Ly9hcGlmeS1pbWFnZS11cGxvYWRzLXByb2QuczMudXMtZWFzdC0xLmFtYXpvbmF3cy5jb20vc2ZucEJvV2tRWE1rU1V2ZnQtYWN0b3ItSnZnUHJCcTVoREE2VFo1OGUtRlN5c3dSTkRqbi1zdmdfaW1hZ2VfJTI4OTMlMjkucG5n.webp" width="20" height="20" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/parsebird/framer-components-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Components</a><br>
<span style="color:#78716C;font-size:11px">3,000+ components with install counts</span>
</td>
</tr>
</table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
parsebird/framer-templates-scraper on Apify. Call: ApifyClient("TOKEN").actor("parsebird/framer-templates-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: category (string, "all"/"portfolio"/"agency"/etc.), searchQuery (string, keyword search), pricing (string, "all"/"free"/"paid"), maxResults (integer, 0=unlimited), includeDetails (boolean, false=listing only). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): fetch build via GET https://api.apify.com/v2/acts/parsebird~framer-templates-scraper (Bearer TOKEN) → taggedBuilds.latest.buildId, then GET https://api.apify.com/v2/acts/parsebird~framer-templates-scraper/builds/{buildId} → inputSchema, actorDefinition.storages.dataset, readme. Get token: https://console.apify.com/account/integrations
```

### What is Framer Templates Scraper?

Framer Templates Scraper is an [Apify Actor](https://apify.com/actors) that automatically collects template data from the Framer Marketplace. It extracts template names, prices, creators, thumbnails, and more. With the **Include Details** option, it visits each template's page to gather rich metadata like features, page lists, screenshots, creator emails, and view counts.

**No login or API key required.** Just configure your filters and run.

### What can this scraper do?

- **Browse by category** — Filter templates by 25+ categories including Agency, Portfolio, AI, Dark, Modern, Minimal, Ecommerce, and more
- **Search templates** — Use Framer's built-in search to find templates by keyword
- **Filter by pricing** — Get only free templates, only paid templates, or both
- **Extract listing data** — Template name, price, creator, profile URL, and thumbnails
- **Extract detail page data** — Full description, all features, all pages (expanded), categories, screenshots, preview URL, view count, last updated, creator avatar, and creator email
- **Control volume** — Set a maximum number of results to keep costs predictable
- **Automatic pagination** — Scrapes across multiple pages to collect hundreds or thousands of templates
- **Apify platform benefits** — Schedule runs, access results via API, integrate with Google Sheets, Slack, Zapier, and 100+ other tools

### What data can you extract from Framer Marketplace?

| Field | Type | Available |
|-------|------|-----------|
| Template name | string | Always |
| URL | string | Always |
| Price (Free / $XX) | string | Always |
| Creator name | string | Always |
| Creator profile URL | string | Always |
| Thumbnail images | array | Always |
| Description | string | With details |
| Features (e.g. CMS, Forms, SEO) | array | With details |
| Categories | array | With details |
| All pages (Home, About, etc.) | array | With details |
| Preview URL | string | With details |
| Screenshots | array | With details |
| View count | string | With details |
| Last updated | string | With details |
| Creator email | string | With details |
| Creator avatar URL | string | With details |

### How to scrape Framer Marketplace templates

1. Click **Try for free** to open the Actor in Apify Console
2. Choose a **Category** or enter a **Search Query**
3. Set **Pricing Filter** to All, Free, or Paid
4. Set **Max Templates** to control how many results you want
5. Toggle **Include Detail Pages** if you need rich metadata (features, pages, email, etc.)
6. Click **Start** and wait for the run to complete
7. Download your data as JSON, CSV, Excel, or access it via the Apify API

### Input configuration

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| Category | enum | All | Filter by category (Agency, Portfolio, AI, Dark, etc.) |
| Search Query | string | — | Search Framer Marketplace by keyword |
| Pricing Filter | enum | All | All, Free Only, or Paid Only |
| Max Templates | integer | 50 | Maximum templates to return (0 = unlimited) |
| Include Detail Pages | boolean | false | Visit each template's page for rich metadata |

**Example input — scrape 20 free portfolio templates:**

```json
{
    "category": "portfolio",
    "pricing": "free",
    "maxResults": 20,
    "includeDetails": false
}
```

**Example input — search for "SaaS" with full details:**

```json
{
    "searchQuery": "SaaS",
    "pricing": "all",
    "maxResults": 10,
    "includeDetails": true
}
```

### Output example

Each template is returned as a JSON object. Here's an example with detail page data:

```json
{
    "name": "Codot",
    "slug": "codot",
    "url": "https://www.framer.com/marketplace/templates/codot/",
    "price": "$79",
    "creatorName": "Pentaclay",
    "creatorUrl": "https://www.framer.com/@pentaclay/",
    "thumbnailUrls": ["https://www.framer.com/creators-assets/..."],
    "description": "Introducing Codot — the ultimate Digital Agency...",
    "features": ["A11y Optimized", "Animations & Effects", "CMS", "Forms", "Site Search"],
    "categories": ["Agency", "Portfolio", "Marketing", "Modern"],
    "pages": ["Home", "About", "Work", "Work Details", "Blog", "Blog Details", "Services", "Contact", "404"],
    "previewUrl": "https://codot.framer.website/",
    "screenshots": ["https://www.framer.com/creators-assets/..."],
    "viewCount": "11K views",
    "lastUpdated": "Updated 3 weeks ago",
    "creatorEmail": "hellopentaclay@gmail.com",
    "creatorAvatarUrl": "https://y4pdgnepgswqffpt.public.blob.vercel-storage.com/creators/...",
    "scrapedAt": "2026-03-28T07:17:54.147755+00:00"
}
```

### How much does it cost to scrape Framer templates?

This Actor uses the **pay-per-event** pricing model with two tiers. You pay only for the templates you actually receive — if a run returns 10 templates, you're charged for 10, regardless of the `maxResults` setting.

| Event | What you get | Price |
|-------|-------------|-------|
| **Template Listed** | Basic data from listing page (name, price, creator, thumbnails) | $0.005 per template |
| **Template Detail** | Full detail page data (features, pages, email, screenshots, etc.) | $0.05 per template |

**Cost examples:**

| Scenario | Cost |
|----------|------|
| 100 templates, listing only | $0.50 |
| 100 templates, with details | $5.00 |
| 1,000 templates, listing only | $5.00 |
| 1,000 templates, with details | $50.00 |

**Why two prices?** Listing scrapes extract data from the category/search page — fast and lightweight. Detail scrapes visit each template's individual page with a full browser navigation — 10x more compute, proxy, and time. The pricing reflects this difference so you only pay for what you need.

Apify's free plan includes $5 of monthly platform credits — enough to scrape 1,000 templates (listing) or 100 templates (with details) for free.

### Tips and best practices

- **Start small** — Set `maxResults` to 5-10 first to preview the data before running a large scrape
- **Use categories for style filtering** — Categories like `dark`, `modern`, `minimal`, `animated` work as style filters
- **Search vs. category** — When `searchQuery` is set, it uses Framer's search page (category is ignored). For browsing a category, leave search empty
- **Listing vs. details** — Listing-only is fast (~20 templates per page load). Detail scraping adds ~3-5 seconds per template
- **Large scrapes** — The scraper handles pagination automatically. For 1,000+ templates, expect 5-10 minutes (listing only) or 1-2 hours (with details)

### FAQ

#### Is it legal to scrape Framer Marketplace?

This Actor extracts publicly available data from the Framer Marketplace. It does not bypass any authentication, paywalls, or access controls. Always review and comply with the target website's Terms of Service before scraping.

#### Why is the creator email sometimes empty?

Not all template creators provide a "Contact Creator" email on their template page. The `creatorEmail` field will be empty for those templates.

#### Can I schedule automatic runs?

Yes. On the Apify platform, you can schedule this Actor to run daily, weekly, or at any custom interval. Combined with integrations (Google Sheets, Slack, webhooks), you can build automated template monitoring pipelines.

#### How do I access the data programmatically?

After a run completes, use the [Apify API](https://docs.apify.com/api/v2) to fetch results in JSON, CSV, or Excel format. You can also use the [Apify client libraries](https://docs.apify.com/sdk) for JavaScript/Python.

### Support and feedback

If you encounter any issues or have feature requests, please open an issue on the Actor's [Issues tab](https://console.apify.com) in Apify Console. You can also reach out via the Apify community on [Discord](https://discord.gg/apify).

# Actor input Schema

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

Filter templates by category.

Select 'All' to browse the entire marketplace, or choose a specific category like Agency, Portfolio, AI, etc.

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

Search the Framer Marketplace for templates matching this query. Uses Framer's built-in search.

When set, the category filter is ignored and results come from the search page instead.

Examples: portfolio, SaaS, landing page, restaurant

## `pricing` (type: `string`):

Filter templates by pricing.

• All — include both free and paid templates
• Free — only free templates
• Paid — only paid templates

## `maxResults` (type: `integer`):

Limit the number of templates returned. Set to 0 for unlimited.

Tip: start with a small number (e.g. 20) to preview results before running a full scrape.

## `includeDetails` (type: `boolean`):

When enabled, the scraper visits each template's detail page to extract rich metadata: full description, features, categories, page list, screenshots, view count, and last updated date.

This is slower but provides much richer data per template.

## Actor input object example

```json
{
  "category": "all",
  "pricing": "all",
  "maxResults": 50,
  "includeDetails": false
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/framer-templates-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/framer-templates-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 '{}' |
apify call parsebird/framer-templates-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/framer-templates-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/l7ouYLUPdQVu2hG6n/builds/LLK3R1zDoYtar4n6w/openapi.json
