{
  "openapi": "3.0.1",
  "info": {
    "title": "Gumroad Product Scraper",
    "description": "Find public Gumroad products using keywords, top-level categories, and optional tag filters. The dataset includes product names, seller details, ratings, URLs, thumbnails, and description previews. Duplicate products found across searches are removed using their public permalink identifiers.",
    "version": "0.0",
    "x-build-id": "9XfpMMyQcXBeHCRc3"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/axiomworks~gumroad-products-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-axiomworks-gumroad-products-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/axiomworks~gumroad-products-scraper/runs": {
      "post": {
        "operationId": "runs-sync-axiomworks-gumroad-products-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/axiomworks~gumroad-products-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-axiomworks-gumroad-products-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": {
          "searchQueries": {
            "title": "Keyword phrases, e.g. notion template",
            "type": "array",
            "description": "Keyword phrases to search, e.g. [\"notion template\"]. Supply searchQueries, categories, or tags; none is supplied automatically in API calls. Keywords, categories, tags and fileTypes form combinations. Blocked or empty searches return no rows; other searches continue.",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Category slugs, e.g. design",
            "type": "array",
            "description": "Top-level Gumroad category slugs, e.g. [\"design\", \"software-development\"]. Default [] adds no category restriction. Supply keywords, categories, or tags; categories combine with every supplied keyword. Unknown or nested slugs may be ignored by Gumroad.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "tags": {
            "title": "Tag filters, e.g. notion",
            "type": "array",
            "description": "Tag strings to browse or filter, e.g. [\"notion\"]. Default [] adds no tag restriction. Tags work alone or with keywords/categories. Each tag creates a separate search combination; returned products do not include tag lists.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "sort": {
            "title": "Search order, e.g. most_reviewed",
            "enum": [
              "featured",
              "most_reviewed",
              "highest_rated",
              "newest",
              "hot_and_new",
              "price_asc",
              "price_desc"
            ],
            "type": "string",
            "description": "Gumroad search order, e.g. \"most_reviewed\" for products with more reviews. Default \"featured\" uses Gumroad featured ordering; the prefilled example uses \"most_reviewed\". Choose one of the listed modes.",
            "default": "featured"
          },
          "minPrice": {
            "title": "Minimum search price, e.g. 10",
            "minimum": 0,
            "type": "integer",
            "description": "Optional integer lower price filter sent unchanged as Gumroad min_price, e.g. 10. Must be 0 or greater; omitted by default. This search filter uses Gumroad search units, while output priceCents uses each product currency in cents."
          },
          "maxPrice": {
            "title": "Maximum search price, e.g. 50",
            "minimum": 0,
            "type": "integer",
            "description": "Optional integer upper price filter sent unchanged as Gumroad max_price, e.g. 50. Must be 0 or greater; omitted by default. Combine with minPrice for a range; output priceCents uses each product currency in cents."
          },
          "minRating": {
            "title": "Minimum rating filter, e.g. 4",
            "minimum": 1,
            "maximum": 4,
            "type": "integer",
            "description": "Optional Gumroad minimum rating filter, e.g. 4. Accepts an integer from 1 to 4; omitted by default for any rating. Applied to each keyword/category/tag combination."
          },
          "nativeTypes": {
            "title": "Product type strings, e.g. digital",
            "type": "array",
            "description": "Gumroad native product type strings, e.g. [\"digital\", \"course\", \"ebook\"]. Default [] keeps all types. Matches the returned type case-insensitively; unknown types can yield no results. Applied before the shared maxItems limit.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "fileTypes": {
            "title": "File extensions, e.g. pdf or blend",
            "type": "array",
            "description": "File extensions to filter through Gumroad search, e.g. [\"pdf\", \"blend\"]. Default [] keeps all file formats. Multiple extensions mean any listed extension, with one search per extension. Case and a leading dot are normalized. Requires keywords, categories, or tags. No per-product file list is returned.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "minRatingCount": {
            "title": "Minimum public rating count, e.g. 100",
            "minimum": 0,
            "type": "integer",
            "description": "Optional minimum public rating count, e.g. 100. Accepts an integer 0 or greater; omitted by default, including products with unavailable counts. When supplied, excludes unavailable counts and applies before maxItems."
          },
          "freeOnly": {
            "title": "Only zero-price products, e.g. true",
            "type": "boolean",
            "description": "Set true to keep products with priceCents equal to 0 in their own currency, e.g. true. Default false keeps all listed prices. Applied before maxItems; combine with payWhatYouWantOnly to also require flexible pricing.",
            "default": false
          },
          "maxItems": {
            "title": "Shared product limit, e.g. 20",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum unique matching products across all keyword, category, tag and file-type combinations, e.g. 20. Integer 1-10000, default 50. Filters apply before this shared limit. Returns fewer when matches run out or searches remain blocked.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Apify Proxy settings, e.g. enabled",
            "type": "object",
            "description": "Proxy settings for requests to Gumroad, e.g. {\"useApifyProxy\":true}. Default {\"useApifyProxy\":false} fetches directly. Enable Apify Proxy if requests remain blocked; retry attempts use fresh sessions. Persistent blocks return no rows for that search.",
            "default": {
              "useApifyProxy": false
            }
          },
          "payWhatYouWantOnly": {
            "title": "Only flexible-price products, e.g. true",
            "type": "boolean",
            "description": "Set true to keep products with payWhatYouWant equal to true, e.g. true. Default false keeps both pricing modes. Applied before maxItems; combine with freeOnly to require a zero listed price as well.",
            "default": false
          },
          "sellerVerifiedOnly": {
            "title": "Only verified sellers, e.g. true",
            "type": "boolean",
            "description": "Set true to keep products with sellerVerified equal to true, e.g. true. Default false includes unverified sellers and unavailable verification values. Applied before the shared maxItems limit.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}