Datasets API endpoint
Searches Product Hunt makers from the dataset id enum value `producthunt-makers` — public-profile records of the people who made products, with their footprint (products made, total upvotes, topics) for maker leaderboards. Public fields only. Sort enum: `total_votes_desc`, `product_count_desc`, `followers_desc`, `relevance`. Billing: this search costs 1 credit per record returned, with a minimum of 2 (an empty result costs 2, a full page of 100 costs 100).
/datasets/producthunt-makers/searchDataset id enum:
producthunt-makersQuery parameters:
q: optional full-text query over maker name and headline, max 256 characters.topic: optional exact topic-slug the maker builds in, e.g. artificial-intelligence, max 128 characters.min_products: optional minimum number of products made, 0 or greater.min_total_votes: optional minimum total upvotes across the maker's products, 0 or greater.sort: optional sort order. Allowed values: total_votes_desc, product_count_desc, followers_desc, relevance. Defaults to relevance with q, otherwise total_votes_desc.page: optional page number, defaults to 1.page_size: optional page size, defaults to 20 and maxes at 100.Response behavior:
maker_id, username, name, headline, avatar_url, followers_count, made_products, product_count, total_votes, best_product and topics.10000; page * page_size must not exceed 10000.items array (not an error) when nothing matches or the dataset has no data yet.1 credit per record returned, minimum 2. A search that returns 20 records costs 20 credits, a full page of 100 costs 100, and an empty or one-record result costs 2. You are charged for what comes back, not for the page_size you ask for, but your balance must cover the requested page_size for the call to be accepted. The response header x-credit-cost shows what a call was charged.
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| maker_id | 20 | |
| username | 20 | |
| name | 20 | |
| headline | 18 | |
| avatar_url | 20 | ph-avatars.imgix.net |
| made_products | 20 | median 25 entries |
| product_count | 20 | 2 to 73, median 25 |
| total_votes | 20 | 6,592 to 16,815, median 8,919 |
| best_product | 20 | |
| topics | 20 | median 22 entries |
| first_launch_date | 20 | 2014-06-01 to 2025-02-01 |
| latest_launch_date | 20 | 2021-07-12 to 2026-09-24 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| q | string | No | Full-text query over maker name and headline, max 256 characters | ||
| topic | string | No | Exact topic-slug the maker builds in, e.g. artificial-intelligence, max 128 characters | ||
| min_products | integer | No | Minimum number of products made, 0 or greater | ||
| min_total_votes | integer | No | Minimum total upvotes across the maker's products, 0 or greater | ||
| sort | string | No | Sort enum: total_votes_desc, product_count_desc, followers_desc, relevance Allowed values: total_votes_desc, product_count_desc, followers_desc, relevance. | ||
| page | integer | No | 1 | Page number, defaults to 1 | |
| page_size | integer | No | 20 and maxes at 100 | Page size, defaults to 20 and maxes at 100; page * page_size must be <= 10000 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/datasets/producthunt-makers/search?q=coffee&sort=total_votes_desc&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"dataset": "producthunt-makers",
"items": [
{
"maker_id": "12345",
"username": "rrhoover",
"name": "Ryan Hoover",
"headline": "Founder of Product Hunt",
"product_count": 8,
"total_votes": 5210,
"best_product": {
"slug": "product-hunt",
"latest_score": 1200
},
"topics": [
"tech",
"productivity"
]
}
],
"page": 1,
"page_size": 20,
"total": 1,
"sort": "total_votes_desc"
}
}Request schema
No body schema
Response schema
#/definitions/datasets.producthuntMakersSearchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | datasets.ProductHuntMakersSearchResponse | No | ||||
| data.dataset | string | No | Identifier of the dataset queried (`producthunt-makers`). | |||
| data.items | array | No | Matching Product Hunt maker records on this page. | |||
| data.items[].avatar_url | string | No | URL of the maker's profile picture. | |||
| data.items[].best_product | object | No | The maker's product with the highest upvote count. | |||
| data.items[].best_product.latest_score | integer | No | Current upvote count of the product. | |||
| data.items[].best_product.name | string | No | Product name as shown on Product Hunt. | |||
| data.items[].best_product.product_id | string | No | Product Hunt identifier of the product. | |||
| data.items[].best_product.slug | string | No | URL slug of the product on Product Hunt. | |||
| data.items[].first_launch_date | string | No | Date of the maker's earliest product launch, in YYYY-MM-DD format. | |||
| data.items[].followers_count | integer | No | Number of Product Hunt users following the maker. | |||
| data.items[].headline | string | No | Short headline from the maker's Product Hunt profile. | |||
| data.items[].latest_launch_date | string | No | Date of the maker's most recent product launch, in YYYY-MM-DD format. | |||
| data.items[].made_products | array | No | Products the maker is credited with on Product Hunt. | |||
| data.items[].made_products[].latest_score | integer | No | Current upvote count of the product. | |||
| data.items[].made_products[].name | string | No | Product name as shown on Product Hunt. | |||
| data.items[].made_products[].product_id | string | No | Product Hunt identifier of the product. | |||
| data.items[].made_products[].slug | string | No | URL slug of the product on Product Hunt. | |||
| data.items[].maker_id | string | No | Product Hunt identifier of the maker. | |||
| data.items[].name | string | No | Maker's display name. | |||
| data.items[].product_count | integer | No | Number of products the maker is credited with. | |||
| data.items[].topics | array | No | Slugs of the topics the maker's products are filed under. | |||
| data.items[].total_votes | integer | No | Total upvotes across the maker's products. | |||
| data.items[].username | string | No | Maker's Product Hunt username. Use it with the maker item endpoint. | |||
| data.page | integer | No | Page number returned. | |||
| data.page_size | integer | No | Number of items per page. | |||
| data.sort | string | No | Sort order applied. | |||
| data.total | integer | No | Total number of records matching the filters. | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/datasets/producthunt-makers/search?q=coffee&sort=total_votes_desc&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"