Gumroad Best Sellers Scraper: Prices, Ratings & Sellers
Pricing
from $1.60 / 1,000 products
Gumroad Best Sellers Scraper: Prices, Ratings & Sellers
Scrape Gumroad Discover products by keyword, tag or category, with price, rating, review count and seller details.
Pricing
from $1.60 / 1,000 products
Rating
0.0
(0)
Developer
MRSLM Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 hours ago
Last modified
Categories
Security
Limited permissionsShare
Search Gumroad's Discover catalog by keyword, tag or category and get each product's price, rating, review count and seller. $2.00 per 1,000 products.
Quick start
- Press Start. The form is already filled with this example input, so the first run returns real rows in under a minute:
{"queries": ["notion template"],"maxResultsPerQuery": 27}
- Swap in your own values, or call the Actor through the Apify API, Make, Zapier, n8n or the Python/JS clients with the same JSON.
- Download the results as JSON, CSV or Excel from the Output tab, or schedule the run to repeat.
Full guide: How to Scrape Gumroad Products: Prices, Ratings and Best Sellers in Any Niche
What the Gumroad Scraper does
You give the Actor one or more search phrases, exactly as you would type them into Gumroad Discover, and pick a sort order: featured, best sellers, newest, highest rated, hot and new, or price. You can also filter by tag, category, price range and minimum rating. The Actor reads Gumroad's public Discover results and saves one row per product, with its position in the results.
Each row has the product name, link, price, original price when it is on sale, currency, pay-what-you-want and subscription flags, rating and rating count, product type, seller name, seller link, a verified-seller flag, a short description and the thumbnail.
positionkeeps the rank in Gumroad's own order, so "best sellers" gives you a sales ranking.- Prices stay in the seller's currency, with
currencybeside them. - Several queries in one run, each with its own cap.
Who it is for
- Creators and digital product sellers: research prices, ratings and competitors before launching or repricing a product.
- Marketers and affiliates: find top-selling products and sellers in a niche to partner with.
- Market researchers: compare niches by price level, review volume and number of sellers.
- Tool builders: feed a product finder or price tracker with fresh Gumroad data.
Real example: price research for a Lightroom preset pack
Say you are a photographer planning to sell a Lightroom preset pack and want to know what the best sellers charge and how well they are rated. You search Discover for "lightroom presets", sort by best sellers and take the top 25.
Step 1: Enter the input
Open the Gumroad Scraper in Apify Console, switch the input form to JSON and paste this. It is the exact input used for the run in this guide:
{"queries": ["lightroom presets"],"sort": "best_sellers","maxResultsPerQuery": 25}
What each setting does:
queries: one Discover search phrase. Add more lines to research several niches at once.sort: best_sellers, sopositionreflects Gumroad's sales ranking for the query.maxResultsPerQuery: keep the top 25 results.
Step 2: Run it
Press Start. On 30 October 2026 this input finished with status SUCCEEDED in about 7 seconds and saved 25 rows to the run's dataset. The run was charged 25 product events plus one start event, so the bill was $0.0501 on the Free/Bronze tier. The summary shows 25 products for "lightroom presets".
Step 3: Read the output
Here are the first rows of the real dataset, cut to the most useful columns:
| position | name | price | currency | ratingAverage | ratingCount | sellerName |
|---|---|---|---|---|---|---|
| 1 | Fujifilm Preset (Lightroom Mobile) | 2.99 | GBP | 3.9 | 43 | Ellen Escapes |
| 2 | Vintage Dream Preset Pack (Lightroom) | 30 | EUR | 5 | 10 | Aya Gadelhak |
| 3 | Football Photography Preset Pack / NEW SKOOL | 15 | USD | 4 | 37 | Otto Arney |
| 4 | Eight Escape Preset Bundle (Lightroom Mobile) | 9.99 | GBP | 4.3 | 12 | Ellen Escapes |
| 5 | Pack Completo (13 filtros) | 29.99 | USD | 0 | Peninsula Presets | |
| 6 | Ultimate Sport Preset Pack - Includes 25 Presets… | 25 | USD | 3.3 | 9 | Nicks M3dia |
| 7 | Modern Vintage Preset (Lightroom Mobile) | 2.99 | GBP | 5 | 33 | Ellen Escapes |
| 8 | Luke Lucis - Lightroom Presets: Echoes of Nostal… | 35 | EUR | 4.9 | 8 | Luke Lucis |
| 9 | The Wanderer Preset (Lightroom) | 2.99 | GBP | 5 | 3 | Ellen Escapes |
| 10 | @SJRVISUALSS Sports/Lifestyle Preset Pack | 39.99 | USD | 5 | 5 | Sam Rogers |
| 11 | Riviera Film Summer Preset (Lightroom) | 2.99 | GBP | 4.1 | 7 | Ellen Escapes |
| 12 | Preset Pack V2🔥 | 20 | USD | 4.7 | 14 | Marc |
| 13 | 135mm 35mm Vintage Analog Film Lightroom Presets… | 36 | EUR | 5 | 323 | Alex Ruskman Presets for Adobe Lightroom & DaVin… |
| 14 | Finding Joy In Chaos Family Photography Course | 497 | USD | 4.9 | 14 | BreAnne Weston |
| 15 | Ayitsphotography - ULTIMATE PRESET COMBO (100+ P… | 79.99 | USD | 0 | Matt Solie / Photographer & Influencer |
And one full row as JSON (long text shortened with …):
{"query": "lightroom presets","position": 10,"productId": "trY5n4avkKc6ky11Ig3piA==","name": "@SJRVISUALSS Sports/Lifestyle Preset Pack","url": "https://samrogers.gumroad.com/l/ssaamq","price": 39.99,"originalPrice": 89.99,"currency": "USD","payWhatYouWant": false,"isSubscription": false,"ratingAverage": 5,"ratingCount": 5,"productType": "digital","sellerName": "Sam Rogers","sellerUrl": "https://samrogers.gumroad.com/","sellerVerified": false,"description": "Get the exact editing style I use for sports photography and athlete content. ✅ 9 Lightroom Prese..."}
What the 25 real rows tell a preset seller:
- Two price camps. Single presets from Ellen Escapes sell at £2.99, and six of the top 25 are hers, including #1, Fujifilm Preset (Lightroom Mobile), with a 3.9 rating from 43 ratings. Packs sit at $15 to $39.99 or €30 to €36. A few premium products go much higher: Wilder Preset Pack at $189 and a family photography course at $497.
- Reviews are thin. Only one product has more than 50 ratings: 135mm 35mm Vintage Analog Film Lightroom Presets with 323 ratings and a 5.0 average. Three of the 25 have no ratings at all. In this niche a few dozen reviews already puts you near the top.
- Discounts show as
originalPrice. @SJRVISUALSS Sports/Lifestyle Preset Pack is $39.99, down from $89.99. - Pay-what-you-want is rare. Two products (Vintage Dream Preset Pack and INGREDIENTS - VOL 1) use it;
priceis then the suggested minimum. - Three currencies. 16 prices are in USD, 6 in GBP and 3 in EUR. Convert before you compare.
- Search is broad. "ControllerKeys" (a $19.99 product) and a photography course also rank for the phrase, because Discover matches more than titles. Filter by
nameor tag if you need only presets.
Which sort order to use
best_sellers is the closest thing Gumroad offers to sales data, since it does not publish sales counts. hot_and_new shows what is picking up right now, newest shows recent launches (good for a weekly competitor watch), highest_rated surfaces quality leaders and price_asc / price_desc help you see the price range. featured is Gumroad's default mix.
Output fields
Each row in the dataset has these fields. The example column shows a value from the run above.
| Field | What it means | Example from this run |
|---|---|---|
query / position | The search phrase and the product's rank in the results (1 = first). | lightroom presets / 1 |
productId / permalink | Gumroad product ID and its short link code. | qRB1Mmcc_ukU1u7CjZDuug== / czmhuf |
name / url | Product name and page link. | Fujifilm Preset (Lightroom Mobile) / https://ellenescapes.gumroad.com/l/czmhuf |
price / originalPrice | Current price, and the pre-discount price when on sale. | 2.99 / 89.99 |
currency | The seller's currency, e.g. USD, GBP, EUR. | GBP |
payWhatYouWant | true when buyers can choose the price; price is then the minimum. | no |
isSubscription / recurrence | Membership products and their billing period. | no / (empty in this run) |
ratingAverage / ratingCount | Average stars and number of ratings. | 3.9 / 43 |
productType | digital, bundle, course and so on. | digital |
quantityRemaining | Units left, for limited products. | (empty in this run) |
sellerName / sellerUrl | Creator name and Gumroad profile link. | Ellen Escapes / https://ellenescapes.gumroad.com/ |
sellerVerified | true for Gumroad-verified creators. | no |
description | Short product description. | No Fujifilm? No problem. Brown, warm vibes. Three files, two… |
thumbnailUrl | Product image. | https://public-files.gumroad.com/ibaopy4yzkfwcjd7h5xsq3bn7x6… |
Export Gumroad products to CSV, Excel or Google Sheets
Every run saves its rows to a dataset, and a dataset can be downloaded in any common format. You do not need to write code for this.
From Apify Console. Open the run, go to the Output tab and click Export. Pick CSV, Excel (XLSX), JSON, XML, HTML or RSS. You can tick only the columns you want, for example position, name, price, currency, ratingAverage. Nested values such as lists are flattened into columns like name in CSV and Excel.
From a URL. The same export is a plain HTTPS link. Replace <DATASET_ID> with the dataset ID shown on the run's Storage tab:
# CSV with just the columns you needcurl -H "Authorization: Bearer $APIFY_TOKEN" \"https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=csv&clean=1&fields=position,name,price,currency,ratingAverage,ratingCount,sellerName,url" -o gumroad-products.csv# Excelcurl -H "Authorization: Bearer $APIFY_TOKEN" \"https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=xlsx&clean=1" -o gumroad-products.xlsx
Into Google Sheets. You have three good options:
- One-off: download the CSV and use File > Import > Upload in Google Sheets. Choose "Replace current sheet" to refresh an existing tab.
- Automatic, no code: in Make, Zapier or n8n, use the Apify app's "Watch Actor runs" (or "Run Actor") trigger, then "Get dataset items", then the Google Sheets "Add row" action. Every scheduled run then lands in your sheet. Apify's own Google Sheets Import & Export Actor can also append a dataset to a sheet, and you can chain it to this Actor's runs with an integration.
- Formula:
=IMPORTDATA("https://api.apify.com/v2/actor-tasks/<USERNAME>~<TASK_NAME>/runs/last/dataset/items?status=SUCCEEDED&format=csv&token=<YOUR_TOKEN>")always pulls the latest successful run of a saved task. The token sits in the formula, so anyone who can open the sheet can see it. Only use this in a private sheet.
Schedule it to run every Monday at 8:00
Rankings on Gumroad move slowly, so a weekly run is a good rhythm. Keep the same query and sort so each week's file can be compared with the last; use position and productId to see who climbed, who dropped and who is new.
- In the Actor's input form, set up the input from Step 1 and click Save as new task. Give it a clear name such as
gumroad-presets-weekly. - Go to Schedules > Create new, set the cron expression to
0 8 * * 1and pick your timezone, so it runs every Monday at 8:00. - Add the task to the schedule and save. Each run gets its own fresh dataset.
- Optional: on the task's Integrations tab, add a webhook, Slack or email notification for "Run succeeded", or connect Make, Zapier or n8n, so the new rows go where you need them.
To fetch the newest results without looking up a run ID, use the task's last-run link: https://api.apify.com/v2/actor-tasks/<USERNAME>~gumroad-presets-weekly/runs/last/dataset/items?status=SUCCEEDED&format=json.
Call it from the API (Python, JavaScript or curl)
You can start the Actor from your own code with the official Apify clients. Put your API token (Console > Settings > API & Integrations) in an environment variable called APIFY_TOKEN rather than in the code.
Python (pip install "apify-client>=3"). Tested with apify-client 3.4:
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run_input = {"queries": ["lightroom presets"],"sort": "best_sellers","maxResultsPerQuery": 25}run = client.actor("mrslm_data/gumroad-products").call(run_input=run_input)# apify-client 3.x returns a Run object, so use run.default_dataset_idfor item in client.dataset(run.default_dataset_id).iterate_items():print(item["position"], item["name"])
In apify-client 3.x, call() returns a typed object. Older examples that use run["defaultDatasetId"] were written for 1.x and 2.x and fail in 3.x with TypeError: 'Run' object is not subscriptable.
JavaScript / Node.js (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const input = {"queries": ["lightroom presets"],"sort": "best_sellers","maxResultsPerQuery": 25};const run = await client.actor('mrslm_data/gumroad-products').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.length, items[0]);
curl, one request that runs the Actor and returns the rows as CSV (it waits up to 5 minutes, so keep the input small):
curl -X POST "https://api.apify.com/v2/acts/mrslm_data~gumroad-products/run-sync-get-dataset-items?format=csv" \-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \-d '{"queries": ["lightroom presets"], "sort": "best_sellers", "maxResultsPerQuery": 25}' -o gumroad-products.csv
What it costs
The Actor uses pay-per-event pricing. Product: $2.00 per 1,000 on the Free and Bronze tiers, $1.80 on Silver and $1.60 on Gold. Each run also has a start fee of $0.00005 per GB of memory (one event at the default memory). You are not billed separately for compute on normal runs: the event prices are the whole bill.
Price per event
Current pay-per-event prices for this Actor on Apify, by Apify subscription plan:
| Event (per 1,000) | Free / Bronze | Silver | Gold / Platinum / Diamond |
|---|---|---|---|
Product (product) | $2.00 | $1.80 | $1.60 |
| Actor start (once per run at the default memory, not per 1,000) | $0.00005 | $0.00005 | $0.00005 |
You are charged only for the events in this table: nothing for compute, and nothing for searches that return no rows beyond the start fee.
| Scenario | Free / Bronze | Silver | Gold |
|---|---|---|---|
| The run in this guide (25 products) | $0.0501 | $0.045 | $0.0401 |
| Weekly top-100 for 5 niches (4 runs, 2,000 a month) | $4.00 | $3.60 | $3.20 |
| One-off scan of 10,000 products | $20.00 | $18.00 | $16.00 |
To cap spending, set Maximum cost per run in the run options (or maxTotalChargeUsd in the API). The Actor stops cleanly at the cap and you are never billed past it.
Limits
- Public Discover results only. Products that are not listed on Discover cannot be found by search.
- Gumroad does not show sales counts;
best_sellersorder is the best proxy. - Each query returns at most about 1,000 products, as on the site.
- Prices are in the seller's own currency and are not converted.
FAQ
Can I get sales numbers?
No. Gumroad does not publish them. Sort by best sellers and use position as a ranking, and ratingCount as a rough volume signal.
Can I scrape one creator's whole store?
Not directly; the Actor searches Discover. Use the creator's name as a query or filter by sellerName after the run.
Why are there products that don't match my keyword? Discover matches tags and descriptions as well as titles. Add a tag filter or filter by name afterwards.
Does it download the files? No. It saves public listing data only, never paid content.
Can I run it on a schedule? Yes. Save your input as a task and attach a schedule, as shown above. Each run is independent and returns the Gumroad products available at that moment.
Does it work with Make, Zapier or n8n? Yes. All three have an Apify app. Use "Run Actor" (or run a saved task), then "Get dataset items" to pass the rows to the next step, such as Google Sheets, Airtable, a CRM or Slack.
Can AI agents use it through MCP?
Yes. Apify's hosted MCP server can expose this Actor as a tool to any MCP client (Claude Desktop, Cursor, VS Code and others). Add https://mcp.apify.com/?tools=mrslm_data/gumroad-products as a remote MCP server and sign in with your Apify account or API token. The agent fills in the same input fields shown above and gets the same rows back, billed at the same per-event prices.
Is it legal?
This Actor only reads pages and feeds that the website itself publishes to every visitor without a login. It obeys each site's robots.txt, keeps a polite request rate, and never tries to get past logins, paywalls, captchas or bot checks. It does not collect personal data such as emails, phone numbers or names of private individuals. You are responsible for how you use the data: follow the source site's terms, copyright and the privacy laws that apply to you (GDPR, CCPA, etc.). This tool is independent and not affiliated with or endorsed by the platforms it reads.