---
title: "Retrieve Product Hunt leaderboard"
method: GET
path: "/producthunt/leaderboard"
tags: ["ProductHunt"]
---

# Retrieve Product Hunt leaderboard

`GET /producthunt/leaderboard`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/producthunt/leaderboard`
- Auth: API key in header `x-api-key`

Returns the Product Hunt leaderboard for a `scope` of `daily` (default), `weekly`, `monthly` or `yearly`, positioned with `date` (YYYY-MM-DD) or `year`, `month`, `day` and `week`. Only the first page is served, so a non-empty `cursor` returns an error. `featured` and `order` are accepted but do not change the default view.

## Query parameters

- `scope` 'daily' | 'weekly' | 'monthly' | 'yearly'
- `date` string, date
- `year` integer
- `month` integer
- `day` integer
- `week` integer
- `featured` boolean
- `order` string
- `cursor` string

## Response `200`

Wrapped typed leaderboard payload

- ProducthuntLeaderboardResponseDoc
  - `code` integer
  - `data` ProducthuntLeaderboardPage
    - `connection` string: Name of the Product Hunt feed the items come from.
    - `day` integer: Day of the month of the leaderboard period. Set for daily leaderboards.
    - `end_cursor` string: Cursor that points to the end of this page, as Product Hunt returns it.
    - `featured` boolean: Whether the leaderboard lists featured launches only.
    - `golden_kitty_years` integer[]: Years that have a Golden Kitty Awards hall of fame entry.
    - `has_next_page` boolean: Whether Product Hunt has more leaderboard items after this page.
    - `items` ProducthuntLeaderboardItem[]: Leaderboard entries in ranked order. Each one is a launch, an ad or an empty ad slot.
      - `ad` ProducthuntLeaderboardAdItem
        - `channel_kind` string: Placement type of the ad, for example `feed`.
        - `id` string: Product Hunt ID of the ad.
        - `large_asset_uuid` string: Identifier of the large ad image on Product Hunt's image host.
        - `name` string: Name shown on the ad.
        - `post` ProducthuntLeaderboardAdPost
          - `comments_count` integer: Number of comments on the launch.
          - `created_at` string: ISO 8601 timestamp of when the launch was created.
          - `disabled_when_scheduled` boolean: Whether upvoting is disabled while the launch is scheduled.
          - `embargo_preview_at` string: ISO 8601 timestamp of the embargo preview, when the launch has one.
          - `featured_at` string: ISO 8601 timestamp of when Product Hunt featured the launch.
          - `featured_comment` ProducthuntProductCategoryAdComment
            - `body_text` string: Plain-text body of the comment.
            - `id` string: Product Hunt id of the comment.
            - `is_pinned` boolean: Whether the comment is pinned on the launch.
            - `path` string: Path of the comment on Product Hunt.
            - `subject_id` string: Product Hunt id of the launch post the comment is on.
            - `user` ProducthuntProductCategoryUser
              - …
          - `has_voted` boolean: Whether the viewer has upvoted this launch.
          - `hide_votes_count` boolean: Whether the maker hides the vote count for this launch.
          - `id` string: Product Hunt ID of the promoted launch post.
          - `latest_score` integer: Current upvote score of the launch.
          - `launch_day_score` integer: Upvote score the launch had on its launch day.
          - `name` string: Name of the promoted launch.
          - `product` ProducthuntLeaderboardProductRef
            - `id` string: Product Hunt ID of the product.
            - `is_no_longer_online` boolean: Whether Product Hunt marks the product as no longer online.
            - `is_subscribed` boolean: Whether the viewer follows this product.
            - `is_top_product` boolean: Whether Product Hunt marks this as a top product.
            - `logo_uuid` string: Identifier of the product logo on Product Hunt's image host.
            - `name` string: Name of the product.
            - `slug` string: URL slug of the product. Use it with the product endpoint.
          - `randomization_status` ProducthuntLeaderboardRandomizationStatus
            - `active` boolean: Whether randomization is currently in effect.
            - `next_transition_at` string: ISO 8601 timestamp of the next change to the randomization state, when there is one.
            - `random_day` boolean: Whether the launch day is randomized.
            - `randomize_order` boolean: Whether the order of this launch among others is randomized.
          - `slug` string: URL slug of the promoted launch post.
          - `topics` ProducthuntLeaderboardTopic[]: Topics the launch is tagged with.
            - `id` string: Product Hunt ID of the topic.
            - `name` string: Display name of the topic.
            - `slug` string: URL slug of the topic.
          - `updated_at` string: ISO 8601 timestamp of the last update to the launch.
        - `small_asset_uuid` string: Identifier of the small ad image on Product Hunt's image host.
        - `subject` string: Kind of ad entry as Product Hunt labels it, for example `Channel`.
        - `tagline` string: Short tagline shown on the ad.
        - `thumbnail_uuid` string: Identifier of the ad thumbnail image on Product Hunt's image host.
        - `url` string: Link the ad points to.
        - `variation_id` string: Identifier of the ad variation shown.
      - `ghost_ad` ProducthuntLeaderboardGhostItem
        - `id` string: Product Hunt ID of the empty ad slot.
        - `subject` string: Kind of entry as Product Hunt labels it. Always `Ghost`.
      - `post` ProducthuntLeaderboardPostItem
        - `comments_count` integer: Number of comments on the launch.
        - `created_at` string: ISO 8601 timestamp of when the launch was created.
        - `daily_rank` integer: Rank on the daily leaderboard. `0` when Product Hunt gives no rank.
        - `disabled_when_scheduled` boolean: Whether upvoting is disabled while the launch is scheduled.
        - `embargo_preview_at` string: ISO 8601 timestamp of the embargo preview, when the launch has one.
        - `featured_at` string: ISO 8601 timestamp of when Product Hunt featured the launch.
        - `friend_voters_count` integer: Number of the viewer's friends who upvoted the launch.
        - `has_voted` boolean: Whether the viewer has upvoted this launch.
        - `hide_votes_count` boolean: Whether the maker hides the vote count for this launch.
        - `id` string: Product Hunt ID of the launch post.
        - `is_subscribed` boolean: Whether the viewer is subscribed to this launch.
        - `latest_score` integer: Current upvote score of the launch.
        - `launch_day_score` integer: Upvote score the launch had on its launch day.
        - `monthly_rank` integer: Rank on the monthly leaderboard. `0` when Product Hunt gives no rank.
        - `name` string: Name of the launch as shown on the leaderboard.
        - `product` ProducthuntLeaderboardProductRef
          - `id` string: Product Hunt ID of the product.
          - `is_no_longer_online` boolean: Whether Product Hunt marks the product as no longer online.
          - `is_subscribed` boolean: Whether the viewer follows this product.
          - `is_top_product` boolean: Whether Product Hunt marks this as a top product.
          - `logo_uuid` string: Identifier of the product logo on Product Hunt's image host.
          - `name` string: Name of the product.
          - `slug` string: URL slug of the product. Use it with the product endpoint.
        - `product_state` string: Product Hunt's state label for the product, for example `default`.
        - `randomization_status` ProducthuntLeaderboardRandomizationStatus
          - `active` boolean: Whether randomization is currently in effect.
          - `next_transition_at` string: ISO 8601 timestamp of the next change to the randomization state, when there is one.
          - `random_day` boolean: Whether the launch day is randomized.
          - `randomize_order` boolean: Whether the order of this launch among others is randomized.
        - `scheduled_at` string: ISO 8601 timestamp the launch is scheduled for.
        - `shortened_url` string: Short Product Hunt link to the launch.
        - `slug` string: URL slug of the launch post.
        - `tagline` string: Short tagline of the launch.
        - `thumbnail_image_uuid` string: Identifier of the launch thumbnail image on Product Hunt's image host.
        - `topics` ProducthuntLeaderboardTopic[]: Topics the launch is tagged with.
          - `id` string: Product Hunt ID of the topic.
          - `name` string: Display name of the topic.
          - `slug` string: URL slug of the topic.
        - `updated_at` string: ISO 8601 timestamp of the last update to the launch.
        - `weekly_rank` integer: Rank on the weekly leaderboard. `0` when Product Hunt gives no rank.
      - `type` string: Kind of entry: `post` for a launch, `ad` for an ad or `ghost_ad` for an empty ad slot.
    - `month` integer: Month number from the requested date, 1 to 12. Only meaningful for daily and monthly leaderboards.
    - `order` string: Ranking order the leaderboard uses, for example `DAILY_RANK`.
    - `raw_page_info` object: Pagination details for this page as Product Hunt returns them: `endCursor` and `hasNextPage`.
    - `scope` string: Leaderboard period: `daily`, `weekly`, `monthly` or `yearly`.
    - `total_count` integer: Number of items returned on this page.
    - `week` integer: ISO week number from the requested date. Only meaningful for weekly leaderboards.
    - `year` integer: Year of the leaderboard period.
  - `msg` string

## Other responses

- `400`: Missing or invalid parameters
- `404`: Product not found
- `429`: Rate limit exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/afac9b012a27?raw)
