ProductHunt API endpoint
Retrieve Product Hunt product about page
Returns the richer Product Hunt about-page payload, including launch, forum, review tags, and media data.
GETapiKey2 credits/requestproducthunt.aboutResponseDoc
/producthunt/product/{id}/aboutParameters
| Name | In | Type | Required | Enum | Example | Description |
|---|---|---|---|---|---|---|
| id | path | string | Yes | "producthunt" | Product Hunt slug | |
| x-api-key | header | string | Yes | API key required |
Authentication
Send your scraping API key in the x-api-key header. Use the console API Keys page to rotate or select the active key.
Billing
Endpoint usage is metered in credits. The plan prices, included credits, limits, and overage rates below match the active backend billing configuration.
- Credit cost
- 2 credits/request
- Charged response
- Successful 2xx responses
| Plan | Price | Included credits | Daily cap | Rate limit | Overage |
|---|---|---|---|---|---|
| Free | $0/mo | 2,000 | 500 daily credits | 5/min | No overage |
| Starter | $9/mo | 20,000 | 5,000 daily credits | 15/min | $0.75/1,000 overage credits when enabled |
| Growth | $29/mo | 100,000 | 25,000 daily credits | 45/min | $0.45/1,000 overage credits when enabled |
| Pro | $79/mo | 400,000 | No daily cap | 120/min | $0.30/1,000 overage credits |
| Business | $199/mo | 1,200,000 | No daily cap | 300/min | $0.20/1,000 overage credits |
| Enterprise | $499/mo | 5,000,000 | No daily cap | 1,000/min | $0.12/1,000 overage credits |
Failure responses
| Status | Description | Schema |
|---|---|---|
| 400 | Missing or invalid parameters | #/definitions/app.Response |
| 404 | Product not found | #/definitions/app.Response |
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
Example response
{
"code": 200,
"msg": "OK",
"data": {
"product_id": "112572",
"page_variant_typename": "ProductPageVariantHighlightedLaunch",
"product": {
"id": "112572",
"slug": "producthunt",
"name": "Product Hunt",
"tagline": "The place to discover your next favorite thing",
"latest_launch": {
"id": "1101061",
"slug": "kitty-points-leaderboard",
"launch_number": 120
},
"followers_count": 142009
},
"launch": {
"id": "1101061",
"name": "Kitty Points Leaderboard",
"daily_rank": 3,
"weekly_rank": 9,
"comments_count": 52
},
"viewer": {
"is_featured_post_maker": false
},
"ad": {
"id": "33851",
"name": "Littlebird",
"tagline": "The only full-context AI"
}
}
}Request schema
No body schema
Response schema
#/definitions/producthunt.aboutResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | producthunt.ProductAboutPage | No | ||||
| data.ad | producthunt.ProductAboutAd | No | ||||
| data.ad.channel_kind | string | No | ||||
| data.ad.id | string | No | ||||
| data.ad.large_asset_uuid | string | No | ||||
| data.ad.name | string | No | ||||
| data.ad.small_asset_uuid | string | No | ||||
| data.ad.subject | string | No | ||||
| data.ad.tagline | string | No | ||||
| data.ad.thumbnail_uuid | string | No | ||||
| data.ad.url | string | No | ||||
| data.ad.variation_id | string | No | ||||
| data.launch | producthunt.ProductAboutLaunch | No | ||||
| data.launch.ad1 | producthunt.ProductAboutGhostAd | No | ||||
| data.launch.ad1.id | string | No | ||||
| data.launch.ad1.subject | string | No | ||||
| data.launch.ad2 | producthunt.ProductAboutGhostAd | No | ||||
| data.launch.ad2.id | string | No | ||||
| data.launch.ad2.subject | string | No | ||||
| data.launch.badges | array | No | ||||
| data.launch.badges[].category | string | No | ||||
| data.launch.badges[].date | string | No | ||||
| data.launch.badges[].id | string | No | ||||
| data.launch.badges[].period | string | No | ||||
| data.launch.badges[].position | integer | No | ||||
| data.launch.badges[].post_id | string | No | ||||
| data.launch.badges[].post_name | string | No | ||||
| data.launch.badges[].post_slug | string | No | ||||
| data.launch.badges[].year | string | No | ||||
| data.launch.can_deputy_manage | boolean | No | ||||
| data.launch.can_manage | boolean | No | ||||
| data.launch.comments_count | integer | No | ||||
| data.launch.created_at | string | No | ||||
| data.launch.daily_rank | integer | No | ||||
| data.launch.description | string | No | ||||
| data.launch.detailed_reviews | array | No | ||||
| data.launch.detailed_reviews[].alternative_products | array | No | ||||
| data.launch.detailed_reviews[].alternative_products[].id | string | No | ||||
| data.launch.detailed_reviews[].alternative_products[].is_no_longer_online | boolean | No | ||||
| data.launch.detailed_reviews[].alternative_products[].logo_uuid | string | No | ||||
| data.launch.detailed_reviews[].alternative_products[].name | string | No | ||||
| data.launch.detailed_reviews[].alternative_products[].path | string | No | ||||
| data.launch.detailed_reviews[].alternative_products[].slug | string | No | ||||
| data.launch.detailed_reviews[].alternative_products[].tagline | string | No | ||||
| data.launch.detailed_reviews[].id | string | No | ||||
| data.launch.detailed_reviews[].product | producthunt.ProductAboutMentionedProduct | No | ||||
| data.launch.detailed_reviews[].product.id | string | No | ||||
| data.launch.detailed_reviews[].product.is_no_longer_online | boolean | No | ||||
| data.launch.detailed_reviews[].product.logo_uuid | string | No | ||||
| data.launch.detailed_reviews[].product.name | string | No | ||||
| data.launch.detailed_reviews[].product.path | string | No | ||||
| data.launch.detailed_reviews[].product.slug | string | No | ||||
| data.launch.detailed_reviews[].product.tagline | string | No | ||||
| data.launch.detailed_reviews[].shoutout_note | string | No | ||||
| data.launch.disabled_when_scheduled | boolean | No | ||||
| data.launch.embargo_preview_at | string | No | ||||
| data.launch.featured | boolean | No | ||||
| data.launch.featured_at | string | No | ||||
| data.launch.has_voted | boolean | No | ||||
| data.launch.hide_votes_count | boolean | No | ||||
| data.launch.id | string | No | ||||
| data.launch.is_archived | boolean | No | ||||
| data.launch.is_available | boolean | No | ||||
| data.launch.is_hunter | boolean | No | ||||
| data.launch.is_maker | boolean | No | ||||
| data.launch.is_top_launch | boolean | No | ||||
| data.launch.latest_score | integer | No | ||||
| data.launch.launch_day_score | integer | No | ||||
| data.launch.launch_number | integer | No | ||||
| data.launch.launch_state | string | No | ||||
| data.launch.launched_this_week | boolean | No | ||||
| data.launch.launching_today | boolean | No | ||||
| data.launch.links | array | No | ||||
| data.launch.links[].devices | array | No | ||||
| data.launch.links[].id | string | No | ||||
| data.launch.links[].redirect_path | string | No | ||||
| data.launch.links[].store_name | string | No | ||||
| data.launch.links[].website_name | string | No | ||||
| data.launch.makers | array | No | ||||
| data.launch.makers[].avatar_url | string | No | ||||
| data.launch.makers[].headline | string | No | ||||
| data.launch.makers[].id | string | No | ||||
| data.launch.makers[].name | string | No | ||||
| data.launch.makers[].username | string | No | ||||
| data.launch.media | array | No | ||||
| data.launch.media[].id | string | No | ||||
| data.launch.media[].image_uuid | string | No | ||||
| data.launch.media[].interactive_demo_id | string | No | ||||
| data.launch.media[].interactive_demo_type | string | No | ||||
| data.launch.media[].media_type | string | No | ||||
| data.launch.media[].original_height | integer | No | ||||
| data.launch.media[].original_width | integer | No | ||||
| data.launch.media[].platform | string | No | ||||
| data.launch.media[].thumbnail_height | integer | No | ||||
| data.launch.media[].thumbnail_width | integer | No | ||||
| data.launch.media[].url | string | No | ||||
| data.launch.media[].video_id | string | No | ||||
| data.launch.meta | producthunt.ProductAboutMeta | No | ||||
| data.launch.meta.title | string | No | ||||
| data.launch.moderation_reason | string | No | ||||
| data.launch.name | string | No | ||||
| data.launch.pricing_type | string | No | ||||
| data.launch.primary_link | producthunt.ProductAboutPrimaryLink | No | ||||
| data.launch.primary_link.id | string | No | ||||
| data.launch.primary_link.url | string | No | ||||
| data.launch.product | producthunt.ProductAboutLaunchProduct | No | ||||
| data.launch.product.can_claim | boolean | No | ||||
| data.launch.product.can_edit | boolean | No | ||||
| data.launch.product.clean_url | string | No | ||||
| data.launch.product.detailed_review | object | No | ||||
| data.launch.product.first_launch | boolean | No | ||||
| data.launch.product.id | string | No | ||||
| data.launch.product.is_claimed | boolean | No | ||||
| data.launch.product.is_no_longer_online | boolean | No | ||||
| data.launch.product.is_subscribed | boolean | No | ||||
| data.launch.product.is_top_product | boolean | No | ||||
| data.launch.product.is_viewer_team_member | object | No | ||||
| data.launch.product.latest_launch | producthunt.ProductAboutLaunchFlags | No | ||||
| data.launch.product.latest_launch.id | string | No | ||||
| data.launch.product.latest_launch.launched_this_week | boolean | No | ||||
| data.launch.product.latest_launch.launching_today | boolean | No | ||||
| data.launch.product.logo_uuid | string | No | ||||
| data.launch.product.name | string | No | ||||
| data.launch.product.posts_count | integer | No | ||||
| data.launch.product.pro_con_tags | array | No | ||||
| data.launch.product.pro_con_tags[].count | integer | No | ||||
| data.launch.product.pro_con_tags[].id | string | No | ||||
| data.launch.product.pro_con_tags[].name | string | No | ||||
| data.launch.product.pro_con_tags[].type | string | No | ||||
| data.launch.product.review_questions | array | No | ||||
| data.launch.product.review_questions[].category | string | No | ||||
| data.launch.product.review_questions[].id | string | No | ||||
| data.launch.product.review_questions[].question | string | No | ||||
| data.launch.product.reviews_rating | number | No | ||||
| data.launch.product.slug | string | No | ||||
| data.launch.product.tagline | string | No | ||||
| data.launch.product.viewer_pending_team_request | object | No | ||||
| data.launch.product.website_domain | string | No | ||||
| data.launch.product.website_url | string | No | ||||
| data.launch.product_state | string | No | ||||
| data.launch.promo | object | No | ||||
| data.launch.redirect_to_product | producthunt.LeaderboardProductRef | No | ||||
| data.launch.redirect_to_product.id | string | No | ||||
| data.launch.redirect_to_product.is_no_longer_online | boolean | No | ||||
| data.launch.redirect_to_product.is_subscribed | boolean | No | ||||
| data.launch.redirect_to_product.is_top_product | boolean | No | ||||
| data.launch.redirect_to_product.logo_uuid | string | No | ||||
| data.launch.redirect_to_product.name | string | No | ||||
| data.launch.redirect_to_product.slug | string | No | ||||
| data.launch.scheduled_at | string | No | ||||
| data.launch.slug | string | No | ||||
| data.launch.tagline | string | No | ||||
| data.launch.thumbnail_image_uuid | string | No | ||||
| data.launch.topics | array | No | ||||
| data.launch.topics[].id | string | No | ||||
| data.launch.topics[].name | string | No | ||||
| data.launch.topics[].path | string | No | ||||
| data.launch.topics[].slug | string | No | ||||
| data.launch.trashed_at | string | No | ||||
| data.launch.updated_at | string | No | ||||
| data.launch.url | string | No | ||||
| data.launch.user | producthunt.ProductAboutUser | No | ||||
| data.launch.user.avatar_url | string | No | ||||
| data.launch.user.headline | string | No | ||||
| data.launch.user.id | string | No | ||||
| data.launch.user.name | string | No | ||||
| data.launch.user.username | string | No | ||||
| data.launch.weekly_rank | integer | No | ||||
| data.page_variant_typename | string | No | ||||
| data.product | producthunt.ProductAboutProduct | No | ||||
| data.product.badges | array | No | ||||
| data.product.badges[].category | string | No | ||||
| data.product.badges[].date | string | No | ||||
| data.product.badges[].id | string | No | ||||
| data.product.badges[].period | string | No | ||||
| data.product.badges[].position | integer | No | ||||
| data.product.badges[].post_id | string | No | ||||
| data.product.badges[].post_name | string | No | ||||
| data.product.badges[].post_slug | string | No | ||||
| data.product.badges[].year | string | No | ||||
| data.product.detailed_review | object | No | ||||
| data.product.discussion_forum | producthunt.ProductAboutDiscussionForum | No | ||||
| data.product.discussion_forum.id | string | No | ||||
| data.product.discussion_forum.path | string | No | ||||
| data.product.discussion_forum.threads | array | No | ||||
| data.product.discussion_forum.threads[].commentable_id | string | No | ||||
| data.product.discussion_forum.threads[].comments_count | integer | No | ||||
| data.product.discussion_forum.threads[].created_at | string | No | ||||
| data.product.discussion_forum.threads[].description_preview | string | No | ||||
| data.product.discussion_forum.threads[].forum | producthunt.ProductAboutForumRef | No | ||||
| data.product.discussion_forum.threads[].forum.id | string | No | ||||
| data.product.discussion_forum.threads[].forum.path | string | No | ||||
| data.product.discussion_forum.threads[].forum.slug | string | No | ||||
| data.product.discussion_forum.threads[].forum.subject | producthunt.ProductAboutForumSubject | No | ||||
| data.product.discussion_forum.threads[].forum.subject.id | string | No | ||||
| data.product.discussion_forum.threads[].forum.subject.is_no_longer_online | boolean | No | ||||
| data.product.discussion_forum.threads[].forum.subject.logo_uuid | string | No | ||||
| data.product.discussion_forum.threads[].forum.subject.name | string | No | ||||
| data.product.discussion_forum.threads[].has_voted | boolean | No | ||||
| data.product.discussion_forum.threads[].id | string | No | ||||
| data.product.discussion_forum.threads[].is_featured | boolean | No | ||||
| data.product.discussion_forum.threads[].is_pinned | boolean | No | ||||
| data.product.discussion_forum.threads[].path | string | No | ||||
| data.product.discussion_forum.threads[].slug | string | No | ||||
| data.product.discussion_forum.threads[].title | string | No | ||||
| data.product.discussion_forum.threads[].user | producthunt.ProductCategoryUser | No | ||||
| data.product.discussion_forum.threads[].user.avatar_url | string | No | ||||
| data.product.discussion_forum.threads[].user.id | string | No | ||||
| data.product.discussion_forum.threads[].user.name | string | No | ||||
| data.product.discussion_forum.threads[].user.username | string | No | ||||
| data.product.discussion_forum.threads[].votes_count | integer | No | ||||
| data.product.discussion_forum.total_count | integer | No | ||||
| data.product.followers_count | integer | No | ||||
| data.product.id | string | No | ||||
| data.product.is_no_longer_online | boolean | No | ||||
| data.product.is_subscribed | boolean | No | ||||
| data.product.latest_launch | producthunt.ProductAboutLatestLaunch | No | ||||
| data.product.latest_launch.id | string | No | ||||
| data.product.latest_launch.is_maker | boolean | No | ||||
| data.product.latest_launch.launch_number | integer | No | ||||
| data.product.latest_launch.launched_this_week | boolean | No | ||||
| data.product.latest_launch.launching_today | boolean | No | ||||
| data.product.latest_launch.name | string | No | ||||
| data.product.latest_launch.product_state | string | No | ||||
| data.product.latest_launch.scheduled_at | string | No | ||||
| data.product.latest_launch.slug | string | No | ||||
| data.product.latest_launch.tagline | string | No | ||||
| data.product.latest_launch.thumbnail_image_uuid | string | No | ||||
| data.product.logo_uuid | string | No | ||||
| data.product.media | array | No | ||||
| data.product.media[].id | string | No | ||||
| data.product.media[].image_uuid | string | No | ||||
| data.product.media[].interactive_demo_id | string | No | ||||
| data.product.media[].interactive_demo_type | string | No | ||||
| data.product.media[].media_type | string | No | ||||
| data.product.media[].original_height | integer | No | ||||
| data.product.media[].original_width | integer | No | ||||
| data.product.media[].platform | string | No | ||||
| data.product.media[].thumbnail_height | integer | No | ||||
| data.product.media[].thumbnail_width | integer | No | ||||
| data.product.media[].url | string | No | ||||
| data.product.media[].video_id | string | No | ||||
| data.product.name | string | No | ||||
| data.product.page_variant | producthunt.ProductAboutPageVariant | No | ||||
| data.product.page_variant.launch_id | string | No | ||||
| data.product.page_variant.typename | string | No | ||||
| data.product.posts | array | No | ||||
| data.product.posts[].badges | array | No | ||||
| data.product.posts[].badges[].category | string | No | ||||
| data.product.posts[].badges[].date | string | No | ||||
| data.product.posts[].badges[].id | string | No | ||||
| data.product.posts[].badges[].period | string | No | ||||
| data.product.posts[].badges[].position | integer | No | ||||
| data.product.posts[].badges[].post_id | string | No | ||||
| data.product.posts[].badges[].post_name | string | No | ||||
| data.product.posts[].badges[].post_slug | string | No | ||||
| data.product.posts[].badges[].year | string | No | ||||
| data.product.posts[].comments_count | integer | No | ||||
| data.product.posts[].created_at | string | No | ||||
| data.product.posts[].daily_rank | integer | No | ||||
| data.product.posts[].disabled_when_scheduled | boolean | No | ||||
| data.product.posts[].embargo_preview_at | string | No | ||||
| data.product.posts[].featured_at | string | No | ||||
| data.product.posts[].has_voted | boolean | No | ||||
| data.product.posts[].hide_votes_count | boolean | No | ||||
| data.product.posts[].id | string | No | ||||
| data.product.posts[].latest_score | integer | No | ||||
| data.product.posts[].launch_day_score | integer | No | ||||
| data.product.posts[].monthly_rank | integer | No | ||||
| data.product.posts[].name | string | No | ||||
| data.product.posts[].product | producthunt.LeaderboardProductRef | No | ||||
| data.product.posts[].product.id | string | No | ||||
| data.product.posts[].product.is_no_longer_online | boolean | No | ||||
| data.product.posts[].product.is_subscribed | boolean | No | ||||
| data.product.posts[].product.is_top_product | boolean | No | ||||
| data.product.posts[].product.logo_uuid | string | No | ||||
| data.product.posts[].product.name | string | No | ||||
| data.product.posts[].product.slug | string | No | ||||
| data.product.posts[].product_state | string | No | ||||
| data.product.posts[].randomization_status | producthunt.LeaderboardRandomizationStatus | No | ||||
| data.product.posts[].randomization_status.active | boolean | No | ||||
| data.product.posts[].randomization_status.next_transition_at | string | No | ||||
| data.product.posts[].randomization_status.random_day | boolean | No | ||||
| data.product.posts[].randomization_status.randomize_order | boolean | No | ||||
| data.product.posts[].redirect_to_product | producthunt.LeaderboardProductRef | No | ||||
| data.product.posts[].redirect_to_product.id | string | No | ||||
| data.product.posts[].redirect_to_product.is_no_longer_online | boolean | No | ||||
| data.product.posts[].redirect_to_product.is_subscribed | boolean | No | ||||
| data.product.posts[].redirect_to_product.is_top_product | boolean | No | ||||
| data.product.posts[].redirect_to_product.logo_uuid | string | No | ||||
| data.product.posts[].redirect_to_product.name | string | No | ||||
| data.product.posts[].redirect_to_product.slug | string | No | ||||
| data.product.posts[].shortened_url | string | No | ||||
| data.product.posts[].slug | string | No | ||||
| data.product.posts[].tagline | string | No | ||||
| data.product.posts[].thumbnail_image_uuid | string | No | ||||
| data.product.posts[].updated_at | string | No | ||||
| data.product.posts[].weekly_rank | integer | No | ||||
| data.product.posts_count | integer | No | ||||
| data.product.pro_con_tags | array | No | ||||
| data.product.pro_con_tags[].count | integer | No | ||||
| data.product.pro_con_tags[].id | string | No | ||||
| data.product.pro_con_tags[].name | string | No | ||||
| data.product.pro_con_tags[].type | string | No | ||||
| data.product.review_questions | array | No | ||||
| data.product.review_questions[].category | string | No | ||||
| data.product.review_questions[].id | string | No | ||||
| data.product.review_questions[].question | string | No | ||||
| data.product.reviews_rating | number | No | ||||
| data.product.screenshots | array | No | ||||
| data.product.screenshots[].id | string | No | ||||
| data.product.screenshots[].image_uuid | string | No | ||||
| data.product.screenshots[].media_type | string | No | ||||
| data.product.screenshots[].original_height | integer | No | ||||
| data.product.screenshots[].original_width | integer | No | ||||
| data.product.slug | string | No | ||||
| data.product.tagline | string | No | ||||
| data.product.url | string | No | ||||
| data.product_id | string | No | ||||
| data.viewer | producthunt.ProductAboutViewer | No | ||||
| data.viewer.is_featured_post_maker | boolean | No | ||||
| data.viewer.recent_launch | object | No | ||||
| msg | string | No | Request successful |
Example request
curl -X GET "https://api.crawlora.net/api/v1/producthunt/product/%22producthunt%22/about" -H "x-api-key: <api-key>"
TypeScript fetch
const url = new URL("https://api.crawlora.net/api/v1/producthunt/product/%22producthunt%22/about");
const headers = new Headers();
headers.set("x-api-key", "<api-key>");
const response = await fetch(url, {
method: "GET",
headers,
});
const payload = await response.json();