# Webflow Experts Scraper (`piotrv1001/webflow-experts-scraper`) Actor

The Webflow Experts Scraper extracts agency and freelancer listings from the Webflow Experts directory, capturing names, locations, partner tiers, availability, websites, hourly rates, services, industries, languages, and portfolios — ideal for B2B lead generation and market research.

- **URL**: https://apify.com/piotrv1001/webflow-experts-scraper.md
- **Developed by:** [FalconScrape](https://apify.com/piotrv1001) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 expert listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

### 🚀 Webflow Experts Scraper

Extract the full **Webflow Experts** directory in clean, structured form. The **Webflow Experts Scraper** turns the [Webflow Experts marketplace](https://experts.webflow.com/browse) — the official directory of vetted Webflow agencies and freelancers — into a ready-to-use dataset of **agencies, their locations, availability, rates, services, industries, and portfolios**.

It's the fastest way to build a **lead list of design & development partners**, run competitive research on the Webflow agency market, or enrich your CRM with verified business websites. Run it on the [Apify platform](https://apify.com) to schedule recurring exports, call it via API, and integrate it with your existing tools.

### ✨ Features

-   🏢 **Complete agency & freelancer data** – name, location (city & country), business type, partner tier, availability, and public website.
-   💰 **Budgets & rates** – starting price, project minimum, typical project size, and hourly development/design rates.
-   🧩 **Services & specialties** – services offered, industry specialties, supported migration platforms, skills, and languages.
-   🖼️ **Portfolio projects** – titles, descriptions, screenshots, tags, views, likes, and clone counts per showcased project.
-   ⚡ **Two modes** – a fast listing-level summary, or full profiles with the complete data set. Pay only for what you collect.
-   🎯 **Limit your run** – set the maximum number of experts to collect, perfect for quick tests or full-catalog exports.

### 🛠️ How to use the Webflow Experts Scraper

1. **Set the number of experts** – choose how many experts to collect with **Max experts** (use a small number for a quick test, increase it for the full directory).
2. **Choose the depth** – leave **Scrape full profile details** off for a quick summary, or turn it on to collect rates, services, industries, portfolios, and more.
3. **Run the Actor** – click **Start** and the structured data appears in the **Output** tab as it's collected.
4. **Export** – download the dataset in JSON, CSV, Excel, or HTML, or pull it through the Apify API.

### 📥 Input

| Field | Type | Description |
|---|---|---|
| **Max experts** (`maxItems`) | integer | Maximum number of experts to scrape. Default: `50`. |
| **Scrape full profile details** (`scrapeDetails`) | boolean | When enabled, opens each profile to collect the complete data set (rates, services, industries, portfolio…). Default: `false`. |
| **Proxy configuration** (`proxyConfiguration`) | object | Optional proxy settings. The defaults work fine. |

Example input:

```json
{
    "maxItems": 50,
    "scrapeDetails": true
}
````

### 📊 Output

Each expert is saved as a structured record. With **Scrape full profile details** enabled, you get the complete profile:

```json
{
    "name": "webqem",
    "slug": "webqem",
    "profileUrl": "https://webflow.com/@webqem",
    "website": "https://webqem.com",
    "city": "Sydney",
    "country": "Australia",
    "businessType": "AGENCY",
    "tier": "premium",
    "partnerType": "certified_partner",
    "availability": "Accepting new projects",
    "availabilityStatus": "Available",
    "startingAt": "$10,000 USD",
    "projectMinimum": { "value": 10000, "unit": "USD" },
    "typicalProjectSize": { "value": 20000, "unit": "USD" },
    "hourlyDevelopmentRate": { "value": 180, "unit": "USD" },
    "hourlyDesignRate": { "value": 180, "unit": "USD" },
    "languages": ["English"],
    "servicesOffered": ["Web Design (UI/UX)", "Web Development", "SEO Audit & Optimization", "E-commerce Development"],
    "industrySpecialties": ["Financial", "Health & Wellness", "Fashion"],
    "skills": ["webflow", "seo", "ecommerce"],
    "bio": "webqem offers expert webflow design and development services...",
    "lifetimePoints": 7925,
    "numViews": 9507,
    "portfolioCount": 7,
    "portfolio": [
        {
            "title": "Client website redesign",
            "url": "https://webflow.com/made-in-webflow/website/example-project",
            "screenshot": "https://screenshots.webflow.com/...",
            "tags": ["b2b", "saas"],
            "numViews": 351,
            "numLikes": 1
        }
    ]
}
```

You can download the dataset in various formats such as **JSON, HTML, CSV, or Excel**.

#### Data fields

| Field | Description |
|---|---|
| `name`, `slug`, `profileUrl` | Expert name and Webflow profile link |
| `website` | The agency's / freelancer's public website |
| `city`, `country` | Location |
| `businessType` | `AGENCY`, `FREELANCER`, etc. |
| `tier`, `partnerType` | Webflow partner tier and partner type |
| `availability`, `availabilityStatus` | Whether they're accepting new projects |
| `startingAt`, `projectMinimum`, `typicalProjectSize` | Budget signals |
| `hourlyDevelopmentRate`, `hourlyDesignRate` | Hourly rates |
| `languages`, `skills` | Languages spoken and skills |
| `servicesOffered`, `industrySpecialties`, `migratablePlatforms` | Capabilities |
| `bio`, `directoryTagline`, `about` | Descriptions |
| `lifetimePoints`, `numViews`, `numFollowers`, `numLikes` | Reputation signals |
| `portfolio` | Showcased projects with screenshots, tags, and engagement |

### 💵 How much does it cost to scrape Webflow Experts?

This Actor uses a transparent **pay-per-result** model:

| Event | Price | When |
|---|---|---|
| **Expert listing scraped** | **$0.004** | Per expert collected at listing level (summary fields). |
| **Expert profile scraped** | **$0.008** | Per full profile collected (when **Scrape full profile details** is on). |

There's no per-run start fee — you only pay for the experts you collect. As a guide, the full directory of roughly **1,760 experts** costs about **$7 for the listing summary** or about **$14 for full profiles**. New Apify accounts include free monthly usage credits, so small test runs are effectively free.

### 💡 Tips

- Start with a low **Max experts** value and **Scrape full profile details** off to preview the data, then scale up.
- Turn on **Scrape full profile details** only when you need rates, services, and portfolios — it costs a little more per expert.
- Use the public `website` field to enrich records with contact data in your downstream tools.
- Schedule the Actor to keep your agency lead list fresh as new experts join the directory.

### ❓ FAQ

**Is scraping Webflow Experts legal?**
This Actor collects only publicly available information from the Webflow Experts directory. As with any scraping, you are responsible for how you use the data and should comply with applicable laws (including data-protection regulations) and the target site's terms.

**Does it collect personal email addresses?**
No. The Actor extracts public business information such as the agency website; it does not collect private contact emails.

**How many experts can I get?**
The directory currently lists roughly 1,760 experts. Set **Max experts** high enough to cover them all, or lower it to limit cost.

**Something looks off or missing?**
Use the **Issues** tab on the Actor's page to report problems or request additional fields — feedback is welcome, and custom solutions are available.

***

Build your Webflow agency lead list with the **Webflow Experts Scraper** today! 🚀

# Actor input Schema

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

Maximum number of experts to scrape. Use a low number for a quick test run, increase it to collect the full directory.

## `scrapeDetails` (type: `boolean`):

When enabled, each expert's full profile is opened to collect the complete data set: rates, project minimums, services offered, industry specialties, languages, portfolio projects and more. When disabled, only the listing-level summary (name, location, availability, starting price, bio) is collected, which is faster.

## `proxyConfiguration` (type: `object`):

Proxy settings used for the requests. The default settings work fine for this Actor.

## Actor input object example

```json
{
  "maxItems": 50,
  "scrapeDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (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 = {
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("piotrv1001/webflow-experts-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 = { "maxItems": 50 }

# Run the Actor and wait for it to finish
run = client.actor("piotrv1001/webflow-experts-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 '{
  "maxItems": 50
}' |
apify call piotrv1001/webflow-experts-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Webflow Experts Scraper",
        "description": "The Webflow Experts Scraper extracts agency and freelancer listings from the Webflow Experts directory, capturing names, locations, partner tiers, availability, websites, hourly rates, services, industries, languages, and portfolios — ideal for B2B lead generation and market research.",
        "version": "0.0",
        "x-build-id": "ZyzAiMTcwKdywDE7S"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/piotrv1001~webflow-experts-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-piotrv1001-webflow-experts-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/piotrv1001~webflow-experts-scraper/runs": {
            "post": {
                "operationId": "runs-sync-piotrv1001-webflow-experts-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/piotrv1001~webflow-experts-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-piotrv1001-webflow-experts-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",
                "properties": {
                    "maxItems": {
                        "title": "Max experts",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of experts to scrape. Use a low number for a quick test run, increase it to collect the full directory.",
                        "default": 50
                    },
                    "scrapeDetails": {
                        "title": "Scrape full profile details",
                        "type": "boolean",
                        "description": "When enabled, each expert's full profile is opened to collect the complete data set: rates, project minimums, services offered, industry specialties, languages, portfolio projects and more. When disabled, only the listing-level summary (name, location, availability, starting price, bio) is collected, which is faster.",
                        "default": false
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings used for the requests. The default settings work fine for this Actor.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
