# Creative Market Design Asset Scraper (`jungle_synthesizer/creative-market-design-asset-scraper`) Actor

Extract product listings from Creative Market, the independent design-asset marketplace: title, shop name, category, price, sales count, rating, review count, file types, tags, publish date, and preview image. Covers Fonts, Templates & Themes, Graphics & Illustrations, and Brushes & Effects.

- **URL**: https://apify.com/jungle\_synthesizer/creative-market-design-asset-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.40 / 1,000 record scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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

## Creative Market Design Asset Scraper

Scrape product listings from [Creative Market](https://creativemarket.com), the independent design-asset marketplace. Returns title, shop name, category, price, sales count, rating, review count, file types, tags, and publish date for fonts, templates, graphics, and brushes — the per-product sales and pricing data designers and shop owners use to size a niche before they compete in it.

***

### Creative Market Design Asset Scraper Features

- Extracts 13 fields per product, including `sales_count` and `shop_name` — the two numbers most design-asset scrapers don't bother with
- Search the whole catalogue by keyword, or browse by vertical — one `search` query beats guessing which category a product sits in
- Covers all four Creative Market verticals: Fonts, Templates & Themes, Graphics & Illustrations, and Brushes & Effects
- Returns price, rating, and review count for every product where the source publishes them
- Pulls tags and compatible-software/file-type info straight from each product page, not guessed from the title
- Follows pagination automatically across search results and categories until it hits your `maxItems` cap
- Resumes an interrupted crawl without re-charging you for records you already have

***

### Who Uses Creative Market Data?

- **Shop owners** — benchmark competitor pricing and sales volume before launching a new product line
- **Designers** — research which tags and categories are driving sales in a niche before publishing
- **Market researchers** — track pricing and demand trends across the independent design-asset economy
- **Marketplace analysts** — build a comparison dataset against Etsy, Envato, or other creator marketplaces
- **Content strategists** — mine tags and categories for keyword research on design trends

***

### How Creative Market Design Asset Scraper Works

1. Give it a `search` query to hunt the whole catalogue by keyword — or skip it and pick verticals instead: Fonts, Templates & Themes, Graphics & Illustrations, Brushes & Effects, or leave both blank for all four.
2. The scraper walks the search results (or each category's listing pages) and queues up every product it finds.
3. Each product page is fetched for the fields the listing page doesn't carry — sales count, rating, review count, tags, and file types.
4. Records land in your dataset as soon as they're scraped, up to your `maxItems` limit.

***

### Input

```json
{
  "maxItems": 100,
  "search": "wedding invitation template"
}
```

| Field          | Type    | Default   | Description |
|----------------|---------|-----------|-------------|
| `maxItems`     | integer | 10        | Maximum number of products to scrape (required) |
| `search`       | string  | —         | Free-text query run against the whole catalogue. **Takes precedence over `categories`** — Creative Market's search spans all four verticals at once, so the two can't be combined. Leave empty to browse by category instead. |
| `categories`   | array   | all four  | Which verticals to crawl: `fonts`, `templates`, `graphics`, `brushes`. Leave empty to crawl all of them. Ignored when `search` is set. |
| `resumeCursor` | string  | —         | Cursor from a previous run's Output — continues an interrupted crawl instead of starting over |

Browse one vertical instead of searching:

```json
{
  "maxItems": 100,
  "categories": ["graphics"]
}
```

Scrape everything — no query, no vertical filter:

```json
{
  "maxItems": 500
}
```

***

### Creative Market Design Asset Scraper Output Fields

```json
{
  "product_id": "291860737",
  "title": "Embossed Papers & Frames",
  "shop_name": "Purple",
  "category": "Textures",
  "price": 16.8,
  "sales_count": 237,
  "rating": 5,
  "num_reviews": 3,
  "file_types": ["Adobe Photoshop", "Affinity Designer", "Affinity Photo", "After Effects", "Adobe InDesign"],
  "tags": ["Embossed Paper", "Paper Frames", "Paper Backgrounds", "Textured Paper"],
  "published": "2025-09-26",
  "product_url": "https://creativemarket.com/Nat_Purple/291860737-Embossed-Papers-Frames",
  "preview_url": "https://tint.creativemarket.com/jURp6Q6.../width:440/height:292/...",
  "scraped_at": "2026-08-11T06:34:12.454Z"
}
```

| Field | Type | Description |
|-------|------|-------------|
| `product_id` | string | Creative Market's numeric product ID (sku) |
| `title` | string | Product title |
| `shop_name` | string | Name of the independent creator/shop that published the product |
| `category` | string | Sub-category label (e.g. Patterns, Textures, Script) within the crawled top-level vertical |
| `price` | number | Listed price in USD for the product's base/first license tier |
| `sales_count` | integer | Total number of paid purchases of this product |
| `rating` | number | Average product review rating, 1-5 (blank on products with no reviews) |
| `num_reviews` | integer | Number of product reviews (blank on products with no reviews) |
| `file_types` | array | Compatible software / file-format list from the product specs |
| `tags` | array | Search tags/keywords the shop attached to the product |
| `published` | string | ISO-8601 date the product was first released on Creative Market |
| `product_url` | string | Canonical Creative Market URL for the product |
| `preview_url` | string | URL of the product's primary preview/thumbnail image |

***

### Resuming a large crawl

Every run emits a `resumeCursor` in its Output. If a large crawl stops before it finishes — because it hit `maxItems`, your spend cap (`maxTotalChargeUsd`), or was aborted — start a new run with **the same input** plus that `resumeCursor` to continue from where it left off. The crawl resumes from the queued work the previous run didn't reach.

- You are **not re-charged** for records the earlier run already delivered.
- Resume within your account's run-retention window — on the free tier, roughly your 10 most recent runs. Once the source run is pruned, its `resumeCursor` is no longer valid.
- `resumeCursor` is opaque — supply it unmodified.

***

### FAQ

#### How do I scrape Creative Market?

Run this actor with a `maxItems` value and either a `search` query or a list of `categories`. It handles pagination and product-page fetches on its own — you get back a dataset, not a browser tab full of tabs.

#### How much does Creative Market Design Asset Scraper cost to run?

Pricing follows Apify's pay-per-event model, billed per record saved. Check the actor's Pricing tab in the Apify Console for the current rate.

#### What data can I get from Creative Market?

Title, shop name, category, price, sales count, rating, review count, file types, tags, publish date, and both the product URL and preview image URL — everything a competing shop owner would want to benchmark a listing.

#### Can I search for specific products?

Yes. Pass `search` with any keyword — `"wedding invitation"`, `"retro serif font"`, `"procreate brush set"` — and the scraper runs it against Creative Market's own search, paginating through the results until it hits `maxItems`. Results are ranked by the marketplace's relevance, so a match can come from a product's tags rather than its title.

#### Can I filter by category?

Yes. Pass `categories` with any combination of `fonts`, `templates`, `graphics`, and `brushes`. Leave it out and the scraper covers all four. Note that `search` takes precedence — set both and the query wins, because Creative Market's search covers every vertical at once and exposes no category filter.

#### Do I need an account or API key for Creative Market?

No. Point the actor at a search query or the categories you want and run it.

***

### Need More Features?

Need custom fields, filters, or a different target site? [File an issue](https://console.apify.com/actors/issues) or get in touch.

### Why Use Creative Market Design Asset Scraper?

- **Sales data included** — most design-marketplace scrapers stop at title and price; this one returns `sales_count` and `shop_name`, the numbers you actually need to size a niche
- **Full-catalogue coverage** — crawls all four Creative Market verticals in one actor, so you're not stitching together four separate scrapers for fonts, templates, graphics, and brushes
- **Clean, consistent JSON** — structured output with stable field names, so you spend less time cleaning data and more time using it

# Actor input Schema

## `sp_intended_usage` (type: `string`):

What will this data feed? E.g. lead lists, KYB checks, price tracking.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

We'll personally help with your use case. No spam.

## `resumeCursor` (type: `string`):

Leave empty for a fresh crawl. To CONTINUE a previous run where it stopped — without paying again for records you already received — paste the `resumeCursor` value from that run's Output (the run's OUTPUT key). Resume promptly: the previous run's data expires with your account's retention window (free tier: your ~10 most recent runs).

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

Maximum number of records to scrape

## `search` (type: `string`):

Free-text query to search the whole Creative Market catalogue (e.g. "wedding planner template"). Takes precedence over Categories — leave empty to browse by category instead.

## `categories` (type: `array`):

Top-level marketplace verticals to crawl. Leave empty to crawl all four (Fonts, Templates & Themes, Graphics & Illustrations, Brushes/Effects/More).

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 10
}
```

# 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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 10,
    "search": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/creative-market-design-asset-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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "maxItems": 10,
    "search": "",
}

# Run the Actor and wait for it to finish
run = client.actor("jungle_synthesizer/creative-market-design-asset-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 '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "maxItems": 10,
  "search": ""
}' |
apify call jungle_synthesizer/creative-market-design-asset-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jungle_synthesizer/creative-market-design-asset-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/AfYGpaQmp7pZojzFS/builds/QIdgKsRYwLQe4xv0w/openapi.json
