Gumroad Scraper & Products Monitor - New Products, Prices
Pricing
from $4.50 / 1,000 product returneds
Gumroad Scraper & Products Monitor - New Products, Prices
For creators tracking their niche on Gumroad: products of any Discover search, category or seller page - name, seller, price and currency, pay-what-you-want, rating average and count. Monitor mode returns only new products, price changes and products whose rating count grew.
Pricing
from $4.50 / 1,000 product returneds
Rating
0.0
(0)
Developer
NeverEmpty
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Get the products of any Gumroad Discover search, category or seller page: name, seller, price and currency, pay-what-you-want and subscription terms, rating average and rating count, product type and URL. One row per product.
Turn on monitor mode and each run returns only what changed since the last run: products that are new in the list you watch, price changes, and products whose rating count grew (the public sign that a product is selling) - each with the previous price and rating count. Unchanged products are not returned and not charged as rows.
Unofficial. Reads only the public lists Gumroad shows to every visitor (the Discover search and the seller's public page), after reading the robots.txt of each address. No login, no Gumroad account, no API key. Requests are spaced at least 1.5 seconds apart and go out without a proxy; a refused request or a bot check page is not retried or bypassed.
What you get
| Column | Example |
|---|---|
source, searchQuery, category, seller, sortBy, position | search, notion template, null, null, newest, 1 - the list this row was read from and the product's place in it |
productId, name, productUrl | hpqcg, Headquarters Notion Productivity Template, https://productivesetups.gumroad.com/l/headquarters |
sellerName, sellerUrl, sellerId, sellerVerified | Productive Setups, https://productivesetups.gumroad.com, 3915531815605, false |
price, currency, priceMinor | 79, AUD, 7900 - the price in the product's own currency, and the same amount in that currency's smallest unit as Gumroad gives it |
isFree, isPayWhatYouWant | false, false - with pay-what-you-want, price is the minimum ("$5+"); a minimum of 0 is a free product |
recurrence | monthly, quarterly, yearly, or null for a one-time purchase |
originalPrice | the price before a discount, when Gumroad lists one; otherwise null |
ratingAverage, ratingCount | 5, 200 - ratingAverage is null when there are no ratings yet |
productType, isSalesLimited, quantityRemaining | digital / course / ebook / membership / bundle ..., false, null |
description | the short description Gumroad shows on the product card (cut off by Gumroad at about 100 characters) |
changeType, changeTypes, previousPrice, previousRatingCount, ratingCountIncrease, previousRecordedAt | monitor mode only, see below |
watchName, checkedAt | the watch name, when this run read the product |
price is always in the product's own currency (the one the seller set), not converted. For JPY the amount has no decimals. For KRW, VND, IDR, COP and TWD price is null and only priceMinor is given, because the unit of that field was not verified for those currencies. A value Gumroad does not give is null, never 0.
Not included: sales counts (the lists do not carry them; Gumroad shows a sales count only on the product page of sellers who switch it on), thumbnails, e-mail addresses or any buyer data. Seller information is limited to the public display name and the public page address.
Input
| Field | What it does |
|---|---|
queries | Words to search on Gumroad Discover, one search per line |
categories | Discover categories as the path in the page address: design, design/icons, software-development, business-and-money ... The path is checked against Gumroad's own category list before anything is requested |
sellers | Sellers by name, name.gumroad.com or any URL on it. Every product shown on the seller's public page is read |
sortBy | default, newest, hot_and_new, highest_rated, most_reviewed, price_asc, price_desc. If empty: Gumroad's default order, or newest in monitor mode. Seller pages keep the seller's own order |
maxProductsPerSearch | Products per search, category or seller (1-5000, 100 if empty) |
onlyChanges, watchName, resetMonitoringState | Monitor mode, see below |
{ "queries": ["notion template"], "sellers": ["productivesetups"], "sortBy": "newest", "maxProductsPerSearch": 50 }
With no query, category or seller (and monitor mode off) the run returns the first 36 products of the example search "notion template".
Monitor mode: what counts as a change
Set onlyChanges to true and schedule the run (daily is typical). The Actor remembers, per watchName and per search, category or seller, the price and rating count of each product it has seen.
changeType | Meaning |
|---|---|
new | The product was not in the watched list at earlier runs. For a search or category this is the first maxProductsPerSearch products in the chosen order - with newest (the default in monitor mode) these are newly published products; with another order a product that climbs into the top of the list also counts as new. For a seller it is a product newly shown on the seller's page |
price-changed | price differs from the remembered price in the same currency; previousPrice holds the old one |
ratings-increased | ratingCount is higher than remembered; previousRatingCount and ratingCountIncrease say by how much |
- The first run of a watch returns no product rows. It remembers the list as the starting point and adds one free row that says so.
- A product can carry several changes at once:
changeTypeslists all of them. - To keep a product that slides up after another one disappears from being reported as new, monitor mode reads up to 36 products beyond
maxProductsPerSearchand remembers them silently. - Products that leave the list are not reported. A rating count that goes down is remembered without a row.
- A change is remembered only after its row was delivered. If the run stops at its maximum charge, the rest is returned by the next run.
- A run with nothing to return adds one free row with
status: "no-change". - Do not run two schedules with the same
watchNameand the same search at the same moment; the remembered state is one record per watch and search.
Rows that explain instead of products
These rows are free. status says what happened and note says it in a sentence.
status | When |
|---|---|
no-products | Gumroad answered with an empty list: nothing matches the search, or the seller shows no products |
no-such-category | The category path is not in Gumroad's category list (Gumroad would answer such a request with its whole catalogue, so it is not sent). The note lists the top-level categories |
no-such-seller | The seller address answered 404 |
robots-disallowed | The robots.txt of that address disallows the request, so it was not sent |
blocked | Gumroad refused the request (403/429) or showed a bot check page. Not retried, not bypassed |
redirected | The seller address redirects elsewhere (for example to the seller's own domain). Redirects are not followed |
unreadable | The answer could not be read, also after asking once more |
baseline-recorded, no-change | Monitor mode: starting point remembered / nothing changed |
budget-reached | The run reached the maximum total charge you set |
bad-input | The input could not be used; nothing was requested |
Pricing
Pay per event, no start fee, no monthly fee.
product-returned- one per product row. In monitor mode only changed products are rows.search-checked- monitor mode only: one for each search, category or seller that was compared and had nothing to return. The first run of a watch (the starting point) is not charged.
Rows that explain why nothing was returned are free. The run never charges more than the maximum total charge you set for it.
Notes
- The Actor asks Discover the way a visitor who is not logged in does and sends no option that asks for adult (NSFW) products. The lists carry no adult flag, so rows cannot be filtered by it.
- Search results come 36 per request. Requests are spaced 1.5 seconds apart, so 1,000 products take about 45 seconds.
- A seller page shows the products the seller placed in sections of the page; a product the seller keeps off the page is not listed there.
- The rating count is the only public sales signal in these lists. It is not a sales count.
Related Actors
- Shopify Products Scraper & Price Monitor - every product of a Shopify store, with price and stock changes
- Substack Posts Monitor - posts of Substack publications, with new-post alerts
Thanks for using this Actor
We build these tools for people who run them every day, and we improve them from what users tell us.
- Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
- Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.
If this Actor saved you time, a short review helps other people find it.