Tony Wang6 min de lecturaCómo scrapear Product Hunt en 2026 (API y Python)
Obtén datos de lanzamientos, productos y makers de Product Hunt en 2026: API GraphQL oficial, no-code o una API estructurada, con JSON real.
Product Hunt es una de las plataformas de esta serie con una API oficial real, gratuita y de autoservicio — registras una app OAuth, obtienes un token y consultas su schema de GraphQL. Así que la pregunta honesta no es "¿tiene Product Hunt una API?", sino "¿cuándo sigues queriendo una API de scraping en lugar de construir queries de GraphQL a mano?". Esta guía cubre la propia API de Product Hunt, las opciones no-code y una API multi-plataforma estructurada, con la realidad legal de cada una expuesta desde el principio.
¿Por qué scrapear Product Hunt?
Product Hunt es una de las mejores señales públicas para productos en etapa temprana — lanzamientos diarios, rankings, categorías, makers y reacción de la comunidad, todo en un solo lugar. Eso alimenta:
- Monitoreo de lanzamientos — seguir qué se lanza a diario o cada semana en una categoría en la que compites o inviertes.
- Investigación de startups y competidores — enriquecer una base de datos de empresas con tagline, categoría, maker y señales de tracción en cuanto un producto se lanza.
- Investigación de alternativas y posicionamiento — ver qué dice la propia lista de "alternatives" de un producto sobre su conjunto competitivo.
- Señal de clientes y testimonios — extraer los "customers" que un producto enumera para ver quién lo está adoptando realmente.
- Seguimiento de tendencias y categorías — combinar los leaderboards de categoría con la demanda de búsqueda de Google Trends para separar el hype del interés real.
¿Es legal scrapear Product Hunt?
Opción 1: la propia API GraphQL de Product Hunt (y su fricción real)
La API v2 de Product Hunt es GraphQL real, no REST. Primero registras una aplicación OAuth en api.producthunt.com/v2/oauth/applications, y luego o bien intercambias client_id/client_secret por un token, o generas un developer token que no caduca desde la página de dashboard de tu app. Cada request va a un único endpoint con un query body:
curl -X POST "https://api.producthunt.com/v2/api/graphql" \
-H "Authorization: Bearer YOUR_DEVELOPER_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query": "query { posts(first: 5, order: RANKING) { edges { node { id name tagline votesCount url } } } }"}'
Esa es una forma legítima y gratuita de consultar el propio grafo de lanzamientos y productos de Product Hunt — sin necesidad de scraping. Dónde empieza a añadir fricción para un pipeline real:
- Registro OAuth, no un simple API key. Necesitas un registro de app y una redirect URI antes de obtener un token utilizable, incluso para acceso de solo lectura y un único usuario — más setup que un API key de copiar y pegar.
- Escribes GraphQL, no llamas a endpoints con nombre. Cada campo que quieras tienes que nombrarlo tú mismo en la query contra el schema de Product Hunt; no hay un atajo tipo
/product/{id}. - Rate limiting basado en complejidad. El endpoint de GraphQL presupuesta unos 6.250 puntos de complejidad cada 15 minutos — el costo de una query depende de los campos y el anidamiento que pidas, no solo del número de requests, así que un par de queries profundas pueden agotar toda la ventana.
- El uso comercial necesita una conversación real con Product Hunt. La documentación de la API indica que no es para uso comercial por defecto y pide a las empresas que se pongan en contacto directamente — vale la pena verificarlo contra tu caso de uso real (mira nuestra guía de uso comercial) antes de construir sobre ella.
Opción 2: herramientas no-code
Existen actors de scraping de marketplace para los listados de lanzamientos y productos de Product Hunt. Están bien para una extracción puntual o una exportación a hoja de cálculo, pero para un pipeline programado añaden una capa de indirección, cargan con la misma exposición a los términos del sitio que scrapear la página directamente, y tampoco resuelven el problema del schema multi-plataforma.
Opción 3: una API estructurada de Product Hunt (vía Crawlora)
Si quieres Product Hunt junto a otras plataformas en una sola forma normalizada — una llamada REST sencilla y un API key en lugar de una query de GraphQL —, una API de scraping de Product Hunt te da eso. Buscar productos:
curl "https://api.crawlora.net/api/v1/producthunt/search?query=cursor" \
-H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"edges": [
{
"node": {
"id": "1050265",
"name": "HeroUI Chat",
"tagline": "Build and ship beautiful UIs with AI and HeroUI",
"slug": "heroui-chat",
"reviewsRating": 4.8,
"reviewsCount": 5
}
}
],
"pageInfo": { "page": 1, "hasPreviousPage": false, "hasNextPage": true },
"pagesCount": 394
}
}
Luego resuelve el id y extrae el detalle del producto, el leaderboard y las alternatives en Python:
import requests
h = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.crawlora.net/api/v1/producthunt"
hits = requests.get(f"{base}/search", headers=h, params={"query": "cursor"}).json()["data"]["edges"]
product_id = hits[0]["node"]["id"]
product = requests.get(f"{base}/product/{product_id}", headers=h).json()["data"]
alternatives = requests.get(f"{base}/product/{product_id}/alternatives", headers=h).json()["data"]
leaderboard = requests.get(f"{base}/leaderboard", headers=h, params={"scope": "daily"}).json()["data"]
El detalle del producto es JSON normalizado (campos reales — revisa los docs):
{
"code": 200,
"msg": "OK",
"data": {
"id": "chronicle-design",
"name": "Chronicle",
"tagline": "Visual version control for teams",
"description": "Chronicle lets designers and developers review every iteration in one place.",
"rating": 4.8,
"review_count": 152,
"followers_count": 2000,
"daily_rank": 1,
"weekly_rank": 1,
"monthly_rank": 1,
"date_published": "2024-07-21T12:34:56Z",
"categories": ["Design", "Productivity"],
"website": "https://chronicle.design",
"social_links": ["https://twitter.com/chronicle", "https://github.com/chronicle"]
}
}
El leaderboard diario está delimitado por scope, year/month/day/week y order, y devuelve items rankeados con puntuaciones cercanas a los votos:
{
"code": 200,
"msg": "OK",
"data": {
"scope": "daily",
"year": 2026,
"month": 4,
"day": 27,
"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
}
}
]
}
}
Category, category products, makers, launches, customers y reviews siguen todos la misma forma id-in-JSON-out — guarda una fila por producto (o por lanzamiento) y vuelve a ejecutar según un calendario.
Qué puedes recopilar
Datos públicos de Product Hunt: búsqueda entre productos (id, name, tagline, slug, rating, review count); detalle de producto (rating, follower count, daily/weekly/monthly rank, date published, categories, website, social links); leaderboards por día/semana/mes con rank y comment counts; detalle de categoría y listados de productos delimitados por categoría con un resumen de IA y tag counts; makers por producto; historial de lanzamientos por producto; alternatives con tag counts; y customers que un producto enumera. Ten en cuenta que el endpoint de comments de Product Hunt fue deprecado por la fuente upstream en mayo de 2026 por fiabilidad inestable y ahora devuelve una respuesta 410 Gone — los hilos de comentarios no se pueden obtener actualmente por esta vía.
Limitaciones y desafíos comunes
- Sabe qué puerta estás usando. La propia API GraphQL de Product Hunt es gratuita y legítima para trabajo no comercial y de una sola plataforma; scrapear páginas de producthunt.com directamente va explícitamente en contra de los términos del sitio de Product Hunt en cualquier caso.
- El uso comercial necesita una conversación real con Product Hunt. Los términos de la API oficial marcan el uso comercial para contacto directo con Product Hunt, sea cual sea la herramienta que termine llamándola.
- Algunos endpoints upstream se degradan con el tiempo. El endpoint de comments aquí devuelve
410 Gonetras una deprecación upstream — construye asumiendo que cualquier endpoint puede perder cobertura y comprueba las respuestas actuales antes de depender de un campo. - Fan-out por producto. Un registro completo (producto más makers, launches, alternatives, reviews) son varias llamadas por id, no una.
- Solo datos públicos. Esto recopila lo que Product Hunt ya expone públicamente — nunca una forma de saltarse las restricciones del sitio de Product Hunt o los términos de su API comercial.
Dónde se usa esto
- Monitoreo de lanzamientos — seguir los lanzamientos diarios y semanales en una categoría que sigues.
- Enriquecimiento de bases de datos de startups — adjuntar tagline, categoría, rating y datos de makers a un registro de empresa en cuanto se lanza.
- Investigación competitiva y de posicionamiento — leer la propia lista de alternatives y el roster de customers de un producto.
- Seguimiento de tendencias — combinar leaderboards de categoría con datos de demanda de búsqueda para separar la tracción real del ruido del día de lanzamiento.
Fuentes
Empieza a recopilar
Pruébalo primero, gratis: pasa cualquier URL pública por el Free Web Scraper, o comprueba si un sitio bloquea bots con el Anti-Bot Checker — sin registro.
Prueba los endpoints de search, product y leaderboard en el Playground, revisa el schema en los API docs y consulta el pricing. Product Hunt te dice qué se lanzó hoy y quién lo está construyendo; combínalo con GitHub para la actividad de desarrolladores y repos detrás de un lanzamiento, o con PitchBook para el historial de financiación detrás de la empresa — la tracción de lanzamiento y los datos de financiación son las dos mitades de un pipeline de investigación de startups en etapa temprana. Una vez que un producto tiene tracción real, how to scrape TrustMRR rastrea si esa tracción se convierte en ingresos verificados. Consulta también how to choose a web scraping API e is web scraping legal.
Parte de nuestra serie de guías how-to-scrape — cada plataforma que cubrimos, en un solo índice.
Preguntas frecuentes
¿Tiene Product Hunt una API oficial?
Sí. La API GraphQL v2 de Product Hunt en api.producthunt.com/v2/api/graphql es real y gratuita de registrar — pero requiere registrar una app OAuth y construir queries de GraphQL contra el schema de Product Hunt, y la documentación indica que la API no es para uso comercial por defecto.
¿Es legal scrapear Product Hunt?
Los términos del sitio de Product Hunt prohíben crawlear o scrapear páginas de producthunt.com directamente. La vía autorizada para el acceso automatizado es la propia API GraphQL de Product Hunt, y sus términos de uso comercial son independientes de esta restricción de scraping — revisa nuestra guía de uso comercial para la checklist.
¿Cuáles son los rate limits de la API oficial de Product Hunt?
El endpoint de GraphQL es basado en complejidad: unos 6.250 puntos de complejidad cada 15 minutos, y el costo depende de los campos y el anidamiento de tu query, no de un número fijo de requests. Otros endpoints tipo REST de v2 permiten hasta 450 requests cada 15 minutos.
¿Puedo obtener los comentarios de Product Hunt a través de la API?
Actualmente no por esta vía — el endpoint de comments de producto fue deprecado upstream en mayo de 2026 por fiabilidad inestable y ahora devuelve una respuesta 410 Gone.
¿Puedo usar los datos de Product Hunt con fines comerciales?
La propia documentación de la API de Product Hunt indica que la API no puede usarse por defecto con fines comerciales, y pide a las empresas que contacten directamente a Product Hunt. Verifica esto junto con los términos del sitio y los términos propios de cada herramienta antes de lanzar un producto comercial.
¿Cómo obtengo las alternatives o customers de un producto de Product Hunt?
Ambos son endpoints delimitados por id — obtén la lista de alternatives de un producto (con tag counts) o su lista de customers usando el id del producto, la misma forma que el detalle de producto y makers.
¿Cuál es la forma más rápida de recopilar datos de Product Hunt en muchos productos?
Una API REST estructurada con un único header de autenticación y JSON consistente, en lugar de construir a mano queries de GraphQL por cada conjunto de campos, es más rápida para iterar sobre resultados de búsqueda y expandirse regularmente a los endpoints de detalle, makers y leaderboard.