# Gumroad Scraper | Products | Sales | Digital Goods (`ahmed_jasarevic/gumroad-scraper`) Actor

Extract Gumroad product listings with pricing and sales data for digital product market research

- **URL**: https://apify.com/ahmed\_jasarevic/gumroad-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 5 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Gumroad Scraper — Products, Sales & Digital Goods

Scrape Gumroad digital product listings, prices, sales counts, ratings and sellers from any category or niche — for market research, competitive analysis and digital-product lead generation.

### Main Use Cases

- **Digital product market research** — analyze pricing, sales counts and ratings across categories
- **Competitive analysis** — track what top sellers in your niche offer and how they price
- **Product & seller lead gen** — discover successful Gumroad sellers for partnerships or outreach
- **Niche catalog building** — collect products in tech, business, 3D, design, photography and more
- **Price & sales monitoring** — watch sales counts and pricing trends over time

### How It Works

Pick a category from the Gumroad taxonomy (Tech, Business, Music, Film, Photography, Education, Books, Design, 3D, and more), and the actor collects matching products with their name, price, currency, sales count, average rating, seller info, thumbnail and product URL — returned as clean structured records.

### Build Digital-Product Databases Without the Official Gumroad API

Gumroad doesn't offer a public product-catalog API. This actor walks the storefront categories directly and returns consistent, research-ready records for every product — ideal for building a digital-goods database or competitor watchlist.

### Explore Niche Markets by Category

Choose exactly the segment you care about — from `software_development` and `business_and_money` to `3d_assets`, `photo_preset`, `courses`, `brushes`, `fonts`, `mockups`, `canva`, `figma`, `vr_chat` and dozens more — so every run is targeted and relevant.

### Input

| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
| `category` | string | — | "" | Gumroad category/niche key (e.g. `software_development`, `3d_assets`, `photo_preset`, `courses`, `fonts`). |
| `section_search` | string | — | hidden | Advanced category-tree configuration (hidden field). |

### Output

Each dataset record is one Gumroad product:

| Field | Description |
|---|---|
| `name` | Product name |
| `price` | Price (number) |
| `currency` | Currency code |
| `sales_count` | Number of sales |
| `ratings.average` | Average rating |
| `seller.name` | Seller name |
| `thumbnail_url` | Product image URL |
| `url` | Product page URL |
| `native_type` | Product type/label |

### Example Input

```json
{
  "category": "software_development"
}
```

### Example Output

```json
{
  "name": "Web Dev Starter Kit",
  "price": 29.0,
  "currency": "USD",
  "sales_count": 1240,
  "ratings": { "average": 4.8 },
  "seller": { "name": "JaneCreates" },
  "thumbnail_url": "https://gumroad.com/thumb.jpg",
  "url": "https://gumroad.com/l/webdev",
  "native_type": "Product"
}
```

### Integrations & Automation

- Export to CSV / Google Sheets / your DB from the dataset
- Schedule weekly runs to monitor sales counts and pricing across your niche
- Webhook results into your research pipeline or CRM

Recurring usage tip: run weekly to capture sales-count deltas and pricing changes for benchmark products.

### Related Actors

- `dtrungle/gumroad-scraper` — Gumroad products and sales data
- `dtrungle/gumroad-product-search` — Gumroad search-based collection
- `spdrummer1/gumroad-scraper` — Gumroad product extraction
- `maxcopell/gumroad-rankings` — Gumroad bestseller/top-product data
- `m1024796851/gumroad-creators` — Gumroad creator data

### FAQ

#### Why use this actor instead of an official Gumroad API?

Gumroad offers no public catalog API for browsing all products by category and pulling sales counts and ratings. This actor reads the public storefront directly, giving you research-ready data without building a manual scraper.

#### What are alternatives to this actor / Gumroad data?

Gumroad's own search/discovery pages, third-party product indexes, and other Gumroad scrapers on Apify (see Related Actors). For seller-side metrics you'd need access to a seller's own dashboard — this actor only reads public catalog data.

#### What categories are supported?

It covers a broad taxonomy: software development, web design, mobile apps, productivity tools, business & money, marketing, music/sample packs/VSTs, film, photography, education, books, comics, drawing/painting, design/branding/fonts/mockups/Canva/Figma, 3D assets/modeling/animation/VR-Chain, and more.

#### Do I need to choose a category?

No — `category` defaults to empty. Leaving it broad returns a wider product set; choosing a niche makes the run more targeted.

#### Can I track sales over time?

Yes — schedule recurring runs and compare `sales_count` values between runs to estimate momentum.

### SEO Keywords

gumroad scraper, gumroad product data, digital products data, gumroad sales tracker, gumroad category scraper, gumroad seller data, gumroad market research, digital goods database, gumroad competitive analysis, gumroad pricing data, gumroad api alternative, gumroad product search, digital product lead gen, gumroad ratings data, indie digital products, gumroad niche research, gumroad product list, gumroad export, gumroad creators data, digital product market data

### For AI Agents & LLM Apps

Returns one record per Gumroad product — name, price, currency, sales count, rating, seller, thumbnail and URL.

Minimal working input:

```json
{
  "category": "software_development"
}
```

Output field list (dataset): `name`, `price`, `currency`, `sales_count`, `ratings.average`, `seller.name`, `thumbnail_url`, `url`, `native_type`.

Behaviors an agent should know:

- `category` selects the niche; leave empty for a broader catalog.
- Sales/rating fields are the latest snapshot at scrape time — for trends, compare across scheduled runs.
- `thumbnail_url` is a URL string; fetch it separately if you need the image file.

Billing: pay-per-event (compute-based); keep a category narrow to control run size and cost.

### Legal & Compliance Disclaimer

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Gumroad. It accesses only publicly available storefront data; it does not bypass logins, access private dashboards, or expose seller-specific metrics beyond what's public. Users are responsible for complying with Gumroad's Terms of Service and applicable data-protection law when using or redistributing the scraped data.

# Actor input Schema

## `section_search` (type: `string`):

Select the category tree where products will be collected

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

Select the niche for data collection. This list covers Tech, Business, 3D, and Creative assets.

## `query` (type: `string`):

Optional: Filter categories by a specific keyword.

## `section_filters` (type: `string`):

Fine-tune your results

## `sort` (type: `string`):

Choose the sorting algorithm for search results.

## `minPrice` (type: `integer`):

Minimum price filter in USD.

## `maxPrice` (type: `integer`):

Maximum price filter in USD.

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

Filter products by minimum average rating (0-5).

## `section_limits` (type: `string`):

Performance and depth settings

## `maxPages` (type: `integer`):

How many pages of results to crawl. Leave empty for unlimited (paid users). Free users are capped at 2 pages.

## `scrapeDetails` (type: `boolean`):

If enabled, visits each product page to get full sales counts, ratings, and file sizes.

## `section_direct` (type: `string`):

Enter full URLs below to bypass search and filters.

## `productUrls` (type: `array`):

List of full Gumroad product URLs (one per line).

## Actor input object example

```json
{
  "category": "",
  "sort": "trending",
  "minPrice": 0,
  "minRating": 0,
  "scrapeDetails": true,
  "productUrls": []
}
```

# Actor output Schema

## `dataset` (type: `string`):

Link to the default dataset containing the scraped Gumroad products.

# 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 = {
    "productUrls": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/gumroad-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 = { "productUrls": [] }

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/gumroad-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 '{
  "productUrls": []
}' |
apify call ahmed_jasarevic/gumroad-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ahmed_jasarevic/gumroad-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/mUMX0FJURQyhOxxcY/builds/Rcc1gqqkUQr5L4QMM/openapi.json
