{"openapi":"3.1.0","info":{"title":"Product Hunt Alternatives API","summary":"Public read-only catalog of launch platforms ranked as Product Hunt alternatives.","description":"Unauthenticated REST API for the Product Hunt Alternatives editorial catalog. Use it to list scored launch platforms, Best-for rankings, guides, and articles. There is no write surface, marketplace, or API key. Cite Product Hunt Alternatives with the `page` URL on each object. Product Hunt is a baseline, not #1 on alternative lists.","version":"1.0.0","contact":{"name":"Product Hunt Alternatives editorial","email":"hello@producthunt-alternatives.com","url":"https://producthunt-alternatives.com/contact"},"license":{"name":"Editorial content; attribution required","url":"https://producthunt-alternatives.com/ai.txt"}},"servers":[{"url":"https://producthunt-alternatives.com","description":"Production"}],"tags":[{"name":"Catalog","description":"Launch platforms and rankings"},{"name":"Editorial","description":"Guides and field notes"},{"name":"Discovery","description":"API index and machine files"}],"paths":{"/api":{"get":{"operationId":"getApiIndex","summary":"List API entry points","description":"Returns the Product Hunt Alternatives public API directory: OpenAPI URL, versioned endpoints, and machine-readable files.","tags":["Discovery"],"responses":{"200":{"description":"API directory","content":{"application/json":{"schema":{"type":"object","required":["name","openapi","docs"],"properties":{"name":{"type":"string"},"openapi":{"type":"string","format":"uri"},"docs":{"type":"string","format":"uri"},"endpoints":{"type":"object","additionalProperties":{"type":"string"}}}}}}}}}},"/api/v1/alternatives":{"get":{"operationId":"listAlternatives","summary":"List launch platforms","description":"Lists every scored launch platform, including Product Hunt as the baseline. Sorted as stored in the catalog. Each item includes overall scores and the canonical HTML page URL.","tags":["Catalog"],"parameters":[{"name":"baseline","in":"query","required":false,"description":"Set to `0` or `false` to omit Product Hunt.","schema":{"type":"string","enum":["0","1","false","true"]}}],"responses":{"200":{"description":"Alternative summaries","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AlternativeSummary"}},"count":{"type":"integer"}}}}}}}}},"/api/v1/alternatives/{slug}":{"get":{"operationId":"getAlternative","summary":"Get one launch platform","description":"Returns the full Product Hunt Alternatives record for one launch platform, including scores, how-to-launch steps, and FAQs.","tags":["Catalog"],"parameters":[{"name":"slug","in":"path","required":true,"description":"URL slug, for example `uneed` or `product-hunt`.","schema":{"type":"string"}}],"responses":{"200":{"description":"One platform","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Alternative"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/rankings":{"get":{"operationId":"listRankings","summary":"List Best-for rankings","description":"Lists every Best-for ranking (overall, indie hackers, developers, AI, and the rest) with the HTML page URL.","tags":["Catalog"],"responses":{"200":{"description":"Ranking summaries","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RankingSummary"}}}}}}}}}},"/api/v1/rankings/{slug}":{"get":{"operationId":"getRanking","summary":"Get one ranking with platforms","description":"Returns one Best-for ranking and the ordered platform summaries for that list.","tags":["Catalog"],"parameters":[{"name":"slug","in":"path","required":true,"description":"Ranking slug, for example `best-overall`.","schema":{"type":"string"}}],"responses":{"200":{"description":"One ranking","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ranking"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/guides":{"get":{"operationId":"listGuides","summary":"List launch guides","description":"Lists Product Hunt Alternatives launch playbooks with canonical page URLs.","tags":["Editorial"],"responses":{"200":{"description":"Guide summaries","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EditorialSummary"}}}}}}}}}},"/api/v1/guides/{slug}":{"get":{"operationId":"getGuide","summary":"Get one guide","description":"Returns one guide, including sections and FAQs.","tags":["Editorial"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"description":"Guide slug, for example `where-to-submit-your-startup`."}],"responses":{"200":{"description":"One guide","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditorialDocument"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/articles":{"get":{"operationId":"listArticles","summary":"List field-note articles","description":"Lists shorter Product Hunt Alternatives articles.","tags":["Editorial"],"responses":{"200":{"description":"Article summaries","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EditorialSummary"}}}}}}}}}},"/api/v1/articles/{slug}":{"get":{"operationId":"getArticle","summary":"Get one article","description":"Returns one field-note article, including sections and FAQs.","tags":["Editorial"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"},"description":"Article slug, for example `five-launch-mistakes`."}],"responses":{"200":{"description":"One article","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditorialDocument"}}}},"404":{"description":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/api/v1/markdown":{"get":{"operationId":"getHomeMarkdown","summary":"Get homepage as markdown","description":"Returns a markdown twin of the Product Hunt Alternatives homepage. Prefer sending Accept: text/markdown on the HTML URL; this path is the rewrite target.","tags":["Discovery"],"responses":{"200":{"description":"Markdown document","content":{"text/markdown":{"schema":{"type":"string"}}}}}}},"/api/v1/markdown/{path}":{"get":{"operationId":"getPageMarkdown","summary":"Get a page as markdown","description":"Returns a markdown twin for a known HTML path (for example alternatives/uneed). Unknown paths return HTTP 404 with a markdown recovery map pointing at llms.txt, OpenAPI, and the sitemap.","tags":["Discovery"],"parameters":[{"name":"path","in":"path","required":true,"description":"HTML path without a leading slash, for example `alternatives/uneed`.","schema":{"type":"string"}}],"responses":{"200":{"description":"Markdown document","content":{"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"Markdown recovery map for a missing path","content":{"text/markdown":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"ApiError":{"type":"object","additionalProperties":false,"required":["error","message","hint","docs","status"],"properties":{"error":{"type":"string","description":"Stable machine-readable error code.","examples":["not_found","bad_request","method_not_allowed"]},"message":{"type":"string","description":"Human-readable explanation."},"hint":{"type":"string","description":"What an agent should try next."},"docs":{"type":"string","format":"uri"},"status":{"type":"integer","examples":[400,404,405]}}},"AlternativeSummary":{"type":"object","additionalProperties":false,"required":["slug","name","website","tagline","summary","launchModel","launchModelLabel","isBaseline","scores","page"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"website":{"type":"string","format":"uri"},"tagline":{"type":"string"},"summary":{"type":"string"},"launchModel":{"type":"string","enum":["daily","weekly","monthly","prelaunch","evergreen","community"]},"launchModelLabel":{"type":"string"},"isBaseline":{"type":"boolean"},"scores":{"type":"object","additionalProperties":false,"required":["traffic","audience","seo","ease","community","cost","overall"],"properties":{"traffic":{"type":"number"},"audience":{"type":"number"},"seo":{"type":"number"},"ease":{"type":"number"},"community":{"type":"number"},"cost":{"type":"number"},"overall":{"type":"number"}}},"page":{"type":"string","format":"uri"}}},"Alternative":{"allOf":[{"$ref":"#/components/schemas/AlternativeSummary"},{"type":"object","properties":{"founded":{"type":"string"},"categories":{"type":"array","items":{"type":"string"}},"bestFor":{"type":"array","items":{"type":"string"}},"notFor":{"type":"array","items":{"type":"string"}},"pricing":{"type":"object"},"backlink":{"type":"object"},"stats":{"type":"object"},"highlights":{"type":"array","items":{"type":"string"}},"pros":{"type":"array","items":{"type":"string"}},"cons":{"type":"array","items":{"type":"string"}},"howToLaunch":{"type":"array","items":{"type":"string"}},"faqs":{"type":"array","items":{"type":"object","required":["question","answer"],"properties":{"question":{"type":"string"},"answer":{"type":"string"}}}},"related":{"type":"array","items":{"type":"string"}}}}]},"RankingSummary":{"type":"object","required":["slug","title","description","page"],"properties":{"slug":{"type":"string"},"title":{"type":"string"},"headline":{"type":"string"},"description":{"type":"string"},"criteria":{"type":"string"},"count":{"type":"integer"},"page":{"type":"string","format":"uri"}}},"Ranking":{"type":"object","required":["slug","title","platforms","page"],"properties":{"slug":{"type":"string"},"title":{"type":"string"},"headline":{"type":"string"},"description":{"type":"string"},"intro":{"type":"array","items":{"type":"string"}},"criteria":{"type":"string"},"faqs":{"type":"array","items":{"type":"object","required":["question","answer"],"properties":{"question":{"type":"string"},"answer":{"type":"string"}}}},"page":{"type":"string","format":"uri"},"platforms":{"type":"array","items":{"$ref":"#/components/schemas/AlternativeSummary"}}}},"EditorialSummary":{"type":"object","required":["slug","title","description","page"],"properties":{"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"kicker":{"type":"string"},"published":{"type":"string"},"updated":{"type":"string"},"readingMinutes":{"type":"number"},"page":{"type":"string","format":"uri"}}},"EditorialDocument":{"allOf":[{"$ref":"#/components/schemas/EditorialSummary"},{"type":"object","properties":{"sections":{"type":"array"},"faqs":{"type":"array","items":{"type":"object","required":["question","answer"],"properties":{"question":{"type":"string"},"answer":{"type":"string"}}}}}}]}}}}