{
  "openapi": "3.0.1",
  "info": {
    "title": "Product Hunt Scraper — Launches, Makers & Emails",
    "description": "Startup leads from Product Hunt: every launch with website, founders (X/LinkedIn), company emails, votes and ranks. Search any niche, topic, category or date range. Fast, no API key, and incomplete launches are never charged.",
    "version": "1.0",
    "x-build-id": "hMT06o3ciQvtx8obF"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/fermaja~product-hunt-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-fermaja-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/fermaja~product-hunt-scraper/runs": {
      "post": {
        "operationId": "runs-sync-fermaja-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/fermaja~product-hunt-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-fermaja-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": {
          "leaderboard": {
            "title": "Leaderboard",
            "enum": [
              "auto",
              "daily",
              "weekly",
              "monthly",
              "yearly",
              "none"
            ],
            "type": "string",
            "description": "Which Product Hunt leaderboard to scrape for the dates below. \"Auto\" scrapes the daily leaderboard only when you don't add any URLs, topics, categories or searches. Choose \"None\" to scrape only the URLs, topics, categories or searches you add.",
            "default": "auto"
          },
          "dateFrom": {
            "title": "From date",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}$|^(today|yesterday)$|^-?\\s*\\d+\\s*(day|days|week|weeks|month|months)(\\s+ago)?$",
            "type": "string",
            "description": "First day of the leaderboard range: YYYY-MM-DD, \"yesterday\", \"today\" or \"7 days ago\". Product Hunt days are in Pacific time. Leave empty to scrape yesterday (daily) or the current week/month/year."
          },
          "dateTo": {
            "title": "To date",
            "pattern": "^$|^\\d{4}-\\d{2}-\\d{2}$|^(today|yesterday)$|^-?\\s*\\d+\\s*(day|days|week|weeks|month|months)(\\s+ago)?$",
            "type": "string",
            "description": "Last day of the range (inclusive). Leave empty to scrape only the From date. Example: From 2026-01-01, To 2026-01-31 with the Daily leaderboard scrapes every day of January."
          },
          "startUrls": {
            "title": "Product Hunt URLs",
            "type": "array",
            "description": "Optional. Paste any Product Hunt URL — leaderboards (/leaderboard/daily/2026/10/8), launches (/posts/…), products (/products/…), topics (/topics/…), categories (/categories/…) or search (/search?q=…). The page type is detected automatically.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "topics": {
            "title": "Topics",
            "type": "array",
            "description": "Optional. Topic slugs or URLs, e.g. \"developer-tools\", \"artificial-intelligence\", \"saas\".",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Optional. Category slugs or URLs, e.g. \"ai-agents\", \"crm\", \"email-marketing\".",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search terms",
            "type": "array",
            "description": "Optional. Keywords to search Product Hunt products for, e.g. \"crm\", \"ai video editor\".",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max launches",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many launches across all sources. Leave empty for no limit. A daily leaderboard usually has 30–60 featured launches."
          },
          "includeAllLaunches": {
            "title": "Include non-featured launches",
            "type": "boolean",
            "description": "Product Hunt's leaderboards show featured launches by default. Turn this on to also get every other launch of the day (often 3–5× more products — good for lead lists).",
            "default": false
          },
          "sortBy": {
            "title": "Sort topics & categories by",
            "enum": [
              "highest_rated",
              "most_recent",
              "most_followed"
            ],
            "type": "string",
            "description": "Order of products on topic and category pages.",
            "default": "highest_rated"
          },
          "includeDetails": {
            "title": "Launch details, makers & hunter",
            "type": "boolean",
            "description": "Adds the full description, makers and hunter, website, pricing, media, badges and product socials (X, LinkedIn, GitHub…). Turn off for a faster, leaderboard-only list.",
            "default": true
          },
          "includeMakerProfiles": {
            "title": "Maker contact profiles (X, LinkedIn, website)",
            "type": "boolean",
            "description": "For every maker, adds their X/Twitter, LinkedIn and personal website from their Product Hunt profile, plus followers and bio. Billed per maker profile.",
            "default": false
          },
          "findContacts": {
            "title": "Find emails on product websites",
            "type": "boolean",
            "description": "Visits each product's own website (home, /contact, /about) and collects public emails and social links. Billed only for launches where at least one email is found.",
            "default": false
          },
          "includeComments": {
            "title": "Launch comments",
            "type": "boolean",
            "description": "Adds comments and replies (text, author, votes) to each launch.",
            "default": false
          },
          "maxCommentsPerLaunch": {
            "title": "Max comments per launch",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Only used when Launch comments is on.",
            "default": 20
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "How many launches are processed in parallel. The default is fast and safe.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify Proxy (default datacenter) works out of the box and is included in the price.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}