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 leaderboard API

ProductHunt API endpoint

Retrieve Product Hunt leaderboard API

Use Crawlora's Retrieve Product Hunt leaderboard 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.leaderboardResponseDoc/producthunt/leaderboard

Endpoint facts

Method
GET
API path
/producthunt/leaderboard
Auth
apiKey
Credits
2 credits/request
Platform
ProductHunt
Response schema
#/definitions/producthunt.leaderboardResponseDoc

Overview

Fetches Product Hunt leaderboard data for daily, weekly, monthly, or yearly scopes via Product Hunt GraphQL. 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 leaderboard 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
scopestringNoLeaderboard scope: daily, weekly, monthly, yearly Allowed values: daily, weekly, monthly, yearly
datestringNoAnchor date in YYYY-MM-DD format. Used to derive missing year/month/day/week values.2026-01-29
yearintegerNoLeaderboard year override2026
monthintegerNoDaily/monthly month override1
dayintegerNoDaily day override29
weekintegerNoWeekly ISO week override5
featuredbooleanNoFeatured products only
orderstringNoscope rank enumRanking order override. Defaults to scope rank enum.
cursorstringNoPagination cursor

cURL example

curl -X GET "https://api.crawlora.net/api/v1/producthunt/leaderboard?scope=daily&date=2026-01-29&year=2026&month=1&day=29&week=5&featured=true" \
  -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.

Response behavior

- Pass the returned `cursor` value from a previous response to continue pagination. Example response: ```json { "code": 200, "msg": "OK", "data": { "scope": "daily", "featured": true, "order": "DAILY_RANK", "year": 2026, "month": 4, "day": 27, "week": 18, "connection": "homefeedItems", "has_next_page": false, "items": [ { "type": "post", "post": { "id": "1101061", "name": "Kitty Points Leaderboard", "slug": "kitty-points-leaderboard", "tagline": "Find interesting community members and see how you stack up", "latest_score": 140, "daily_rank": 3, "weekly_rank": 9, "comments_count": 18, "product": { "id": "112572", "slug": "producthunt", "name": "Product Hunt" } } } ] } } ```

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
404Product 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": {
    "scope": "daily",
    "featured": true,
    "order": "DAILY_RANK",
    "year": 2026,
    "month": 4,
    "day": 27,
    "week": 18,
    "connection": "homefeedItems",
    "has_next_page": false,
    "items": [
      {
        "type": "post",
        "post": {
          "id": "1101061",
          "name": "Kitty Points Leaderboard",
          "slug": "kitty-points-leaderboard",
          "tagline": "Find interesting community members and see how you stack up",
          "latest_score": 140,
          "daily_rank": 3,
          "weekly_rank": 9,
          "comments_count": 18,
          "product": {
            "id": "112572",
            "slug": "producthunt",
            "name": "Product Hunt"
          }
        }
      }
    ]
  }
}

Request schema

No body schema

Response schema

#/definitions/producthunt.leaderboardResponseDoc

FieldTypeRequiredEnumBoundsExampleDescription
codeintegerNo200
dataproducthunt.LeaderboardPageNo
data.connectionstringNo
data.dayintegerNo29
data.end_cursorstringNo
data.featuredbooleanNo
data.golden_kitty_yearsarrayNo
data.has_next_pagebooleanNo
data.itemsarrayNo
data.items[].adproducthunt.LeaderboardAdItemNo
data.items[].ad.channel_kindstringNo
data.items[].ad.idstringNo
data.items[].ad.large_asset_uuidstringNo
data.items[].ad.namestringNo
data.items[].ad.postproducthunt.LeaderboardAdPostNo
data.items[].ad.post.comments_countintegerNo
data.items[].ad.post.created_atstringNo
data.items[].ad.post.disabled_when_scheduledbooleanNo
data.items[].ad.post.embargo_preview_atstringNo
data.items[].ad.post.featured_atstringNo
data.items[].ad.post.featured_commentproducthunt.ProductCategoryAdCommentNo
data.items[].ad.post.featured_comment.body_textstringNo
data.items[].ad.post.featured_comment.idstringNo
data.items[].ad.post.featured_comment.is_pinnedbooleanNo
data.items[].ad.post.featured_comment.pathstringNo
data.items[].ad.post.featured_comment.subject_idstringNo
data.items[].ad.post.featured_comment.userproducthunt.ProductCategoryUserNo
data.items[].ad.post.featured_comment.user.avatar_urlstringNo
data.items[].ad.post.featured_comment.user.idstringNo
data.items[].ad.post.featured_comment.user.namestringNo
data.items[].ad.post.featured_comment.user.usernamestringNo
data.items[].ad.post.has_votedbooleanNo
data.items[].ad.post.hide_votes_countbooleanNo
data.items[].ad.post.idstringNo
data.items[].ad.post.latest_scoreintegerNo
data.items[].ad.post.launch_day_scoreintegerNo
data.items[].ad.post.namestringNo
data.items[].ad.post.productproducthunt.LeaderboardProductRefNo
data.items[].ad.post.product.idstringNo
data.items[].ad.post.product.is_no_longer_onlinebooleanNo
data.items[].ad.post.product.is_subscribedbooleanNo
data.items[].ad.post.product.is_top_productbooleanNo
data.items[].ad.post.product.logo_uuidstringNo
data.items[].ad.post.product.namestringNo
data.items[].ad.post.product.slugstringNo
data.items[].ad.post.randomization_statusproducthunt.LeaderboardRandomizationStatusNo
data.items[].ad.post.randomization_status.activebooleanNo
data.items[].ad.post.randomization_status.next_transition_atstringNo
data.items[].ad.post.randomization_status.random_daybooleanNo
data.items[].ad.post.randomization_status.randomize_orderbooleanNo
data.items[].ad.post.slugstringNo
data.items[].ad.post.topicsarrayNo
data.items[].ad.post.topics[].idstringNo
data.items[].ad.post.topics[].namestringNo
data.items[].ad.post.topics[].slugstringNo
data.items[].ad.post.updated_atstringNo
data.items[].ad.small_asset_uuidstringNo
data.items[].ad.subjectstringNo
data.items[].ad.taglinestringNo
data.items[].ad.thumbnail_uuidstringNo
data.items[].ad.urlstringNo
data.items[].ad.variation_idstringNo
data.items[].ghost_adproducthunt.LeaderboardGhostItemNo
data.items[].ghost_ad.idstringNo
data.items[].ghost_ad.subjectstringNo
data.items[].postproducthunt.LeaderboardPostItemNo
data.items[].post.comments_countintegerNo
data.items[].post.created_atstringNo
data.items[].post.daily_rankintegerNo
data.items[].post.disabled_when_scheduledbooleanNo
data.items[].post.embargo_preview_atstringNo
data.items[].post.featured_atstringNo
data.items[].post.friend_voters_countintegerNo
data.items[].post.has_votedbooleanNo
data.items[].post.hide_votes_countbooleanNo
data.items[].post.idstringNo
data.items[].post.is_subscribedbooleanNo
data.items[].post.latest_scoreintegerNo
data.items[].post.launch_day_scoreintegerNo
data.items[].post.monthly_rankintegerNo
data.items[].post.namestringNo
data.items[].post.productproducthunt.LeaderboardProductRefNo
data.items[].post.product.idstringNo
data.items[].post.product.is_no_longer_onlinebooleanNo
data.items[].post.product.is_subscribedbooleanNo
data.items[].post.product.is_top_productbooleanNo
data.items[].post.product.logo_uuidstringNo
data.items[].post.product.namestringNo
data.items[].post.product.slugstringNo
data.items[].post.product_statestringNo
data.items[].post.randomization_statusproducthunt.LeaderboardRandomizationStatusNo
data.items[].post.randomization_status.activebooleanNo
data.items[].post.randomization_status.next_transition_atstringNo
data.items[].post.randomization_status.random_daybooleanNo
data.items[].post.randomization_status.randomize_orderbooleanNo
data.items[].post.scheduled_atstringNo
data.items[].post.shortened_urlstringNo
data.items[].post.slugstringNo
data.items[].post.taglinestringNo
data.items[].post.thumbnail_image_uuidstringNo
data.items[].post.topicsarrayNo
data.items[].post.topics[].idstringNo
data.items[].post.topics[].namestringNo
data.items[].post.topics[].slugstringNo
data.items[].post.updated_atstringNo
data.items[].post.weekly_rankintegerNo
data.items[].typestringNo
data.monthintegerNo1
data.orderstringNoDAILY_RANK
data.raw_page_infoobjectNo
data.scopestringNodaily
data.total_countintegerNo
data.weekintegerNo5
data.yearintegerNo2026
msgstringNoRequest successful

Code examples

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

curl -X GET "https://api.crawlora.net/api/v1/producthunt/leaderboard?scope=daily&date=2026-01-29&year=2026&month=1&day=29&week=5&featured=true" \
  -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 leaderboard API in PlaygroundRetrieve Product Hunt category details API documentationRetrieve Product Hunt category products 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