{
  "openapi": "3.0.1",
  "info": {
    "title": "Gumroad Scraper - Products, Reviews, Prices & Creators",
    "description": "Scrape Gumroad products by keyword, category, creator or URL: price in the seller's currency, rating and 1-5 star breakdown, written reviews, creator reputation and full description. Only-new mode for daily monitors. No login. US$ 2 per 1,000 products.",
    "version": "0.1",
    "x-build-id": "9zdM46Br8dca2aaTR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapewise~gumroad-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapewise-gumroad-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/scrapewise~gumroad-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapewise-gumroad-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/scrapewise~gumroad-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapewise-gumroad-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "What to scrape",
            "enum": [
              "search",
              "category",
              "creator",
              "product"
            ],
            "type": "string",
            "description": "What the run does: Search by keyword (default), Browse a category, All products of a creator, or Details of product URLs. If you leave it on 'search' but fill another source field, the Actor uses the field you filled: product URLs win, then creators, then categories.",
            "default": "search"
          },
          "searchQuery": {
            "title": "Keyword",
            "type": "string",
            "description": "Keyword for 'search' mode, the same box as gumroad.com/discover, for example notion template, lightroom presets or python course. Each product found is one row, charged as 'Product delivered'."
          },
          "searchQueries": {
            "title": "More keywords",
            "type": "array",
            "description": "Extra keywords for 'search' mode, one per line, for example icon pack and resume template. Each keyword returns up to 'Max products per source'; duplicates across keywords are removed and charged once.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "For 'category' mode: category slugs as they appear in the Gumroad URL, one per line, for example business-and-money, design, software-development or self-improvement. A full URL like https://gumroad.com/business-and-money also works.",
            "items": {
              "type": "string"
            }
          },
          "creators": {
            "title": "Creators",
            "type": "array",
            "description": "For 'creator' mode: creators, one per line, as the subdomain (productivesetups), the full domain (productivesetups.gumroad.com) or the profile URL. Returns every product on their public storefront.",
            "items": {
              "type": "string"
            }
          },
          "productUrls": {
            "title": "Product URLs",
            "type": "array",
            "description": "For 'product' mode: product URLs, one per line, such as https://creator.gumroad.com/l/permalink. A bare permalink also works. These always come with description, star breakdown and creator reputation.",
            "items": {
              "type": "string"
            }
          },
          "sort": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "best_sellers",
              "hot_and_new",
              "most_reviewed",
              "price_asc",
              "price_desc",
              "newest"
            ],
            "type": "string",
            "description": "Order of the results in 'search' and 'category' modes, the same options Gumroad offers: Relevance (default), Best sellers, Hot and new, Most reviewed, Price low to high, Price high to low, or Newest. With a limit it also decides which products you get.",
            "default": "relevance"
          },
          "minRating": {
            "title": "Minimum rating",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Keep only products rated at or above this many stars, from 1 to 5, for example 4. Applied by Gumroad. Empty = all, including unrated products."
          },
          "minPrice": {
            "title": "Minimum price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price to include, in whole US dollars, for example 10. 0 keeps free products. Gumroad treats 'pay what you want' products as starting at zero, so they match any minimum and can show 0; use the isPayWhatYouWant field in the output to tell them apart."
          },
          "maxPrice": {
            "title": "Maximum price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price to include, in whole US dollars, for example 50. Same caveat as 'Minimum price' for 'pay what you want' products. Empty = no maximum."
          },
          "tags": {
            "title": "Tags",
            "type": "array",
            "description": "Keep only products carrying these Gumroad tags, one per line, for example notion, productivity or planner. Applied by Gumroad. The tags available for a search show up in its own results, so start broad and narrow down.",
            "items": {
              "type": "string"
            }
          },
          "fileTypes": {
            "title": "File types",
            "type": "array",
            "description": "Keep only products delivering these file types, one per line: pdf, zip, mp4, png, json, txt, docx or link. Applied by Gumroad.",
            "items": {
              "type": "string"
            }
          },
          "nativeTypes": {
            "title": "Product types",
            "type": "array",
            "description": "Keep only these product types, one per line, as Gumroad labels them: digital, course, ebook, membership, bundle, physical, coffee, newsletter, podcast, audiobook, physical_good. Applied by the Actor after download: it costs requests, but rows it drops are never charged.",
            "items": {
              "type": "string"
            }
          },
          "freeOnly": {
            "title": "Free products only",
            "type": "boolean",
            "description": "Off (default). On: keep only products priced at zero. Gumroad's own free filter is ignored by the site, so this one is applied by the Actor after download; dropped rows are not charged.",
            "default": false
          },
          "payWhatYouWantOnly": {
            "title": "Pay-what-you-want only",
            "type": "boolean",
            "description": "Off (default). On: keep only products where the buyer names the price.",
            "default": false
          },
          "sellerVerifiedOnly": {
            "title": "Verified creators only",
            "type": "boolean",
            "description": "Off (default). On: keep only products from creators Gumroad marks as verified.",
            "default": false
          },
          "includeDetails": {
            "title": "Open each product page",
            "type": "boolean",
            "description": "On (default): opens each product page and adds the full description, the 1-to-5 star breakdown, every cover image and the creator's reputation (average, number of ratings, how many products they sell). One extra request per product, so the run is slower, but the price is the same. Turn off for faster runs with the search-card fields only.",
            "default": true
          },
          "maxReviewsPerProduct": {
            "title": "Written reviews per product",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "0 (default) = off. Above 0, each product row gets a 'reviews' array with up to this many written reviews (rating, text, date and the seller's reply), newest first, up to 1,000. Included in the product price, no extra charge; each 10 reviews take one extra request. Reviewer names and photos are not collected.",
            "default": 0
          },
          "maxItems": {
            "title": "Max products",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Hard limit of products for the whole run, from 1 to 10,000 (default 50). You pay per product delivered, so this is also your cost cap.",
            "default": 50
          },
          "maxItemsPerSource": {
            "title": "Max products per source",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Limit per keyword, category or creator, so one busy source does not use the whole run, for example 20. Empty = same as 'Max products'."
          },
          "onlyNew": {
            "title": "Only new products since the last run",
            "type": "boolean",
            "description": "For scheduled runs. Remembers which products of each keyword, category or creator were already delivered (in a named key-value store in your account, 'gumroad-scraper-only-new') and delivers, and charges, only products you have not received yet. Keyword and category searches switch to the 'newest' order and stop at the first product you already have; a creator's storefront is marked as seen on the first run. Product URLs are always delivered.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify datacenter proxy is the default and works for Gumroad. Blocked requests are retried on a new IP. Change it only to use your own proxies.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}