# Behance Search Scraper (`headlessagent/behance-search-scraper`) Actor

Scrape Behance search results by type — projects, users, assets, or images. Each type supports its own query list. Returns covers, owner info, stats, and image metadata

- **URL**: https://apify.com/headlessagent/behance-search-scraper.md
- **Developed by:** [Headless Agent](https://apify.com/headlessagent) (community)
- **Categories:** Developer tools, Social media, Automation
- **Features:** Limited permissions
- **Stats:** 135 total users, 30 monthly users, 92.9% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.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.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Behance Search Scraper

Scrape Behance search results — no API key or login required. Search across **projects, users, assets, and images** simultaneously, each with their own query list. Get clean, structured JSON output.

### 🤔 What can Behance Search Scraper do?

This Actor lets you **search Behance across multiple content types** in a single run. Define independent query lists per type and get structured results:

🔍 Search by **projects, users, assets, and images** — simultaneously, each with their own queries

🖼️ Extract project covers in **original resolution** and **808px** — both JPG and WEBP formats

👤 Get user profile info — username, display name, avatar, location, availability status

📦 Get asset projects — filtered to those that have downloadable source files

🎞️ Get image results — individual image modules with resolution, tags, colors, and EXIF data

📊 Collect views and appreciations (likes) for each project

🎨 Extract dominant colors from project covers

📅 Get published and last modified timestamps

🔁 Rotate proxies to avoid rate limiting (optional)

📦 Download results in **JSON, CSV, XML, or Excel** from the Apify Dataset

🦾 Integrate via **API, webhooks, SDKs** (Python & Node.js), or connect with Zapier, n8n, Make, and more

### ✅ What data can I scrape from Behance?

#### Projects

- Project ID, slug, URL, name, publish status, privacy level
- Cover images — original (JPG & WEBP) and 808px (JPG & WEBP)
- Dominant color (RGB)
- Appreciations (likes) and total views
- Published and last modified timestamps
- Owner(s) — username, display name, avatar URL, location, country, city, CreatorPro status, full-time & freelance availability

#### Users

- User ID, username, display name, URL
- Avatar URL (highest available resolution)
- Location, country, city
- CreatorPro status, full-time & freelance availability
- Recent projects (up to 4) with covers
- Social references (links)
- Followers and following counts

#### Assets

- Same fields as projects, filtered to those with downloadable source files
- Source file metadata when available: title, extension, MIME type, category, license type, tier, price

#### Images

- Image ID, source URL, dimensions (width × height)
- Tags and dominant colors (RGB)
- EXIF data
- Best available JPG and WEBP URLs at highest resolution
- Parent project info (ID, slug, stats, owners)

### 🔧 How to scrape data from Behance

1. [Create](https://console.apify.com/sign-up) a free Apify account.
2. Open Behance Search Scraper.
3. Define your **search tasks** — each task specifies a content type and its own list of queries.
4. Optionally set **max results per query** and **proxy URLs**.
5. Click **Save & Start** and wait for the results.
6. Download your data in JSON, CSV, XML, Excel, or access it via the Apify API.

### ⬇️ Input

Each search type has its own query list. Leave a field empty (or omit it) to skip that type.

| Field            | Type       | Description                                                                       |
|------------------|------------|-----------------------------------------------------------------------------------|
| `projectQueries` | `string[]` | Search queries for Behance **projects**.                                          |
| `userQueries`    | `string[]` | Search queries for Behance **users / designers**.                                 |
| `assetQueries`   | `string[]` | Search queries for Behance **assets** (projects with downloadable source files).  |
| `imageQueries`   | `string[]` | Search queries for individual Behance **images**.                                 |
| `maxResults`     | `integer`  | Max results per query per type (default: 20).                                     |
| `proxy`          | `string[]` | Optional proxy URLs (`http://` or `socks5://`). Rotated round-robin per request. |

At least one of the four query fields must be non-empty.

#### Example input

```json
{
    "projectQueries": ["figma ui design", "mobile app branding"],
    "userQueries":    ["ui designer"],
    "assetQueries":   ["ui kit mockup"],
    "imageQueries":   ["sunset minimal"],
    "maxResults": 5,
    "proxy": ["http://user:pass@host:port"]
}
```

### ⬆️ Output

Results are pushed to the Apify Dataset. Each item includes `search_type` and `search_query` fields so you know which task produced each result.

#### Project result sample

```json
{
    "search_type": "projects",
    "search_query": "figma ui design",
    "id": 246157347,
    "name": "Loftly — Furniture E-commerce Design",
    "slug": "Loftly-Furniture-E-commerce-Design",
    "url": "https://www.behance.net/gallery/246157347/Loftly-Furniture-E-commerce-Design",
    "publishedOn": 1774025002,
    "modifiedOn": 1777750073,
    "publishStatus": "PUBLISHED",
    "privacyLevel": "PUBLIC",
    "covers": {
        "original": [
            { "url": "https://mir-s3-cdn-cf.behance.net/projects/original/7f1e24246157347.jpg", "width": null, "type": "JPG" },
            { "url": "https://mir-s3-cdn-cf.behance.net/projects/original_webp/7f1e24246157347.jpg", "width": null, "type": "WEBP" }
        ],
        "size808": [
            { "url": "https://mir-s3-cdn-cf.behance.net/projects/max_808/7f1e24246157347.jpg", "width": 808, "type": "JPG" },
            { "url": "https://mir-s3-cdn-cf.behance.net/projects/max_808_webp/7f1e24246157347.jpg", "width": 808, "type": "WEBP" }
        ]
    },
    "colors": { "r": 253, "g": 253, "b": 253 },
    "appreciations": 180,
    "views": 3339,
    "isBoosted": false,
    "isPrivate": false,
    "owners": [
        {
            "id": 120437107,
            "username": "h4zzzzzz",
            "displayName": "Volodymyr Harasevych",
            "firstName": "Volodymyr",
            "url": "https://www.behance.net/h4zzzzzz",
            "location": "Lviv, Ukraine",
            "country": "Ukraine",
            "city": "Lviv",
            "isAvailableFullTime": false,
            "isAvailableFreelance": true,
            "isCreatorPro": true,
            "avatarUrl": "https://pps.services.adobe.com/api/profile/.../276"
        }
    ]
}
```

#### User result sample

```json
{
    "search_type": "users",
    "search_query": "ui designer",
    "id": 12345678,
    "username": "janedoe",
    "displayName": "Jane Doe",
    "url": "https://www.behance.net/janedoe",
    "avatarUrl": "https://pps.services.adobe.com/api/profile/.../276",
    "location": "Berlin, Germany",
    "country": "Germany",
    "city": "Berlin",
    "isAvailableFullTime": true,
    "isAvailableFreelance": true,
    "isCreatorPro": false,
    "followers": 4200,
    "following": 310,
    "recentProjects": [
        {
            "id": 111111111,
            "name": "Brand Identity",
            "url": "https://www.behance.net/gallery/111111111/Brand-Identity",
            "covers": { "original": [...], "size808": [...] }
        }
    ],
    "socialReferences": [
        { "url": "https://dribbble.com/janedoe", "text": "Dribbble" }
    ]
}
```

#### Image result sample

```json
{
    "search_type": "images",
    "search_query": "sunset minimal",
    "id": 987654321,
    "src": "https://mir-s3-cdn-cf.behance.net/project_modules/disp/abc123.jpg",
    "width": 1400,
    "height": 900,
    "tags": ["sunset", "minimal", "nature"],
    "colors": [{ "r": 255, "g": 120, "b": 60 }],
    "bestJpg": { "url": "https://mir-s3-cdn-cf.behance.net/project_modules/fs/abc123.jpg", "width": 1400 },
    "bestWebp": { "url": "https://mir-s3-cdn-cf.behance.net/project_modules/fs/abc123.webp", "width": 1400 },
    "project": {
        "id": 200000001,
        "slug": "Sunset-Collection",
        "views": 8500,
        "appreciations": 620
    }
}
```

### 🔗 Integrations

Connect Behance Search Scraper with almost any cloud service or web app through [Apify integrations](https://apify.com/integrations): **Zapier, n8n, Make, Slack, Google Sheets, Google Drive, Airbyte, GitHub**, and many more.

Use [webhooks](https://docs.apify.com/integrations/webhooks) to trigger actions whenever a run finishes — for example, sending a Slack notification or pushing data to a Google Sheet automatically.

### 🦾 Using the Apify API

The Apify [API](https://docs.apify.com/api/v2) gives you programmatic access to this scraper. Start runs, fetch datasets, monitor execution, and integrate into your own workflows.

- **Python**: [`apify-client`](https://pypi.org/project/apify-client/) on PyPI
- **Node.js**: [`apify-client`](https://www.npmjs.com/package/apify-client) on NPM

### ❓ FAQ

#### Can I search multiple types in one run?

Yes. Fill in any combination of `projectQueries`, `userQueries`, `assetQueries`, and `imageQueries`. Each non-empty field runs as its own search task. Results are tagged with `search_type` and `search_query`.

#### Can each type have different queries?

Yes. Each field is independent — `projectQueries` can have different terms from `userQueries`, and so on.

#### How many results can I get per query?

Default is 20 per query per type. Increase this with `maxResults` (e.g. 50, 100, 500). Behance reports up to ~10,000 results per query.

#### Can I use multiple proxies?

Yes. The `proxy` field accepts an array of proxy URLs. They are rotated round-robin across requests.

#### Does this require a Behance account or API key?

No. The scraper uses Behance's public GraphQL API — no login or API key required. A unique session token (`bcp`) is auto-generated per run using UUID v4.

#### Is it legal to scrape Behance?

This scraper only extracts publicly available data — nothing behind authentication. However, scraped data may contain personal information protected by [GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation) and other regulations. Ensure you have a legitimate reason for collection and consult legal counsel if unsure. See also Apify's blog on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

# Actor input Schema

## `projectQueries` (type: `array`):

Search queries for Behance projects. Leave empty to skip.

## `userQueries` (type: `array`):

Search queries for Behance users / designers. Leave empty to skip.

## `assetQueries` (type: `array`):

Search queries for Behance assets (projects with downloadable source files). Leave empty to skip.

## `imageQueries` (type: `array`):

Search queries for individual Behance images. Leave empty to skip.

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

Maximum number of results to scrape per query per type (default: 20).

## `proxy` (type: `array`):

Optional proxy URLs (e.g. http://user:pass@host:port). Rotated round-robin per request.

## Actor input object example

```json
{
  "projectQueries": [
    "figma ui design",
    "mobile app branding"
  ],
  "userQueries": [
    "ui designer"
  ],
  "assetQueries": [
    "ui kit mockup"
  ],
  "imageQueries": [
    "sunset minimal"
  ],
  "maxResults": 5,
  "proxy": []
}
```

# 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 = {
    "projectQueries": [
        "figma ui design",
        "mobile app branding"
    ],
    "userQueries": [
        "ui designer"
    ],
    "assetQueries": [
        "ui kit mockup"
    ],
    "imageQueries": [
        "sunset minimal"
    ],
    "maxResults": 5,
    "proxy": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("headlessagent/behance-search-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 = {
    "projectQueries": [
        "figma ui design",
        "mobile app branding",
    ],
    "userQueries": ["ui designer"],
    "assetQueries": ["ui kit mockup"],
    "imageQueries": ["sunset minimal"],
    "maxResults": 5,
    "proxy": [],
}

# Run the Actor and wait for it to finish
run = client.actor("headlessagent/behance-search-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 '{
  "projectQueries": [
    "figma ui design",
    "mobile app branding"
  ],
  "userQueries": [
    "ui designer"
  ],
  "assetQueries": [
    "ui kit mockup"
  ],
  "imageQueries": [
    "sunset minimal"
  ],
  "maxResults": 5,
  "proxy": []
}' |
apify call headlessagent/behance-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,headlessagent/behance-search-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/UcE7zaIwOidjZaKce/builds/TvPOyoflDnx5QThMt/openapi.json
