Get a Product Hunt forum or discussion
List the threads in a Product Hunt forum: the community forums such as general, or a product's own forum by its slug, each with title, preview, votes, comments, author and featured or pinned flags, sorted by trending, new, popular or featured and paged with cursor. Pass discussion to retrieve one discussion instead: title, full HTML body, votes, comments, page views, status, flags, author and forum.
/v1/producthunt/forumx-api-keyHeaders
Get your API keyYour ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.
Required forum slug, as in producthunt.com/p/<slug>: a community forum such as general, or a product’s slug for its forum.
generalThread list only: trending (default), new, popular or featured.
one of: trending, new, popular, featured
trendingThread list only. Time window for popular ordering: now, week, month, year or all (default).
one of: now, week, month, year, all
Opaque nextCursor from the previous page. Omit for the first page.
Records per page, 1–20; defaults to 20 (the source's page ceiling).
Optional discussion slug, as in producthunt.com/p/<forum>/<discussion>. Returns that discussion instead of the thread list (order, window, cursor and limit are not accepted).
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.
The forum (thread list), or the discussion’s forum id and slug.
Forum ID.
Forum slug.
Relative forum path.
Forum page URL.
What the forum belongs to: type DiscussionCategory (community forum) or Product, with id, slug, name and, for categories, description.
Always included.
Always included.
Always included.
Always included.
Optional.
Forum threads.
up to 20 items
Thread ID.
Thread slug; read it with the discussion endpoint.
Thread title.
Opening post preview (HTML), or null.
Creation time.
Whether the thread is featured.
Whether the thread is pinned.
Comment count.
Upvotes, or null while hidden.
DiscussionThread for discussions, Post when the entry is a launch shown in a product forum.
Relative thread path.
Thread page URL.
Thread 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.
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. |