# Figma Community Files, Plugins & Widgets Scraper (`crawlerbros/figma-community-scraper`) Actor

Scrape Figma Community design files, plugins, widgets, FigJam templates, and more. Search by keyword, browse trending resources, filter by type, or get resources by user.

- **URL**: https://apify.com/crawlerbros/figma-community-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 7 bookmarks
- **User rating**: 5.00 out of 5 stars

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

## Figma Community Files, Plugins & Widgets Scraper

Extract design files, plugins, widgets, FigJam templates, and other resources from the Figma Community. Search by keyword, browse trending resources, filter by resource type, or get all resources from a specific Figma creator — all without any authentication.

### What It Does

The Figma Community Scraper gives you structured access to the Figma Community catalog:

- **Search design files** by keyword (UI kits, dashboards, design systems, icons)
- **Search plugins** for Figma and FigJam
- **Search widgets** for FigJam boards
- **Browse trending resources** across all types
- **Get all resources by a specific Figma user** using their profile handle
- Filter by resource type, sort by popularity or recency

Each result includes the resource name, author, description, like count, duplicate count, thumbnail, and URL — ready for analysis, competitive research, or integration.

### Input Parameters

| Parameter | Type | Description | Default |
|---|---|---|---|
| `mode` | Select | What to scrape: `searchFiles`, `searchPlugins`, `searchWidgets`, `trending`, `byUser` | `searchFiles` |
| `searchQuery` | Text | Keywords to search for | `dashboard` |
| `username` | Text | Figma profile handle for mode=byUser | — |
| `startUrls` | List | Figma Community URLs to scrape directly | — |
| `resourceType` | Select | Filter by type: `all`, `design_template`, `plugin`, `widget`, `figjam_template`, `slide_template`, `site_template` | `all` |
| `sortBy` | Select | Sort order: `all_time`, `recent`, `trending_30d` | `all_time` |
| `maxItems` | Integer | Maximum number of results (1–5000) | `20` |

### Output Fields

Each record in the dataset contains:

| Field | Type | Description |
|---|---|---|
| `resourceId` | String | Unique Figma community resource ID (UUID) |
| `type` | String | Resource type: file, plugin, widget, figjam_template, etc. |
| `name` | String | Resource name |
| `description` | String | Resource description (HTML stripped) |
| `author` | String | Creator or publisher name |
| `authorUrl` | String | Creator's Figma profile URL |
| `likeCount` | Integer | Number of likes |
| `viewCount` | Integer | Number of views (when available) |
| `duplicateCount` | Integer | Number of times the resource was duplicated/used |
| `thumbnailUrl` | String | Thumbnail image URL |
| `url` | String | Figma Community resource URL |
| `categoryId` | String | Figma category UUID |
| `publishedAt` | String | ISO 8601 publish date |
| `editorTypes` | Array | Compatible Figma editors (design, figjam) |
| `publisherBadges` | Array | Publisher badges (e.g. figma_partner) |
| `tagline` | String | Short tagline, if available |
| `recordType` | String | Always `community_resource` |
| `scrapedAt` | String | ISO 8601 scrape timestamp |

### Example Output

```json
{
  "resourceId": "d2b50308-9c96-4681-b23b-0130308047ee",
  "type": "file",
  "name": "Free Icon Pack 1800+ icons",
  "description": "Do you want more icons? Send icon themes to my email.",
  "author": "Leonid Tsvetkov",
  "authorUrl": "https://www.figma.com/@Leonid",
  "likeCount": 19840,
  "duplicateCount": 730116,
  "thumbnailUrl": "https://s3-figma-hubfile-images-production.figma.com/hub/file/carousel/img/abc123",
  "url": "https://www.figma.com/community/file/886554014393250663",
  "categoryId": "a0f2fdd9-ab75-44c8-8671-7801bf768b94",
  "publishedAt": "2024-11-26T16:48:06.634Z",
  "editorTypes": ["design"],
  "recordType": "community_resource",
  "scrapedAt": "2026-05-17T12:00:00.000000+00:00"
}
````

### Modes

#### searchFiles

Search the Figma Community for design files, UI kits, and templates by keyword. Set `searchQuery` to terms like "dashboard", "ios kit", "design system", or "wireframe".

#### searchPlugins

Search for Figma plugins by keyword. Includes plugins for design, FigJam, and multi-editor use.

#### searchWidgets

Search for Figma widgets, primarily used in FigJam boards. Examples: "timer", "voting", "calendar".

#### trending

Browse the most popular resources across all types. Does not require a search query. Set `resourceType` to filter to a specific type.

#### byUser

Fetch all community resources published by a specific Figma user. Set `username` to the Figma profile handle (e.g., "joey", "relume", "material\_design").

### Resource Types

| Value | Description |
|---|---|
| `all` | All resource types |
| `design_template` | Figma design files and UI kits |
| `plugin` | Figma plugins |
| `widget` | Figma widgets (FigJam) |
| `figjam_template` | FigJam board templates |
| `slide_template` | Figma Slides templates |
| `site_template` | Figma Sites templates |

### FAQ

**Do I need a Figma account or API key?**
No. The Figma Community is publicly accessible and this scraper requires no credentials.

**How many items can I scrape?**
Up to 5,000 items per run. For larger datasets, run multiple searches with different queries.

**Can I search for FigJam templates?**
Yes. Set `resourceType` to `figjam_template` and use mode=`trending` or `searchFiles`.

**What is the duplicateCount field?**
This is Figma's "user\_count" — the number of times a resource has been duplicated into someone's drafts or projects. It's the best proxy for popularity/adoption.

**Why is viewCount sometimes missing?**
The Figma API returns 0 for view counts on most resources. The scraper omits zero-value fields to keep output clean.

**Can I get resources by a Figma organization or team?**
The `byUser` mode works with individual profile handles. Organization profiles may also work if they have a public handle.

**How fresh is the data?**
The scraper reads live data from the Figma Community API on each run.

### Limitations

- This scraper uses Figma's internal community API. Endpoints may change if Figma updates their platform.
- Figma requires JavaScript rendering for their community pages; however, this scraper uses the underlying JSON API directly for reliability.
- Very new or unlisted resources may not appear in search results immediately.
- Rate limiting may apply for very large runs; the scraper includes automatic retry logic.
- Some content (private files, restricted resources) is not accessible without authentication.

# Actor input Schema

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

What to scrape from Figma Community.

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

Keywords to search for (used in searchFiles, searchPlugins, searchWidgets modes).

## `username` (type: `string`):

Figma community profile handle or username to scrape resources from.

## `startUrls` (type: `array`):

Optional list of Figma Community URLs to scrape directly (e.g. https://www.figma.com/community/file/12345).

## `resourceType` (type: `string`):

Filter results to a specific resource type.

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

Order results by this field.

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

Maximum number of community resources to return.

## Actor input object example

```json
{
  "mode": "searchFiles",
  "searchQuery": "dashboard",
  "startUrls": [],
  "resourceType": "all",
  "sortBy": "all_time",
  "maxItems": 20
}
```

# Actor output Schema

## `resources` (type: `string`):

Dataset containing all scraped Figma Community resources.

# 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": "searchFiles",
    "searchQuery": "dashboard",
    "startUrls": [],
    "resourceType": "all",
    "sortBy": "all_time",
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/figma-community-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": "searchFiles",
    "searchQuery": "dashboard",
    "startUrls": [],
    "resourceType": "all",
    "sortBy": "all_time",
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/figma-community-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": "searchFiles",
  "searchQuery": "dashboard",
  "startUrls": [],
  "resourceType": "all",
  "sortBy": "all_time",
  "maxItems": 20
}' |
apify call crawlerbros/figma-community-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Figma Community Files, Plugins & Widgets Scraper",
        "description": "Scrape Figma Community design files, plugins, widgets, FigJam templates, and more. Search by keyword, browse trending resources, filter by type, or get resources by user.",
        "version": "1.0",
        "x-build-id": "qjjp2kAzcqYzfujaj"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~figma-community-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-figma-community-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/crawlerbros~figma-community-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-figma-community-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/crawlerbros~figma-community-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-figma-community-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",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "searchFiles",
                            "searchPlugins",
                            "searchWidgets",
                            "trending",
                            "byUser"
                        ],
                        "type": "string",
                        "description": "What to scrape from Figma Community.",
                        "default": "searchFiles"
                    },
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Keywords to search for (used in searchFiles, searchPlugins, searchWidgets modes).",
                        "default": "dashboard"
                    },
                    "username": {
                        "title": "Figma username (mode=byUser)",
                        "type": "string",
                        "description": "Figma community profile handle or username to scrape resources from."
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Optional list of Figma Community URLs to scrape directly (e.g. https://www.figma.com/community/file/12345).",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "resourceType": {
                        "title": "Resource type",
                        "enum": [
                            "all",
                            "design_template",
                            "plugin",
                            "widget",
                            "figjam_template",
                            "slide_template",
                            "site_template"
                        ],
                        "type": "string",
                        "description": "Filter results to a specific resource type.",
                        "default": "all"
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "all_time",
                            "recent",
                            "trending_30d"
                        ],
                        "type": "string",
                        "description": "Order results by this field.",
                        "default": "all_time"
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of community resources to return.",
                        "default": 20
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
