# Gumroad Creators (`datasaurus/gumroad-creators`) Actor

Discover and deduplicate Gumroad creators, then scrape public profiles, social links and product URLs.

- **URL**: https://apify.com/datasaurus/gumroad-creators.md
- **Developed by:** [datasaurus](https://apify.com/datasaurus) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 creator profiles

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

## Gumroad Creator Scraper

Discover Gumroad creators and collect profile and product information. You can start from discovery pages, creator storefronts, or product URLs.

Please also check out our [Gumroad Product Scraper](https://console.apify.com/actors/oYWyY2vWocql0rhaC/info/readme?build=latest) for detailed product information.

Creator profiles include creator ID, name, username, bio, avatar, verification status, social links, websites, follower and following counts when available, and concise summaries of  products.

### Input Example

```json
{
  "startUrls": [
    {"url": "https://gumroad.com/software-development?query=mac"},
    {"url": "https://noahnuebling.gumroad.com/"},
    {"url": "https://classventure.gumroad.com/l/StoreDownloader"}
  ],
  "maxDiscoveryProducts": 48,
  "includeAllProducts": false
}
```

| Parameter | Default | Behavior |
|---|---|---|
| `startUrls` | Required | Discovery/category/search URLs, creator storefront root URLs, or direct Gumroad product URLs (for example, `https://classventure.gumroad.com/l/StoreDownloader`). |
| `maxDiscoveryProducts` | 5 | Maximum product-result rows examined per discovery, category or search start URL to find creators. Duplicate rows count toward each URL's limit. Direct creator and product URLs are unaffected. |
| `sort` | `null` | Optional discovery ordering: `trending`, `best_sellers`, or `hot_and_new`. Leave `null` to let Gumroad choose the order. |
| `includeAllProducts` | `false` | Both modes return product summary objects. The default uses products already embedded in the creator profile response, usually up to 9 per section, without pagination. Set to `true` to collect up to 100 unique products per creator, matching Gumroad's embedded public catalogue limit. It does not fetch individual product pages. With pay-per-event pricing, the first 9 summaries per creator are included in the creator charge; each productsummary after that costs $0.001. |

The scraper preserves query parameters from Gumroad discovery/category/search URLs, including search terms, tags, price filters and category taxonomy; if entered, `sort` input overrides any `sort` query parameter in a start URL. Direct product URLs must use a Gumroad creator storefront host (`<creator>.gumroad.com/l/<permalink>`).

### Output Example

One dataset record per unique creator identity. Creator IDs prevent duplicate records for storefront aliases. `productCount` is Gumroad's advertised public catalogue total when available. `scrapedProductCount` is the number of unique product summaries included in scrapped `products`.

For example:

```json
{
  "creatorId": "4097625116748",
  "name": "TACTYC Studio",
  "username": "tactyc",
  "profileUrl": "https://tactyc.gumroad.com",
  "bio": "TACTYC Studio is a design-driven 3D animation and digital innovation studio.",
  "avatarUrl": "https://public-files.gumroad.com/h8h62jq0dneew3581apkkq6krxut",
  "isVerified": false,
  "socialLinks": [
    {
      "platform": "twitter",
      "url": "https://twitter.com/TactycStudio"
    }
  ],
  "twitterHandle": "TactycStudio",
  "productCount": 5,
  "scrapedProductCount": 5,
  "sourceUrls": [
    "https://gumroad.com/software-development"
  ],
  "scrapedAt": "2026-10-12T09:53:57.411039+00:00",
  "products": [
    {
      "productId": "Ru_qEOtrsSsTgdoBWcZmtQ==",
      "permalink": "xyvij",
      "name": "TACTYC Houdini Supernova Firework",
      "url": "https://tactyc.gumroad.com/l/xyvij",
      "priceCents": 500,
      "currency": "eur",
      "ratingCount": 0,
      "ratingAverage": 0.0,
      "productType": "digital",
      "thumbnailUrl": "https://public-files.gumroad.com/ivacqp27fat2poto0m54uf612zhw"
    }
  ]
}
```

### Pricing

| Event | Price | When charged |
|---|---|---|
| `creator-profile` | $0.005 | Each unique creator record successfully stored, including its product summaries. |
| `additional-product-summary` | $0.0005 | Each unique product summary after the first 9 for a creator, only when `includeAllProducts: true`. |

For example, a creator with 32 products costs $0.021 total when `includeAllProducts: true`: $0.005 for the creator profile plus 23 additional summaries at $0.0005 each. With `includeAllProducts: false`, no additional-product-summary events are charged so the total cost is $0.005.

### AI agents and integrations

Connect chat clients such as Claude and ChatGPT to this Apify scrapper through the Apify MCP server.

# Actor input Schema

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

Gumroad discovery/category/search URLs, creator storefront root URLs, or direct product URLs such as https://classventure.gumroad.com/l/StoreDownloader. A product URL is resolved to its creator storefront.

## `maxDiscoveryProducts` (type: `integer`):

Maximum number of product-result rows to inspect for each discovery, category or search start URL to find creators. Duplicate rows count toward the per-URL limit. It does not limit the number of creators found or products collected from each creator. Direct creator and product URLs are not affected.

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

Optional sorting for discovery/category/search results. Leave null to let Gumroad choose the order.

## `includeAllProducts` (type: `boolean`):

Controls how many products are collected; False (default): include products and available details already in the creator profile response, usually up to 9 per product section. True: collect up to 100 unique products per creator using the embedded catalogue or pagination. Summary objects include available name, URL, price, currency, rating, type, thumbnail and short description fields. Individual product pages are not fetched. With pay-per-event pricing, the first 9 summaries per creator are included in the creator-profile event; each additional summary is charged separately at $0.001.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://gumroad.com/software-development"
    },
    {
      "url": "https://elitesolutions1.gumroad.com"
    },
    {
      "url": "https://classventure.gumroad.com/l/StoreDownloader"
    }
  ],
  "maxDiscoveryProducts": 5,
  "includeAllProducts": false
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://gumroad.com/software-development"
        },
        {
            "url": "https://elitesolutions1.gumroad.com"
        },
        {
            "url": "https://classventure.gumroad.com/l/StoreDownloader"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("datasaurus/gumroad-creators").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 = { "startUrls": [
        { "url": "https://gumroad.com/software-development" },
        { "url": "https://elitesolutions1.gumroad.com" },
        { "url": "https://classventure.gumroad.com/l/StoreDownloader" },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("datasaurus/gumroad-creators").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 '{
  "startUrls": [
    {
      "url": "https://gumroad.com/software-development"
    },
    {
      "url": "https://elitesolutions1.gumroad.com"
    },
    {
      "url": "https://classventure.gumroad.com/l/StoreDownloader"
    }
  ]
}' |
apify call datasaurus/gumroad-creators --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datasaurus/gumroad-creators"
        }
    }
}
```

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/wvVzHtjCqdybQHlpd/builds/YTxBDRA9JBiYBeodl/openapi.json
