Gumroad Product Scraper avatar

Gumroad Product Scraper

Pricing

from $0.60 / 1,000 product scrapeds

Go to Apify Store
Gumroad Product Scraper

Gumroad Product Scraper

Extract Gumroad digital products: name, price, ratings, seller info, product type, and more. Scrape by keyword search, seller profile, or direct product URL. No API key needed.

Pricing

from $0.60 / 1,000 product scrapeds

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

🛒 What does Gumroad Product Scraper do?

Gumroad Product Scraper extracts digital product data from Gumroad — the leading marketplace for indie creators selling ebooks, courses, templates, software, and more.

You can scrape by:

  • 🔍 Search keywords — find all products matching "notion template", "python course", or any other term
  • 🏷️ Category/tag — scrape all products in a category (e.g. design, education, development)
  • 📦 Product URL — extract data from a specific product page
  • 👤 Seller profile — collect every product from a specific creator

The scraper extracts product name, price, ratings, seller info, product type, thumbnail, tags, description, and more — no API key required.


👥 Who is Gumroad Product Scraper for?

Market researchers tracking pricing and demand across the creator economy.

Indie hackers and entrepreneurs studying what digital products are selling in their niche before launching their own.

Affiliate marketers building product comparison sites in Gumroad niches.

Data analysts studying the creator economy, ebook market, or digital goods pricing trends.

Developers and agencies building tools for clients who sell on Gumroad.

Investors and VCs validating market size for creator economy opportunities.


🌟 Why use Gumroad Product Scraper?

  • No API key or Gumroad account needed — public data, no authentication
  • No proxy required — Gumroad serves HTML without bot blocking
  • Paginated search — automatically loops through all result pages
  • Multiple input modes — search, product URL, seller profile, or discover URL
  • Optional detail enrichment — fetch full description, attributes, and covers
  • Structured JSON output — ready for spreadsheets, databases, or analytics tools
  • Cheap to run — HTTP-only, 256 MB, fast

📊 What data does it extract?

FieldDescription
nameProduct title
productUrlFull canonical product URL
permalinkGumroad short ID
priceUsdPrice in USD (float)
priceCentsRaw price in cents
currencyCurrency code (usd, eur, etc.)
isPayWhatYouWantPWYW flag
productTypeType: ebook, course, template, bundle, software, etc.
ratingAverageAverage star rating (1–5)
ratingCountTotal number of ratings/reviews
sellerNameCreator display name
sellerProfileUrlCreator's Gumroad profile URL
sellerVerifiedWhether creator is Gumroad-verified
thumbnailUrlProduct cover/thumbnail image URL
descriptionShort product summary
descriptionHtmlFull HTML description (when detail fetch enabled)
salesCountNumber of sales (when available)
isPhysicalPhysical product flag
isSubscriptionRecurring billing/subscription flag
tagsTags from search aggregation
attributesProduct attributes (pages, file size, etc.)
scrapedAtISO 8601 timestamp

💡 How much does it cost to scrape Gumroad products?

This actor uses Pay-Per-Event (PPE) pricing — you pay only for what you collect:

EventFREE tierWhat it covers
Actor start$0.005One-time per run
Product scraped$0.001Per product saved

Example costs:

  • 100 products: ~$0.105
  • 500 products: ~$0.505
  • 1,000 products: ~$1.005

Higher Apify subscription tiers (Bronze, Silver, Gold, Platinum, Diamond) get up to 60% discount on per-product pricing. No Apify subscription? You still get a generous free tier.


🚀 How to scrape Gumroad products — step by step

  1. Open Gumroad Product Scraper on Apify
  2. Enter your search — type keywords like notion template or python course in Search queries
  3. Set max results — choose how many products to collect per query (default: 50)
  4. Optional: paste URLs — add specific product, seller, or Gumroad Discover URLs
  5. Click Start — the actor runs and populates your dataset
  6. Download results — export as JSON, CSV, or Excel from the dataset tab

⚙️ Input configuration

Search queries

List of keywords to search on Gumroad Discover. One search per line. Example:

notion template
python course
figma ui kit

Start URLs

Gumroad URLs to scrape directly. Supports:

  • Product page: https://seller.gumroad.com/l/permalink
  • Seller profile: https://seller.gumroad.com
  • Discover/category: https://gumroad.com/discover?tags[]=design

Max results per query/URL

Maximum number of products to collect per query or URL. Set to 0 for unlimited. Default: 50.

Fetch product details

When enabled, visits each product page to retrieve: full HTML description, short summary, product attributes (pages, size, length), and additional cover images. Adds one extra HTTP request per product but significantly enriches the data.

Sort by

How to order search results:

  • Featured (default) — Gumroad's editorial ranking
  • Newest — most recently published
  • Top rated — highest rated products first
  • Most reviewed — most reviewed products first

📤 Output format

Each product is stored as a JSON object in the dataset:

{
"name": "The Freelancer's SEO Playbook",
"permalink": "xgdmn",
"productUrl": "https://johndoe.gumroad.com/l/xgdmn",
"priceUsd": 29.00,
"priceCents": 2900,
"currency": "usd",
"isPayWhatYouWant": false,
"productType": "ebook",
"ratingAverage": 4.9,
"ratingCount": 143,
"sellerName": "John Doe",
"sellerProfileUrl": "https://johndoe.gumroad.com",
"sellerVerified": false,
"thumbnailUrl": "https://public-files.gumroad.com/...",
"description": "A complete SEO guide for freelancers...",
"descriptionHtml": null,
"salesCount": null,
"isPhysical": false,
"isSubscription": false,
"tags": ["seo", "freelance", "marketing"],
"attributes": [],
"scrapedAt": "2026-04-06T12:00:00.000Z"
}

💡 Tips for best results

  • Use specific keywordsnotion productivity template returns more relevant results than just template
  • Combine search + profile scraping — search for a niche, then deep-dive on top sellers
  • Disable detail fetch for bulk — scraping 1,000 products is 2x faster without detail pages
  • Use discover URLs for categories — go to Gumroad, filter by category/tag, then copy the URL and paste it as a start URL
  • Set maxResults = 0 carefully — popular queries can have 10,000+ products

🔗 Integrations

Export to Google Sheets for market research

Run a search → download CSV → import to Sheets → sort by ratingAverage and ratingCount to find proven products in your niche.

Build a product comparison dashboard

Use the Apify API to feed Gumroad data into a Notion database, Airtable, or custom app for your content site.

Automate competitor monitoring

Schedule weekly runs on specific seller profiles to track new product launches and price changes from competitors.

Zapier / Make automation

Trigger Zapier or Make scenarios when new products appear in your target niche — send Slack alerts, add to CRM, or update databases.


🤖 API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('automation-lab/gumroad-product-scraper').call({
searchQueries: ['notion template', 'figma ui kit'],
maxResults: 100,
fetchProductDetails: false,
sortBy: 'top_rated',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("automation-lab/gumroad-product-scraper").call(run_input={
"searchQueries": ["notion template", "figma ui kit"],
"maxResults": 100,
"fetchProductDetails": False,
"sortBy": "top_rated",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["name"], item["priceUsd"])

cURL

curl -X POST \
'https://api.apify.com/v2/acts/automation-lab~gumroad-product-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"searchQueries": ["notion template"],
"maxResults": 50,
"sortBy": "featured"
}'

🤖 Use with AI agents via MCP

Gumroad Product Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).

Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com"

Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}

Your AI assistant will use OAuth to authenticate with your Apify account on first use.

Example prompts

Once connected, try asking your AI assistant:

  • "Use automation-lab/gumroad-product-scraper to search for 'notion template' and find the top 20 products sorted by rating"
  • "Get all products from Gumroad seller profile https://johndoe.gumroad.com"
  • "Find the cheapest ebooks on Gumroad tagged 'marketing' using gumroad-product-scraper"

Learn more in the Apify MCP documentation.


This actor only collects publicly available data — the same information visible to any visitor without logging in. No authentication, private data, or paywalled content is accessed.

Web scraping of public data is protected under the Computer Fraud and Abuse Act (CFAA) and affirmed by multiple court rulings (hiQ v. LinkedIn, 2022). Always use scraped data responsibly and in accordance with applicable laws in your jurisdiction.


❓ FAQ

Does the actor require a Gumroad account or API key? No — it accesses only public pages, just like a normal browser visit. No login required.

Does it need a proxy? No. Gumroad returns standard HTTP 200 responses without bot-blocking. This makes runs fast and cheap.

Can I scrape all products from a specific seller? Yes — paste the seller's Gumroad profile URL (e.g. https://johndoe.gumroad.com) as a start URL and set maxResults to 0 for unlimited.

Why is salesCount null for some products? Gumroad does not expose exact sales counts publicly in most cases. The field is null when Gumroad hides this data.

The actor returned fewer results than expected — why? Gumroad's search may return fewer results than the total count suggests if some products are unpublished, region-restricted, or removed mid-scrape. This is a Gumroad-side limitation.

I'm getting empty results for a query — what should I try? Try a simpler query (fewer words), check the spelling, or try the URL of a Gumroad Discover search with your filters applied.