Behance Projects Scraper collects detailed project data from public Behance profiles using a username-based approach. It helps creators, analysts, and researchers transform portfolio information into structured datasets for analysis, archiving, or integration workflows.
Created by Bitbash, built to showcase our approach to Scraping and Automation!
If you are looking for behance-projects-scraper you've just found your team — Let’s Chat. 👆👆
This project extracts comprehensive project-level data from Behance user profiles, handling pagination and large portfolios with consistency and accuracy. It solves the challenge of manually collecting structured portfolio data from Behance. It is built for designers, agencies, recruiters, analysts, and developers working with creative datasets.
- Retrieves all projects published under a single Behance username
- Handles pagination using cursor-based continuation
- Captures rich metadata including media, tools, stats, and owners
- Outputs clean, structured JSON ready for analysis or storage
| Feature | Description |
|---|---|
| Full Profile Coverage | Extracts all projects associated with a Behance username. |
| Rich Project Metadata | Collects covers, fields, tools, stats, and ownership details. |
| Cursor Resume Support | Resume interrupted runs from a saved cursor position. |
| Flexible Proxy Support | Optional single-proxy usage for stable multi-page collection. |
| Structured Output | Delivers normalized JSON suitable for pipelines and dashboards. |
| Field Name | Field Description |
|---|---|
| id | Unique project identifier. |
| name | Project title as displayed on Behance. |
| slug | URL-friendly project slug. |
| url | Direct link to the project page. |
| covers | Image URLs in multiple resolutions. |
| fields | Creative categories associated with the project. |
| tools | Software and tools used in the project. |
| owners | Creator profile and availability information. |
| stats.views | Total project view count. |
| stats.appreciations | Number of appreciations received. |
| stats.comments | Total comment count. |
| publishedOn | Unix timestamp of publication date. |
| modifiedOn | Unix timestamp of last update. |
| privacyLevel | Visibility status of the project. |
[
{
"__typename": "Project",
"id": 210524379,
"name": "Reel 2024",
"slug": "Reel-2024",
"url": "https://www.behance.net/gallery/210524379/Reel-2024",
"publishedOn": 1729268209,
"modifiedOn": 1744365623,
"privacyLevel": "PUBLIC",
"covers": {
"size_202": {
"url": "https://mir-s3-cdn-cf.behance.net/projects/202/92665c210524379.png"
},
"size_404": {
"url": "https://mir-s3-cdn-cf.behance.net/projects/404/92665c210524379.png"
}
},
"fields": [
{
"id": 3,
"label": "Animation"
},
{
"id": 145,
"label": "3D Art"
}
],
"tools": [
{
"title": "Adobe After Effects",
"categoryLabel": "Software"
}
],
"stats": {
"views": {
"all": 5279
},
"appreciations": {
"all": 458
},
"comments": {
"all": 21
}
}
}
]
Behance Projects Scraper/
├── src/
│ ├── main.py
│ ├── handlers/
│ │ ├── profile_fetcher.py
│ │ ├── project_parser.py
│ │ └── cursor_manager.py
│ ├── utils/
│ │ ├── http_client.py
│ │ └── validators.py
│ └── config/
│ └── settings.example.json
├── data/
│ ├── sample_input.json
│ └── sample_output.json
├── requirements.txt
└── README.md
- Recruiters use it to analyze designer portfolios, so they can shortlist candidates faster.
- Agencies use it to archive client work, so they can maintain structured records.
- Market researchers use it to study creative trends, so they can generate insights.
- Developers use it to feed portfolio data into apps, so they can build creative platforms.
- Designers use it to back up their work, so they retain long-term access to projects.
Can I resume a stopped extraction? Yes, by providing a cursor value, the scraper continues from the last processed position without duplicating data.
Does it support large portfolios? Yes, the cursor-based pagination ensures stable extraction even for profiles with hundreds of projects.
Is proxy usage required? No, proxies are optional. If used, a single static proxy is recommended for consistency.
What output format is generated? The scraper outputs structured JSON with normalized fields suitable for analysis or integration.
Primary Metric: Processes an average of 40–60 projects per minute depending on media density.
Reliability Metric: Maintains over 98% successful project retrieval across multi-page profiles.
Efficiency Metric: Low memory footprint with streaming-based pagination handling.
Quality Metric: Captures complete project metadata including media, tools, and engagement stats.
