gumroad.com APIgumroad.com ↗
Search Gumroad products, fetch full product details, scrape seller profiles, and list all categories. 4 endpoints, structured JSON responses.
curl -X GET 'https://api.parse.bot/scraper/1db76dd0-6bba-4f3d-9aa6-3f0665c3d24b/search_products?page=1&sort=hot_and_new&query=course' \ -H 'X-API-Key: $PARSE_API_KEY'
Search and browse the Gumroad marketplace. Supports query keywords, category filtering, sort order, price range, and minimum rating. Returns paginated results with up to 36 products per page.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| sort | string | Sort order. Accepted values: 'hot_and_new', 'best_sellers', 'trending'. |
| query | string | Search keyword (e.g. 'course', 'Python tutorial'). |
| rating | integer | Minimum rating score (1-5). |
| category | string | Category slug from get_discover_categories (e.g. 'self-improvement', 'software-development', '3d'). |
| price_range | string | Price range filter as 'min-max' in dollars (e.g. '10-50'). |
{
"type": "object",
"fields": {
"page": "integer current page number",
"tags": "array of tag objects with key and doc_count",
"total": "integer total number of matching products",
"products": "array of product objects with id, name, permalink, url, price, currency, rating_average, rating_count, seller_name, seller_url, thumbnail_url, type, and description_preview",
"file_types": "array of file type objects with key and doc_count"
},
"sample": {
"data": {
"page": 1,
"tags": [
{
"key": "ai",
"doc_count": 34
}
],
"total": 867,
"products": [
{
"id": "J_bh3mrUEDMwiCkpirM45Q==",
"url": "https://realthomsieloff.gumroad.com/l/fkmgcn?layout=discover&recommended_by=search",
"name": "A Wealth Transfer Survival Manual",
"type": "digital",
"price": 97,
"currency": "usd",
"permalink": "fkmgcn",
"seller_url": "https://realthomsieloff.gumroad.com?recommended_by=search",
"seller_name": "Thom Sieloff",
"rating_count": 6,
"thumbnail_url": "https://public-files.gumroad.com/rj7yle8djjbwrzuq84513mewlswr",
"rating_average": 5,
"description_preview": "You've held. You've believed..."
}
],
"file_types": [
{
"key": "pdf",
"doc_count": 383
}
]
},
"status": "success"
}
}About the gumroad.com API
The Gumroad API covers 4 endpoints that let you search the Gumroad marketplace by keyword, category, price range, and rating, then drill into individual products or seller profiles. The search_products endpoint returns up to 36 products per page with fields like rating_average, price, seller_name, and associated tags and file_types. Paired with get_product_details, you get full HTML descriptions, variant arrays, file metadata, and seller verification status.
Search and Browse
The search_products endpoint accepts a query string, a category slug (sourced from get_discover_categories), a sort value (hot_and_new, best_sellers, or trending), a price_range formatted as 'min-max' in dollars, and a minimum rating from 1–5. Results are paginated at up to 36 items per page, and the response includes a total count, a tags array with key and doc_count fields, and a file_types array useful for filtering by content format.
Product Details
get_product_details takes a full Gumroad product URL and returns the complete product record: name, type, price, currency, description (as HTML), a ratings object with count, average, and a percentages array broken down by star tier, a variants array or null, file_info metadata, and a recurrence field for subscription products. The seller object includes id, name, avatar_url, profile_url, and is_verified.
Seller Profiles
get_seller_profile accepts a Gumroad username and returns the seller's name, bio, subdomain, avatar_url, and a products array. Each product entry in that array carries id, name, url, price, currency, rating_average, rating_count, and thumbnail_url. Note that the products array may be empty for sellers who have not configured product sections on their profile page.
Category Taxonomy
get_discover_categories requires no inputs and returns the full Gumroad Discover category tree. Each category object includes a key, label, slug, and parent_key — where parent_key is null for top-level categories and references a parent key for subcategories. Use these slugs directly as the category parameter in search_products.
- Build a Gumroad product price tracker by polling
search_productswith a fixedqueryand monitoring thepricefield over time. - Aggregate seller ratings across a niche by querying
search_productswith acategoryslug and collectingrating_averageandrating_countper product. - Audit a creator's product catalog by fetching their
get_seller_profileand iterating the returnedproductsarray. - Populate a curated marketplace directory by combining
get_discover_categoriesslugs with paginatedsearch_productscalls per category. - Identify trending digital products by sorting
search_productswithsort=trendingand recordingfile_typesdistribution. - Enrich a product comparison tool by calling
get_product_detailsto retrievevariants,recurrence, andfile_infofor subscription vs. one-time products. - Filter high-quality products programmatically by combining
rating=4andprice_rangeinsearch_productsto surface well-reviewed paid items.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Gumroad have an official public developer API?+
What does `get_product_details` return that `search_products` does not?+
search_products returns a summary record per product — name, price, rating averages, seller name, and URL. get_product_details adds the full HTML description, a broken-down ratings.percentages array per star tier, a variants array for products with multiple options, file_info metadata, and the recurrence field that identifies subscription billing cadence.Can the `get_seller_profile` endpoint always return a seller's full product list?+
products array reflects what is displayed on the seller's public profile page. If a seller has not configured product sections on their profile, the array will be empty even if they have active products on the marketplace. Products from such sellers are still discoverable via search_products.Does the API return buyer-level data such as purchase history, receipts, or individual review text?+
How does pagination work in `search_products` and is there a way to know the total number of pages?+
search_products response includes a total integer representing the total matching products and a page integer for the current page. Each page returns up to 36 products, so you can calculate the total page count as ceil(total / 36). Increment the page parameter to retrieve subsequent pages.