Gumroad Products Scraper
Pricing
from $1.80 / 1,000 item extracteds
Gumroad Products Scraper
Export public Gumroad Discover product cards with seller profiles, prices, currencies, rating summaries, thumbnails, product types, and URLs for catalog research and monitoring.
Pricing
from $1.80 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Export public Gumroad products from Gumroad Discover into a structured dataset. Each row contains product identity, seller profile, listed price and currency, rating summary, thumbnail, product type, and canonical URL.
Use the Actor for repeatable catalog snapshots, niche research, price comparisons, and product discovery without manually copying cards from Discover. It uses Gumroad's public server-rendered Discover data and does not require a login.
What does Gumroad Products Scraper do?
The Actor accepts one or more search queries or filtered Gumroad Discover URLs. It paginates public results, normalizes each card, removes duplicate products, applies optional rating and product-type filters, and saves accepted products to the default Apify dataset.
It is intentionally focused on public catalog cards. It does not claim to extract purchases, private customer data, written reviews, creator email addresses, sales counts, or files sold by creators.
Who is this Gumroad product data for?
- Catalog analysts tracking products and sellers in a digital-product niche.
- Creators comparing public pricing, ratings, and product positioning.
- Market researchers building a reproducible catalog snapshot.
- Agencies discovering public creator profiles and product URLs.
- Data teams loading Gumroad Discover records into a warehouse or dashboard.
- Developers integrating public catalog discovery into an existing workflow.
Choose this Actor when product-card data is the unit you need. A product-detail or review-specific workflow requires a different data source and is outside this Actor's scope.
Why use this Actor?
- Search several real Gumroad niches in one run.
- Start from a public Discover URL with Gumroad filters already applied.
- Collect up to 10,000 products per run with duplicate removal.
- Filter by minimum average rating or exact public product type.
- Receive stable, typed field names instead of page markup.
- Keep the product URL and source URL for traceability.
- Pay only for the run start and product rows saved.
- Run locally, from the Apify API, on a schedule, or through MCP.
The Actor fetches HTML only; it does not download product thumbnails or paid product files.
What Gumroad product fields are extracted?
| Field | Description |
|---|---|
productId | Gumroad product identifier when exposed |
permalink | Product permalink slug |
title | Product title on the Discover card |
productUrl | Clean public product URL |
sellerName | Public seller display name |
sellerProfileUrl | Clean public seller profile URL |
sellerVerified | Whether Gumroad marks the seller as verified |
price | Listed price in the currency's major unit |
priceCents | Raw listed price in the currency's minor unit |
currency | Uppercase currency code |
ratingAverage | Public average rating, or null when unrated |
ratingCount | Number of ratings in the public summary |
thumbnailUrl | Product-card thumbnail URL |
productType | Gumroad native product type when exposed |
isPayWhatYouWant | Whether pay-what-you-want is enabled |
recurrence | Recurring billing interval when exposed |
query | Search query associated with the result |
sourceUrl | Discover URL used to find the product |
scrapedAt | UTC extraction timestamp |
Fields may be null when Gumroad does not expose them on a card.
The dataset schema permits extra upstream fields for forward compatibility, but
the Actor currently emits only the documented normalized fields.
How to scrape Gumroad products
- Open the Actor in Apify Console.
- Enter a real query such as
procreate brushesornotion templates. - Optionally add Gumroad Discover URLs with filters already selected.
- Set the maximum number of products.
- Optionally set a minimum rating or product types.
- Click Start.
- Open the Dataset tab to inspect, download, or integrate the results.
Start with 10–50 products while validating a niche. Increase the limit when the output matches the catalog job you need.
Input parameters
searchQueries
A list of keyword searches sent to public Gumroad Discover.
Blank query values are ignored.
Examples include procreate brushes, vrchat avatar, and notion templates.
startUrls
Optional URLs under https://gumroad.com/discover.
The Actor preserves their query parameters and controls pagination itself.
Other domains, seller storefront URLs, and direct product URLs fail validation.
maxItems
Maximum accepted products across all inputs after duplicate removal. The default is 100; valid values are 1 through 10,000. Filters may cause the Actor to inspect more cards than it saves.
minRating
Optional number from 0 through 5. Products without a public average rating are treated as zero for this filter.
productTypes
Optional exact type values such as digital, ebook, or course.
Values are matched case-insensitively against the type Gumroad exposes.
Run once without this filter if you need to inspect current source values.
Example input
{"searchQueries": ["notion templates","notion finance template"],"minRating": 4,"maxItems": 50}
A URL-driven run is also supported:
{"startUrls": [{ "url": "https://gumroad.com/discover?query=vrchat%20avatar" }],"maxItems": 20}
Example output
A current public Discover card produces a row shaped like this:
{"productId": "QWJjREVGR0hJSktMTU5PUA==","permalink": "sample-brush-pack","title": "Sample Procreate Brush Pack","productUrl": "https://samplecreator.gumroad.com/l/sample-brush-pack","sellerName": "Sample Creator","sellerProfileUrl": "https://samplecreator.gumroad.com/","sellerVerified": true,"price": 12.5,"priceCents": 1250,"currency": "USD","ratingAverage": 4.8,"ratingCount": 42,"thumbnailUrl": "https://public-files.gumroad.com/sample-image","productType": "digital","isPayWhatYouWant": false,"recurrence": null,"query": "procreate brushes","sourceUrl": "https://gumroad.com/discover?query=procreate%20brushes","scrapedAt": "2026-08-27T06:00:00.000Z"}
The sample identity is anonymized. Actual rows contain current public Gumroad values.
How much does it cost to scrape Gumroad products?
This is a pay-per-event Actor. A run currently has a $0.03 start fee plus a tiered fee for each item saved. At the current BRONZE tier, the item fee is $0.003 per item. Higher usage tiers have lower per-item prices; Apify applies the tier for the customer's plan.
BRONZE examples use the same active prices:
| Items saved | Pricing calculation |
|---|---|
| 10 | one $0.03 start event plus 10 item events at $0.003 each |
| 100 | one $0.03 start event plus 100 item events at $0.003 each |
| 1,000 | one $0.03 start event plus 1,000 item events at $0.003 each |
Only accepted rows are charged as item events. Rejected filters, duplicate cards, failed pages, and empty results do not create item charges. Apify platform pricing shown on the Actor page is authoritative.
Catalog monitoring workflow
Use an Apify schedule to run the same input daily or weekly.
Export each dataset to your database with productId or productUrl as the key.
Compare price, currency, ratingAverage, ratingCount, and seller fields
between snapshots in your own pipeline.
The Actor produces timestamped snapshots. It does not retain history, calculate differences, or send alerts by itself. This boundary keeps the output easy to connect to any monitoring stack.
Spreadsheet and data-pipeline integrations
- Download the dataset as JSON, CSV, Excel, XML, or RSS in Apify Console.
- Connect Apify to Google Sheets for a lightweight catalog table.
- Send run results through a webhook after completion.
- Read dataset items from Python or JavaScript.
- Load records into BigQuery, Snowflake, PostgreSQL, or another warehouse.
- Use Make, Zapier, or n8n to trigger downstream review workflows.
Use productId when available and fall back to productUrl for de-duplication.
Keep scrapedAt when snapshots must be compared over time.
Run with the Apify API
Replace APIFY_TOKEN with your Apify API token.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~gumroad-product-catalog-scraper/runs?token=APIFY_TOKEN&waitForFinish=120" \-H "Content-Type: application/json" \-d '{"searchQueries":["procreate brushes"],"maxItems":20}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/gumroad-product-catalog-scraper').call({searchQueries: ['procreate brushes'],maxItems: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient(token="APIFY_TOKEN")run = client.actor("automation-lab/gumroad-product-catalog-scraper").call(run_input={"searchQueries": ["procreate brushes"], "maxItems": 20})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Avoid placing tokens directly in source control. Use environment variables or your platform's secret manager.
Use Gumroad Products Scraper with MCP
Add the Apify MCP server to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/gumroad-product-catalog-scraper"
Claude Desktop
Use this remote MCP configuration in Claude Desktop:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/gumroad-product-catalog-scraper"}}}
Cursor
Add the same mcpServers.apify.url value in Cursor's MCP settings.
VS Code
Add the same remote server URL through your VS Code MCP extension or settings.
Example prompts:
- "Find 20 public Gumroad Procreate brush products and summarize price ranges."
- "Export highly rated Gumroad Notion templates as a table."
- "Create a Gumroad VRChat avatar catalog with sellers, ratings, and URLs."
MCP tool availability depends on your Apify authentication and client setup.
Reliability, pagination, and limits
Gumroad currently returns structured product cards in server-rendered Inertia data, with 36 cards per Discover page. The Actor recognizes that data shape and paginates with Gumroad's public offset.
Temporary network errors, HTTP 429 responses, and server errors receive bounded retries with backoff. A permanent non-200 response or an unrecognized page shape fails the run rather than silently returning a misleading empty dataset.
The Actor uses direct HTTP without a proxy or browser.
If Gumroad changes its public markup or access policy, a code update may be
required.
Naturally sparse searches can return fewer products than maxItems.
Tips for better results
- Use specific buyer phrases rather than a single broad word.
- Run separate queries when niches have different vocabulary.
- Begin without
productTypesto observe Gumroad's current type values. - Remember that prices are expressed in each row's own
currency. - Treat a null rating as unavailable, not as a negative customer review.
- Schedule consistent input and timing for comparable catalog snapshots.
- Keep limits proportional to the number of records you actually need.
- Inspect logs when a source query unexpectedly returns no accepted records.
Responsible and legal use
This Actor accesses public Gumroad Discover pages without logging in. You are responsible for ensuring your collection and use comply with Gumroad's terms, applicable laws, database rights, privacy rules, and contractual duties.
Do not use output for harassment, unlawful profiling, spam, or attempts to access paid files or private customer information. Collect only what is necessary for a legitimate purpose, apply appropriate retention controls, and honor valid deletion or correction obligations. This documentation is not legal advice.
Troubleshooting
Why did the run reject my URL?
Only public https://gumroad.com/discover URLs are accepted in startUrls.
Use searchQueries for keyword discovery.
Seller storefront and direct product pages are not part of this catalog Actor.
Why are there fewer rows than requested?
The search may be sparse, filters may reject cards, or the same product may appear under more than one input. The Actor de-duplicates products and charges only rows it saves.
Why is ratingAverage null?
Gumroad does not expose a positive rating average for every product card.
Use ratingCount and retain null as "not available."
Why did the run fail instead of returning zero rows?
An invalid source URL, unexpected HTTP response, or changed Gumroad data shape is operational failure, not proof that a catalog contains zero products. Inspect the run log and retry later if Gumroad returned a temporary error.
FAQ
Does the Actor download Gumroad products?
No. It exports public metadata cards only and never downloads the files being sold.
Related Automation Lab Actors
- Flipkart Product Listings Scraper for public Flipkart search and category catalog records.
- Shopee Product Details Scraper for supplied public Shopee product detail pages.
- Naver Shopping Product Scraper for Korean shopping search and price monitoring.
These Actors cover different sources. Choose the source that matches the catalog you are authorized to analyze.
Support
For reproducible help, include the run URL, sanitized input, expected result, and the first relevant error from the log. Do not post API tokens, account credentials, paid Gumroad content, or personal data in a public support message.