# DesignCrowd Scraper (`crawlerbros/designcrowd-scraper`) Actor

Scrape DesignCrowd.com - the crowdsourced design platform. Browse designer profiles by category and country. Extracts designer name, rating, country, earnings rank, portfolio image, and profile URL.

- **URL**: https://apify.com/crawlerbros/designcrowd-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Lead generation, Jobs, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## DesignCrowd Scraper

Scrape **DesignCrowd.com** — the world's #1 crowdsourced design platform with over 1.3 million freelance designers. Browse top-ranked designer profiles by category and country. Extracts designer username, display name, rating, rank, country, earnings tier, portfolio image, and direct profile link.

### What this actor does

- **Browse all designers** — get the top-ranked designers sorted by earnings (default), rating, or projects won
- **Browse by category** — filter designers who specialize in Logo Design, Web Design, T-shirt Design, and 12+ other design categories
- **Filter by country** — narrow results to designers from specific countries (US, UK, India, Australia, and 16+ more)
- **Pagination** — automatically pages through all results up to your `maxItems` limit

No authentication required. Uses TLS fingerprint impersonation (curl\_cffi chrome131) to access the public designer directory.

### Output fields

Each designer record contains:

| Field | Type | Description |
|---|---|---|
| `username` | string | Designer's username (URL slug) on DesignCrowd |
| `displayName` | string | Human-readable designer name shown on the card (e.g. `Kreative Fingers`, `Cristian Tomescu`) — often richer than the slug username |
| `designerId` | string | Internal designer ID |
| `profileUrl` | string | Full URL to designer's portfolio page |
| `avatarUrl` | string | URL to designer's profile picture |
| `portfolioImageUrl` | string | URL to designer's featured portfolio thumbnail |
| `rating` | number | Star rating (1–5) |
| `rank` | integer | Designer's current rank on DesignCrowd |
| `country` | string | Designer's country of origin |
| `earningsDisplay` | string | Earnings displayed on card (e.g., `$2.7M`, `$603K`) |
| `earningsUsd` | number | Lifetime earnings as a plain numeric USD value (e.g., `2743000`), parsed from `earningsDisplay` for sorting/filtering |
| `category` | string | Category filter used (if mode=designersByCategory) |
| `sourceUrl` | string | URL of the page this record was scraped from |
| `scrapedAt` | string | UTC ISO timestamp of when the record was scraped |
| `recordType` | string | Always `"designer"` |

### Input options

#### Mode: `designers` (default)

Browse top-ranked designers across all categories.

```json
{
  "mode": "designers",
  "country": "India",
  "sortBy": "Earnings",
  "minRating": 4,
  "minEarnings": 100000,
  "maxItems": 50
}
```

`minRating` (1–5) and `minEarnings` (USD) are optional client-side filters — designers with an unknown rating/earnings still pass through so real, populated records are never dropped just because that particular field wasn't available.

#### Mode: `designersByCategory`

Browse designers who specialize in a specific design type.

```json
{
  "mode": "designersByCategory",
  "category": "Logo Design",
  "country": "Any",
  "sortBy": "Rating",
  "maxItems": 100
}
```

#### Available categories

`Logo Design`, `T-shirt Design`, `Web Design`, `Flyer Design`, `Brochure Design`, `Poster Design`, `Stationery Design`, `Business Card Design`, `Banner Design`, `Illustration`, `Graphic Design`, `Packaging Design`, `App Design`, `Social Media Design`, `Book Cover Design`

#### Available countries

`Any`, `United States`, `United Kingdom`, `Canada`, `Australia`, `India`, `Philippines`, `Ukraine`, `Serbia`, `Bangladesh`, `Pakistan`, `Brazil`, `Germany`, `France`, `Spain`, `Russia`, `Mexico`, `Poland`, `Turkey`, `Argentina`, `Nigeria`

#### Sort options

| Value | Description |
|---|---|
| `Earnings` (default) | Sorted by total earnings |
| `Rating` | Sorted by star rating |
| `ProjectsWon` | Sorted by number of projects won |

### Example output

```json
{
  "username": "pb",
  "displayName": "pb",
  "designerId": "30934",
  "profileUrl": "https://www.designcrowd.com/designer/30934/pb",
  "avatarUrl": "https://dcassetcdn.com/profile_pics/30934/30934_thumbnail_50px_201401151331.jpg",
  "portfolioImageUrl": "https://dcassetcdn.com/design_img/4114948/30934/37233242/5fcjd8vb4ashje4f287k5wzwq1_thumbnail.png",
  "rating": 4,
  "rank": 1,
  "country": "United Kingdom",
  "earningsDisplay": "$2.7429M",
  "sourceUrl": "https://www.designcrowd.com/designers",
  "scrapedAt": "2026-06-30T12:00:00+00:00",
  "recordType": "designer"
}
```

### Use cases

- **Freelancer sourcing** — Find and contact top designers for your brand projects
- **Market research** — Analyze which countries produce the most top-ranked designers
- **Competitive intelligence** — Understand the landscape of logo, web, or print designers
- **Portfolio analysis** — Compare designer specialties and earnings across categories
- **Hiring decisions** — Shortlist designers by rating, country, and specialty

### FAQ

**Q: Does this need a DesignCrowd account?**
A: No. The designer directory is publicly accessible without login.

**Q: How many designers can I scrape?**
A: Set `maxItems` up to 500. DesignCrowd has 1.3+ million registered designers organized in pages of 28.

**Q: Can I get full profile details (bio, completed projects, reviews)?**
A: The listing page shows rank, rating, country, and earnings tier. For full profiles, you would need to visit individual designer profile URLs (returned in `profileUrl`).

**Q: Why are results sorted by Earnings by default?**
A: DesignCrowd's default ranking for their designer directory is by total earnings, which correlates strongly with quality and reliability.

**Q: Can I filter by multiple countries at once?**
A: Not in a single run. Run the actor once per country and combine the datasets.

### Data source

This actor scrapes publicly available data from [designcrowd.com](https://www.designcrowd.com). DesignCrowd is a registered trademark of DesignCrowd Pty Ltd. This actor is not affiliated with or endorsed by DesignCrowd.

# Actor input Schema

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

What to scrape from DesignCrowd.

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

Design category to filter designers by.

## `country` (type: `string`):

Filter designers by country.

## `minRating` (type: `integer`):

Only include designers with a star rating at or above this value (1-5). Designers with an unknown rating are still included.

## `minEarnings` (type: `integer`):

Only include designers whose displayed lifetime earnings on DesignCrowd are at or above this amount (USD). Designers with unknown earnings are still included.

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

How to sort designer results.

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

Maximum number of designer records to return.

## Actor input object example

```json
{
  "mode": "designers",
  "category": "Logo Design",
  "country": "Any",
  "sortBy": "Earnings",
  "maxItems": 20
}
```

# Actor output Schema

## `designers` (type: `string`):

Dataset containing all scraped DesignCrowd designer profiles.

# 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": "designers",
    "category": "Logo Design",
    "country": "Any",
    "sortBy": "Earnings",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/designcrowd-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": "designers",
    "category": "Logo Design",
    "country": "Any",
    "sortBy": "Earnings",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/designcrowd-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": "designers",
  "category": "Logo Design",
  "country": "Any",
  "sortBy": "Earnings",
  "maxItems": 20
}' |
apify call crawlerbros/designcrowd-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

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