Crawlora
ProductPlatformsUse CasesDocsPricingCompare
Sign inTry Playground Console
Crawlora

Structured public web data APIs for search, travel, real estate, marketplaces, apps, social, audio, and AI workflows with managed execution and credit-based usage.

Product

Web Scraping APIFeaturesInfrastructure FeaturesPlatformsTravel APIsReal Estate APIsPricing

Platforms

Google SearchGoogle TrendsBingBraveGoogle MapsAirbnbTripAdvisorZillowYahoo FinanceGoogle FinanceAmazon

Developers

DocsGetting StartedAuthenticationAPI ExamplesRecipesChangelogPlaygroundSDKsIntegrationsMCP

Use cases

SERP MonitoringGoogle Maps LeadsTravel & Hospitality ResearchProperty Market IntelligenceApp Review AnalysisReview & Reputation MonitoringTikTok Trend IntelligenceYouTube Creator IntelligenceAmazon Product MonitoringMusic Catalog / Playlist IntelligencePodcast & Audio IntelligenceFinance Market DataAI Agent Web Data

Legal

TermsPrivacy
Product
Web Scraping APIFeaturesInfrastructure FeaturesPlatformsTravel APIsReal Estate APIsPricing
Platforms
Google SearchGoogle TrendsBingBraveGoogle MapsAirbnbTripAdvisorZillowYahoo FinanceGoogle FinanceAmazon
Developers
DocsGetting StartedAuthenticationAPI ExamplesRecipesChangelogPlaygroundSDKsIntegrationsMCP
Use cases
SERP MonitoringGoogle Maps LeadsTravel & Hospitality ResearchProperty Market IntelligenceApp Review AnalysisReview & Reputation MonitoringTikTok Trend IntelligenceYouTube Creator IntelligenceAmazon Product MonitoringMusic Catalog / Playlist IntelligencePodcast & Audio IntelligenceFinance Market DataAI Agent Web Data
Legal
TermsPrivacy

© 2026 Built with 💖 by Tony Wang

|System:Crawlora API status
Docs menu

Start here

OverviewGetting StartedAuthenticationRate Limits and CreditsError Handling

Examples

ExamplescURLTypeScriptPythonGo

Recipes

RecipesSERP MonitoringGoogle Maps LeadsApp Review AnalysisYouTube TranscriptsTikTok Trend ResearchAmazon Product MonitoringAI Agent Web Data

API Reference

AirbnbAmazonApplePodcastsAppStoreBingBraveeBayGoogleGoogle FinanceGoogle MapGooglePlayInstagramLinkedInProductHuntSimilarWebSpotifySpotifyPodcastsTikTokTripAdvisorTrustpilotYahoo FinanceYouTubeZillow

Start here

OverviewGetting StartedAuthenticationRate Limits and CreditsError Handling

Examples

ExamplescURLTypeScriptPythonGo

Recipes

RecipesSERP MonitoringGoogle Maps LeadsApp Review AnalysisYouTube TranscriptsTikTok Trend ResearchAmazon Product MonitoringAI Agent Web Data

API Reference

AirbnbAmazonApplePodcastsAppStoreBingBraveeBayGoogleGoogle FinanceGoogle MapGooglePlayInstagramLinkedInProductHuntSimilarWebSpotifySpotifyPodcastsTikTokTripAdvisorTrustpilotYahoo FinanceYouTubeZillow
  1. Home
  2. /Docs
  3. /ProductHunt
  4. /Retrieve Product Hunt category products API

ProductHunt API endpoint

Retrieve Product Hunt category products API

Use Crawlora's Retrieve Product Hunt category products API to extract supported public ProductHunt data as structured JSON. This page includes request parameters, cURL examples, response schema, error behavior, credit cost, and a Playground link for testing before integration.

GETapiKey2 credits/requestProductHuntproducthunt.categoryProductsResponseDoc/producthunt/category/{slug}/products

Endpoint facts

Method
GET
API path
/producthunt/category/{slug}/products
Auth
apiKey
Credits
2 credits/request
Platform
ProductHunt
Response schema
#/definitions/producthunt.categoryProductsResponseDoc

Overview

Returns the paginated category listing payload for a Product Hunt category slug. Developers commonly use this endpoint for data enrichment, monitoring, research dashboards, internal automation, and AI-agent workflows that need repeatable structured public web data. Authentication uses the documented Crawlora headers, and usage is metered with the credit cost shown on this page.

Product Hunt platform pageTry Retrieve Product Hunt category products API in PlaygroundCrawlora API pricingProductHunt API documentation

Request parameters

Request parameters are generated from the active endpoint catalog. Required values must be sent before Crawlora can call the upstream public web data source.

ParameterTypeRequiredDefaultDescriptionExample
slug (path)stringYesProduct Hunt category slug"vibe-coding"
featured_onlybooleanNoFeatured products only
orderstringNoSort order
pageintegerNoPage number (1-based)
page_sizeintegerNoPage size
tagsstringNoComma-separated category tags
x-api-key (header)stringYesAPI key required

cURL example

curl -X GET "https://api.crawlora.net/api/v1/producthunt/category/%22vibe-coding%22/products?featured_only=true&page=1" \
  -H "x-api-key: $CRAWLORA_API_KEY"

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
PlanPriceIncluded creditsDaily capRate limitOverage
Free$0/mo2,000500 daily credits5/minNo overage
Starter$9/mo20,0005,000 daily credits15/min$0.75/1,000 overage credits when enabled
Growth$29/mo100,00025,000 daily credits45/min$0.45/1,000 overage credits when enabled
Pro$79/mo400,000No daily cap120/min$0.30/1,000 overage credits
Business$199/mo1,200,000No daily cap300/min$0.20/1,000 overage credits
Enterprise$499/mo5,000,000No daily cap1,000/min$0.12/1,000 overage credits

Infrastructure behavior

This endpoint is executed through Crawlora's managed scraping infrastructure.

  • Proxy strategy: managed automatically where needed
  • Browser rendering: enabled for supported targets that require rendered HTML or JavaScript execution
  • Browser cluster: supported dynamic workloads can be routed through distributed browser instances
  • Retry behavior: automatic retry/fallback may be used depending on endpoint type
  • Challenge handling: challenged pages or unusable upstream HTML are detected and surfaced clearly when they cannot be used
  • Billing: credits are charged only for successful 2xx responses
  • Observability: responses include request context where available

Browser cluster behavior

Some targets require real browser execution because the data is loaded through JavaScript, dynamic rendering, or interaction-like browser behavior.

For supported endpoints, Crawlora can route requests through a managed browser cluster. This allows Crawlora to execute JavaScript, load dynamic content, apply browser-level request behavior, and normalize the rendered result into JSON.

You do not need to operate your own Playwright, Puppeteer, Chrome, proxy, queue, or retry infrastructure.

Error behavior

Crawlora does not silently return bad data when the upstream page cannot be used.

StatusCommon failure case
400Invalid input or missing required parameter
429Plan or endpoint rate limit exceeded
500Internal execution error
502Upstream platform failed, returned unusable HTML, or served a challenge page that could not be resolved

When possible, Crawlora returns structured error context so your integration can retry, back off, or inspect the request.

Failure responses

StatusDescriptionSchema
400Missing or invalid parameters#/definitions/app.Response
404Category not found#/definitions/app.Response
429Rate limit exceeded#/definitions/app.Response
500Internal server error#/definitions/app.Response

Example JSON response

{
  "code": 200,
  "msg": "OK",
  "data": {
    "id": "1585",
    "slug": "vibe-coding",
    "path": "/categories/vibe-coding",
    "name": "Vibe Coding Tools",
    "featured_only": true,
    "order": "highest_rated",
    "page": 1,
    "page_size": 15,
    "ai_summary": "In this set, the strongest split is between code-first assistants, full-stack app generators, and design-led prototyping...",
    "category_tags": [
      {
        "name": "artificial intelligence",
        "count": 60
      }
    ],
    "total_count": 79,
    "end_cursor": "MTU",
    "has_previous_page": false,
    "has_next_page": true,
    "items": [
      {
        "id": "597151",
        "slug": "cursor",
        "name": "Cursor",
        "tagline": "The AI Code Editor",
        "reviews_rating": 4.96,
        "reviews_count": 826,
        "followers_count": 40383,
        "latest_launch": {
          "id": "1102589",
          "scheduled_at": "2026-03-20T00:01:00-07:00"
        },
        "categories": [
          {
            "id": "75",
            "name": "Code editors",
            "path": "/categories/code-editors",
            "slug": "code-editors"
          }
        ]
      }
    ]
  }
}

Request schema

No body schema

Response schema

#/definitions/producthunt.categoryProductsResponseDoc

FieldTypeRequiredEnumBoundsExampleDescription
codeintegerNo200
dataproducthunt.ProductCategoryProductsPageNo
data.ai_summarystringNo
data.category_tagsarrayNo
data.category_tags[].countintegerNo
data.category_tags[].namestringNo
data.connectionstringNoproducts
data.descriptionstringNo
data.end_cursorstringNo
data.featured_onlybooleanNo
data.has_next_pagebooleanNo
data.has_previous_pagebooleanNo
data.idstringNo
data.itemsarrayNo
data.items[].badgesarrayNo
data.items[].badges[].categorystringNo
data.items[].badges[].datestringNo
data.items[].badges[].idstringNo
data.items[].badges[].periodstringNo
data.items[].badges[].positionintegerNo
data.items[].badges[].post_idstringNo
data.items[].badges[].post_namestringNo
data.items[].badges[].post_slugstringNo
data.items[].badges[].yearstringNo
data.items[].categoriesarrayNo
data.items[].categories[].idstringNo
data.items[].categories[].namestringNo
data.items[].categories[].pathstringNo
data.items[].categories[].slugstringNo
data.items[].detailed_reviews_countintegerNo
data.items[].followers_countintegerNo
data.items[].founder_reviews_countintegerNo
data.items[].founder_shoutoutsarrayNo
data.items[].founder_shoutouts[].from_postproducthunt.ProductCategoryFounderPostNo
data.items[].founder_shoutouts[].from_post.badgesarrayNo
data.items[].founder_shoutouts[].from_post.badges[].categorystringNo
data.items[].founder_shoutouts[].from_post.badges[].datestringNo
data.items[].founder_shoutouts[].from_post.badges[].idstringNo
data.items[].founder_shoutouts[].from_post.badges[].periodstringNo
data.items[].founder_shoutouts[].from_post.badges[].positionintegerNo
data.items[].founder_shoutouts[].from_post.badges[].post_idstringNo
data.items[].founder_shoutouts[].from_post.badges[].post_namestringNo
data.items[].founder_shoutouts[].from_post.badges[].post_slugstringNo
data.items[].founder_shoutouts[].from_post.badges[].yearstringNo
data.items[].founder_shoutouts[].from_post.idstringNo
data.items[].founder_shoutouts[].from_post.namestringNo
data.items[].founder_shoutouts[].from_post.product_idstringNo
data.items[].founder_shoutouts[].from_post.product_slugstringNo
data.items[].founder_shoutouts[].from_post.product_statestringNo
data.items[].founder_shoutouts[].from_post.slugstringNo
data.items[].founder_shoutouts[].from_post.thumbnail_image_uuidstringNo
data.items[].founder_shoutouts[].idstringNo
data.items[].founder_shoutouts[].product_idstringNo
data.items[].idstringNo
data.items[].is_no_longer_onlinebooleanNo
data.items[].is_subscribedbooleanNo
data.items[].is_top_productbooleanNo
data.items[].latest_launchproducthunt.ProductCategoryLatestLaunchNo
data.items[].latest_launch.idstringNo
data.items[].latest_launch.scheduled_atstringNo
data.items[].logo_uuidstringNo
data.items[].namestringNo
data.items[].posts_countintegerNo
data.items[].reviews_countintegerNo
data.items[].reviews_ratingnumberNo
data.items[].slugstringNo
data.items[].structured_dataproducthunt.ProductAlternativeStructuredDataNo
data.items[].structured_data.application_categorystringNo
data.items[].structured_data.contextstringNo
data.items[].structured_data.date_modifiedstringNo
data.items[].structured_data.date_publishedstringNo
data.items[].structured_data.descriptionstringNo
data.items[].structured_data.idstringNo
data.items[].structured_data.imagestringNo
data.items[].structured_data.namestringNo
data.items[].structured_data.operating_systemstringNo
data.items[].structured_data.screenshotarrayNo
data.items[].structured_data.urlstringNo
data.items[].taglinestringNo
data.items[].tagsarrayNo
data.last_updated_atstringNo
data.namestringNo
data.orderstringNohighest_rated
data.pageintegerNo1
data.page_sizeintegerNo15
data.pathstringNo/categories/vibe-coding
data.slugstringNovibe-coding
data.tagsarrayNo
data.total_countintegerNo
msgstringNoOK

Code examples

Use environment variables for secrets and keep Crawlora API keys server-side.

curl -X GET "https://api.crawlora.net/api/v1/producthunt/category/%22vibe-coding%22/products?featured_only=true&page=1" \
  -H "x-api-key: $CRAWLORA_API_KEY"

Responsible public web data workflows

Crawlora is designed for responsible structured public web data workflows. Customers are responsible for using Crawlora in compliance with applicable laws, third-party rights, target-platform rules, and Crawlora terms.

Read Crawlora terms

Related

More ProductHunt endpoint docsProduct Hunt scraper API platform pageCrawlora API pricingTry Retrieve Product Hunt category products API in PlaygroundRetrieve Product Hunt category details API documentationRetrieve Product Hunt leaderboard API documentationRetrieve Product Hunt product details API documentationRetrieve Product Hunt product about page API documentationRetrieve Product Hunt product alternatives API documentationRetrieve Product Hunt product customers API documentation
Open in PlaygroundBack to group