{
  "openapi": "3.0.1",
  "info": {
    "title": "Gumroad Scraper & Products Monitor - New Products, Prices",
    "description": "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.",
    "version": "0.1",
    "x-build-id": "SKrPsOW1Dict4QKrE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~gumroad-products-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-gumroad-products-monitor",
        "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/neverempty~gumroad-products-monitor/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-gumroad-products-monitor",
        "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/neverempty~gumroad-products-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-gumroad-products-monitor",
        "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": {
          "queries": {
            "title": "Search queries (Gumroad Discover)",
            "type": "array",
            "description": "Words to search on Gumroad Discover, one search per line, for example notion template. Each search returns its products in the chosen sort order, up to the maximum below. If queries, categories and sellers are all empty (and monitor mode is off), the first 36 products of one example search are returned.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories (Gumroad Discover)",
            "type": "array",
            "description": "Gumroad Discover categories, one per line, written as the path in the address of the category page: design, design/icons, software-development, business-and-money. The Actor checks the path against Gumroad's own category list before asking; an unknown category comes back as a free row that lists the top-level categories.",
            "items": {
              "type": "string"
            }
          },
          "sellers": {
            "title": "Sellers (name.gumroad.com)",
            "type": "array",
            "description": "Gumroad sellers, one per line: the name (productivesetups), the address (productivesetups.gumroad.com) or any URL on it. Every product shown on the seller's public page is returned (up to the maximum below). The Actor reads the robots.txt of each seller address first. A name with no seller page comes back as a free row that says so.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort order for searches and categories",
            "enum": [
              "default",
              "newest",
              "hot_and_new",
              "highest_rated",
              "most_reviewed",
              "price_asc",
              "price_desc"
            ],
            "type": "string",
            "description": "Order in which Gumroad lists the products of a search or category. If empty: Gumroad's default order, or newest in monitor mode (so that new products are at the top of the list). Seller pages keep the order the seller chose."
          },
          "maxProductsPerSearch": {
            "title": "Maximum products per search, category or seller",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after this many products of each search, category or seller (1-5000). If empty: 100. In monitor mode this is the size of the list that is watched (the first N products in the chosen order)."
          },
          "onlyChanges": {
            "title": "Monitor mode: only new products, price changes and rating-count growth",
            "type": "boolean",
            "description": "Compare each search, category or seller with the last run of the same watch name and return only products that are new in the watched list, whose price changed, or whose number of ratings grew (a sign of sales). Each row carries the previous price and rating count. The first run of a watch only remembers the list as the starting point and returns no product rows. A check that finds nothing to return is charged one search-checked event; unchanged products are not returned and not charged as rows.",
            "default": false
          },
          "watchName": {
            "title": "Watch name",
            "type": "string",
            "description": "Monitor mode only: name of the remembered state used to compare runs (letters, digits, dot, dash, underscore; up to 40). Use a different name for each list you track on its own schedule. If empty, the name \"default\" is used."
          },
          "resetMonitoringState": {
            "title": "Forget what this watch remembered",
            "type": "boolean",
            "description": "Monitor mode only: forget the remembered products of the searches, categories and sellers in this run before it starts, so this run records a new starting point and returns no product rows.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}