> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/product-hunt/users-username>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/product-hunt/users-username.mdx>

---

# Product Hunt User API

One profile with its bio, links and counts, plus the first 20 made, submitted and voted posts with continuable cursors.

`GET /v1/product-hunt/users/{username}` returns `data.user` with `id`, `username`, `name`, `headline`, `about`, `createdAt`, `avatarUrl`, `followersCount`, `followingsCount`, `votesCount`, `twitterUrl`, `linkedInUrl`, `isAccountVerified` and `canCrawl`. The username is accepted with or without a leading `@`.

The profile also carries `madePosts`, `submittedPosts` and `votedPosts`. Each is an object with `totalCount`, `posts`, `hasMore` and `nextCursor`; `posts` holds the first 20 references as `{ id, slug, name }`. To continue one list, call `GET /v1/product-hunt/users/{username}/posts?kind=made|submitted|voted` with that list's `nextCursor`. Product Hunt pages these lists by position over an order with ties, so a post can appear on two pages and another can be skipped; de-duplicate by `id`. `canCrawl` says whether the profile allows indexing; it does not affect what this endpoint returns.

## Request

- **Endpoint:** `GET /v1/product-hunt/users/{username}`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by username
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v1/product-hunt/users/username/get)
- **Platform page:** [/platforms/product-hunt](https://www.socialfetch.dev/platforms/product-hunt)

## FAQ

### Can I page a user's made, submitted or voted posts?

Yes. Each list returns the first 20 post references plus `totalCount`, `hasMore` and `nextCursor`. Continue with `GET /v1/product-hunt/users/{username}/posts?kind=<list>&cursor=<nextCursor>`.

### What does canCrawl mean?

It says whether the profile allows indexing. It is returned as data and does not affect what this endpoint returns.

### Do I include the @ sign in the username?

Either form is accepted. The route trims whitespace and removes a leading `@`, so `rrhoover` and `@rrhoover` name the same user.

### How do I get the full post for one of these references?

Use the reference's `slug` on `GET /v1/product-hunt/posts/{slug}`. The reference only carries `id`, `slug` and `name`.

### How much does it cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.
