Skip to content
scrapeatlas.Dashboard

Get a Product Hunt launch

Try in Playground

Retrieve one Product Hunt launch: tagline, description, votes, score, comments, daily/weekly/monthly ranks, launch number, pricing, hunter, makers, topics, gallery media, links, the product and its day and Golden Kitty badges.

GET/v1/producthunt/postx-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
1
slugstringrequiredquery

Required launch slug, as in producthunt.com/posts/<slug> or the launch parameter of a product page (for example notion-2-0).

Examplesolid-9
Response fields
96
requestIdstring

Request correlation identifier.

HTTP attempts, decoded bytes and duration for the operation, including the single shared retry.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

successboolean

True when usable data is returned; inspect status and coverage for omissions.

statusenum

success, partial, failed, or challenged. HTTP 200 can be partial.

one of: success, partial

sourceUrlstring

Public Product Hunt page for the request.

absolute HTTPS URL

fetchedAtstring

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).

coverage.sourceenum

Always included.

one of: public_api, public_feed

coverage.completeboolean

Always included.

coverage.warningsstring[]

Always included.

The launch record.

post.idstring

Launch (post) ID as a string.

post.slugstring

Launch slug; read it with the post endpoint.

post.namestring

Launch name.

post.taglinestringnullable

One-line tagline.

post.descriptionstringnullable

Launch description (HTML), or null.

post.urlstring

Public launch or product page URL.

post.shortenedUrlstringnullable

Relative short link, or null.

post.createdAtstring

Creation time with the source's Pacific-time offset.

post.featuredAtstringnullable

Time the launch was featured, or null.

post.scheduledAtstringnullable

Scheduled launch time, or null.

post.votesCountintegernullable

Upvote count; null while Product Hunt hides votes (hideVotesCount true).

post.hideVotesCountboolean

True during the launch's hidden-vote window.

post.latestScoreintegernullable

Product Hunt's current ranking score, or null.

post.launchDayScoreintegernullable

Score at the end of launch day, or null.

post.commentsCountinteger

Comment count.

post.dailyRankstringnullable

Rank on its launch day as a string, or null before ranking.

post.weeklyRankstringnullable

Rank for its week as a string, or null.

post.monthlyRankstringnullable

Rank for its month as a string, or null.

post.launchNumberintegernullable

Which launch of the product this is, or null.

post.launchStatestringnullable

Launch state such as featured, or null.

post.pricingTypestringnullable

Pricing type, or null.

post.isArchivedboolean

Whether the launch is archived.

post.thumbnailImageUuidstringnullable

Thumbnail image identifier, or null.

post.thumbnailImageUrlstringnullable

Thumbnail image URL derived from thumbnailImageUuid, or null.

The hunter who submitted the launch, or null.

post.user.idstring

Product Hunt user ID (string).

post.user.namestringnullable

Display name.

post.user.usernamestring

Username, as in producthunt.com/@username.

post.user.headlinestringnullable

Profile headline, or null.

post.user.avatarUrlstringnullable

Avatar image URL, or null.

post.user.urlstring

Public profile URL.

Makers credited on the launch.

up to 50 items

post.makers.idstring

Product Hunt user ID (string).

post.makers.namestringnullable

Display name.

post.makers.usernamestring

Username, as in producthunt.com/@username.

post.makers.headlinestringnullable

Profile headline, or null.

post.makers.avatarUrlstringnullable

Avatar image URL, or null.

post.makers.urlstring

Public profile URL.

Topics: id, slug and name.

up to 50 items

post.topics.idstring

Always included.

post.topics.slugstring

Always included.

post.topics.namestring

Always included.

Gallery media with imageUrl.

up to 50 items

post.media.idstring

Always included.

post.media.imageUuidstringnullable

Always included.

post.media.imageUrlstringnullable

Always included.

post.media.mediaTypestring

Always included.

post.media.originalWidthintegernullable

Always included.

post.media.originalHeightintegernullable

Always included.

Always included.

post.media.metadata.urlstringnullable

Always included.

post.media.metadata.videoIdstringnullable

Always included.

post.media.metadata.platformstringnullable

Always included.

Launch links: id and url.

up to 50 items

post.links.idstring

Always included.

post.links.urlstringnullable

Always included.

Primary website link, or null.

post.primaryLink.idstring

Always included.

post.primaryLink.urlstringnullable

Always included.

The product with its rating and counts, or null.

post.product.idstring

Product ID as a string.

post.product.slugstring

Product slug, as in producthunt.com/products/<slug>.

post.product.namestring

Product name.

post.product.taglinestringnullable

Product tagline.

post.product.urlstring

Product page URL.

post.product.websiteUrlstringnullable

The product's own website, or null.

post.product.logoUuidstringnullable

Logo image identifier, or null.

post.product.logoUrlstringnullable

Logo image URL derived from logoUuid, or null.

post.product.reviewsRatingnumbernullable

Average review rating out of 5, or null.

post.product.reviewsCountinteger

Review count.

post.product.followersCountinteger

Follower count.

post.product.postsCountinteger

Number of launches.

post.product.isTopProductboolean

Whether Product Hunt marks it a top product.

post.product.isNoLongerOnlineboolean

Whether the product is marked as no longer online.

Day/week/month and Golden Kitty badges: type, position, period, date, category, year.

up to 50 items

post.badges.typestring

Always included.

post.badges.idstring

Always included.

post.badges.positionintegernullableoptional

Optional.

post.badges.periodstringnullableoptional

Optional.

post.badges.datestringnullableoptional

Optional.

post.badges.categorystringnullableoptional

Optional.

post.badges.yearstringnullableoptional

Optional.

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.

Error codes
11
HTTPfailure.codeMeaning
200partialUsable data with votes_hidden warnings.
400invalid_requestMissing, duplicate, malformed or unsupported parameters, including incomplete or impossible leaderboard dates.
401unauthorizedMissing or invalid worker API key.
404not_foundThe product, launch, comment, topic, category, forum, discussion or user does not exist.
429upstream_rate_limitedSource throttling; no automatic retry.
502upstream_challengedSource rejected or challenged the unauthenticated request.
502unsupported_pageMalformed, mismatched or non-JSON source data, or a GraphQL error.
502response_too_large payload_too_complexResponse exceeded byte or parsing limits.
502unsafe_redirect request_limit upstream_errorBounded source retrieval could not complete.
503busyAll worker slots are occupied.
504timeoutTotal request deadline expired.