{
  "openapi": "3.0.1",
  "info": {
    "title": "Product Hunt Scraper: Product Hunt Launches, Upvotes, Makers",
    "description": "Product Hunt scraper for launches from daily, weekly or monthly leaderboards, topics or product pages: name, tagline, upvotes, comments, rank, launch date, makers, hunter, website and topics, plus launch comments. Any date range. No login, no API token. $1.49 per 1,000 rows.",
    "version": "0.1",
    "x-build-id": "iG9dn0UbpLxCP75uM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/themineworks~product-hunt-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-themineworks-product-hunt-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/themineworks~product-hunt-scraper/runs": {
      "post": {
        "operationId": "runs-sync-themineworks-product-hunt-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/themineworks~product-hunt-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-themineworks-product-hunt-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": [
              "leaderboard",
              "topics",
              "products",
              "comments"
            ],
            "type": "string",
            "description": "Leaderboards: the launches of each day, week or month between the two dates. Topics: products in each topic with their latest launch. Products: every launch of each product link, or one launch per launch link. Comments: one row per comment and reply of each launch.",
            "default": "leaderboard"
          },
          "period": {
            "title": "Leaderboard",
            "enum": [
              "daily",
              "weekly",
              "monthly"
            ],
            "type": "string",
            "description": "Which leaderboard to read for each date in the range. Weekly uses Product Hunt's weeks (Monday to Sunday); monthly reads each calendar month the range touches.",
            "default": "daily"
          },
          "startDate": {
            "title": "From date",
            "pattern": "^(\\d{4}-\\d{1,2}-\\d{1,2}|today|yesterday|\\d{1,4} days? ago)?$",
            "type": "string",
            "description": "First date, as 2026-10-01, or today, yesterday, 7 days ago. Product Hunt days run on Pacific time. Empty means yesterday.",
            "default": "yesterday"
          },
          "endDate": {
            "title": "To date",
            "pattern": "^(\\d{4}-\\d{1,2}-\\d{1,2}|today|yesterday|\\d{1,4} days? ago)?$",
            "type": "string",
            "description": "Last date, included. Empty means the same as the first date. A range can hold up to 400 days, weeks or months."
          },
          "featuredOnly": {
            "title": "Featured launches only",
            "type": "boolean",
            "description": "On: the launches Product Hunt features on the leaderboard (about 30 to 50 a day). Off: every launch of the period, featured or not (often 300 or more a day).",
            "default": true
          },
          "topics": {
            "title": "Topics",
            "type": "array",
            "description": "Topic slugs or links, for example artificial-intelligence, developer-tools or https://www.producthunt.com/topics/productivity. Used in Topics mode.",
            "items": {
              "type": "string"
            }
          },
          "topicOrder": {
            "title": "Topic order",
            "enum": [
              "newest",
              "best"
            ],
            "type": "string",
            "description": "Newest: products whose latest launch is most recent come first. Best: the topic's best rated products first, as the topic page shows them.",
            "default": "newest"
          },
          "productUrls": {
            "title": "Product or launch links",
            "type": "array",
            "description": "Product links (https://www.producthunt.com/products/notion) give every launch of the product. Launch links (https://www.producthunt.com/posts/<launch> or /products/<product>?launch=<launch>) give that launch. A bare product slug works too. Used in Products mode.",
            "items": {
              "type": "string"
            }
          },
          "launchUrls": {
            "title": "Launches for comments",
            "type": "array",
            "description": "Launch links (https://www.producthunt.com/posts/<launch>) or product links (the product's latest launch is used). Used in Comments mode: one row per comment and reply.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Rows per source",
            "minimum": 20,
            "maximum": 5000,
            "type": "integer",
            "description": "Most rows for each source: each day, week or month of a leaderboard, each topic, each product, or each launch's comments. 20 to 5,000. You pay per row delivered.",
            "default": 100
          },
          "includeDetails": {
            "title": "Makers, hunter, website and description",
            "type": "boolean",
            "description": "On: one more request per launch adds the makers and hunter (name, username and profile link as shown), the launch's link to the product website, the full description, every topic, pricing, gallery and badges. Off: faster, with name, tagline, upvotes, comments, ranks, three topics and thumbnail.",
            "default": true
          },
          "onlyNewItems": {
            "title": "Only items not delivered before",
            "type": "boolean",
            "description": "For a schedule: skip launches (or comments) an earlier run of this actor already delivered, so each run returns and charges only new ones.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}