List Product Hunt comments
List Product Hunt comment threads. Pass post for a launch's comments, forum and discussion for a forum discussion's comments (each top-level comment with its HTML body, votes, author and up to five direct replies, sorted by score, votes or date), or comment for the direct replies to one comment, oldest first. Page with cursor.
/v1/producthunt/commentsx-api-keyHeaders
Get your API keyYour ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.
Launch slug, as in producthunt.com/posts/<slug> (for example notion-2-0). Reads that launch’s comments; also returned as the parent launch (id, slug, name, commentsCount).
notion-2-0Forum slug of the discussion, as in producthunt.com/p/<forum>/<discussion>. Use together with discussion.
Discussion slug, used with forum to read that discussion’s comments; also returned as the parent discussion (id, slug, title, commentsCount).
Numeric comment ID from a comments response. Reads its direct replies (order is not accepted); also returned as the parent comment (id, repliesCount).
Launch and discussion comments: score (default, the site’s ranking), votes, date (oldest first) or date_desc (newest first).
one of: score, votes, date, date_desc
scoreOpaque nextCursor from the previous page. Omit for the first page.
Records per page, 1–20; defaults to 20 (the source's page ceiling).
Request correlation identifier.
HTTP attempts, decoded bytes and duration for the operation, including the single shared retry.
Always included.
≥ 0
Always included.
≥ 0
Always included.
≥ 0
True when usable data is returned; inspect status and coverage for omissions.
success, partial, failed, or challenged. HTTP 200 can be partial.
one of: success, partial
Public Product Hunt page for the request.
absolute HTTPS URL
UTC retrieval time.
source is public_api (Product Hunt's public web GraphQL) or public_feed (the Atom launch feed). Complete means this bounded page was returned without known omissions; votes_hidden marks launches whose vote count Product Hunt hides during their first hours (returned as null).
Always included.
one of: public_api, public_feed
Always included.
Always included.
Launch slug, as in producthunt.com/posts/<slug> (for example notion-2-0). Reads that launch’s comments; also returned as the parent launch (id, slug, name, commentsCount).
Always included.
Always included.
Always included.
Always included.
Top-level comments for this page, each with up to five direct replies.
up to 20 items
Comment ID; pass it to the comment replies endpoint.
Comment body as HTML.
Creation time.
Upvotes on the comment.
Total direct replies.
Whether the comment is stuck to the top.
Whether the comment is pinned.
Relative comment permalink, or null.
Comment permalink, or null.
Comment author.
Product Hunt user ID (string).
Display name.
Username, as in producthunt.com/@username.
Profile headline, or null.
Avatar image URL, or null.
Public profile URL.
Up to five direct replies with the same fields (without nested replies).
up to 50 items
Comment ID; pass it to the comment replies endpoint.
Comment body as HTML.
Creation time.
Upvotes on the comment.
Total direct replies.
Whether the comment is stuck to the top.
Whether the comment is pinned.
Relative comment permalink, or null.
Comment permalink, or null.
Comment author.
Product Hunt user ID (string).
Display name.
Username, as in producthunt.com/@username.
Profile headline, or null.
Avatar image URL, or null.
Public profile URL.
True when more replies exist; read them with the comment replies endpoint.
Total records the source reports for this list, or null when it does not report one.
Pass as cursor to read the next page; null on the last page.
Whether another page exists.
No fields match.
HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.
| HTTP | failure.code | Meaning |
|---|---|---|
| 200 | partial | Usable data with votes_hidden warnings. |
| 400 | invalid_request | Missing, duplicate, malformed or unsupported parameters, including incomplete or impossible leaderboard dates. |
| 401 | unauthorized | Missing or invalid worker API key. |
| 404 | not_found | The product, launch, comment, topic, category, forum, discussion or user does not exist. |
| 429 | upstream_rate_limited | Source throttling; no automatic retry. |
| 502 | upstream_challenged | Source rejected or challenged the unauthenticated request. |
| 502 | unsupported_page | Malformed, mismatched or non-JSON source data, or a GraphQL error. |
| 502 | response_too_large payload_too_complex | Response exceeded byte or parsing limits. |
| 502 | unsafe_redirect request_limit upstream_error | Bounded source retrieval could not complete. |
| 503 | busy | All worker slots are occupied. |
| 504 | timeout | Total request deadline expired. |