Nuestras estadísticas de visitas propias están siempre activas. Google Analytics, que nos ayuda a entender cómo se usan nuestras páginas públicas (no tu espacio de trabajo con sesión iniciada), solo se activa con tu permiso. Consulta nuestra Política de privacidad.

API de Quejas sobre un producto de Reddit

POST

Salud de la API

Salud 24 h
Normal
Tiempo medio 24 h
—
  • Saludable / normal
  • Disponible
  • Limitada
  • Casi sin servicio
Normal

Investiga de qué se quejan en Reddit sobre un producto o tema (keyword). Las filas llevan row_type: una fila «summary» con hilos leídos, comentarios contados, comentarios negativos y positivos, palabras de queja y de elogio más repetidas y comunidades; filas «post» con los hilos analizados, y filas «pain_comment» con los comentarios negativos más votados completos. La queja o el elogio se decide con una lista de palabras: son señales aproximadas.

Precio $72 por 1.000 solicitudes ($0.072 por llamada). Las llamadas fallidas y los resultados vacíos no se cobran. Síncrona. Para tareas lentas añade "mode": "async" al cuerpo, recibe un job_id y consúltalo.

Prompt para IA

Pégalo en tu asistente de IA. Ya incluye los parámetros, los campos de respuesta y una solicitud de ejemplo de este endpoint, así que el asistente puede preguntarte qué necesitas y luego escribir el script.

Ayúdame a escribir un script de recopilación de datos con el endpoint de EveryInfra Reddit: Quejas sobre un producto (reddit/painpoint).

Cómo funciona el endpoint:
- Solicitud: POST https://api.everyinfra.com/api/v1/social con la cabecera Authorization: Bearer <clave API>. Lee la clave de la variable de entorno EVERYINFRA_API_KEY y no la escribas en el código.
- En el cuerpo de la solicitud, pon platform en reddit y action en painpoint, y los parámetros dentro de params.
- Parámetros obligatorios:
  - keyword: Producto o tema que quieres investigar, como standing desk. Sirve para encontrar hilos de Reddit cuyos comentarios se analizan; no es una búsqueda de comentarios.
- Parámetros opcionales:
  - sort: Cómo se eligen los hilos que se analizan: relevance (por defecto), popular, top, newest o most_commented (más comentados). Prueba top si una palabra muy concreta no devuelve nada. (valores admitidos: most_commented / newest / popular / relevance / top)
  - limit: Número máximo de filas que devuelve esta llamada, un entero de 1 a 15. Si no lo envías, se usa el valor predeterminado, y una llamada puede devolver menos filas. (por defecto: 5)
- Devuelve una lista de registros. Campos principales de cada registro: row_type (Tipo de fila (painpoint): summary (una…), posts_scanned (Hilos encontrados para la palabra clave…), posts_analyzed (Hilos cuyos comentarios se leyeron y co…), comments_collected (Comentarios contados (fila summary de p…), negative_comment_count (Comentarios considerados negativos (fil…), positive_comment_count (Comentarios considerados positivos con…), pain_keywords (Palabras más repetidas en los comentari…), praise_keywords (Palabras más repetidas en los comentari…), communities (Subreddits de los que proceden los hilo…), id, title, url; 18 campos en total, lista completa en https://api.everyinfra.com/api/v1/social/catalog?platform=reddit.
- Cuerpo de solicitud de ejemplo:
{
  "platform": "reddit",
  "action": "painpoint",
  "params": {
    "keyword": "standing desk"
  }
}
- Precio: $72 por 1.000 solicitudes; los resultados fallidos y vacíos no se cobran.
- Para decenas o cientos de objetivos, añade "mode": "async" al cuerpo: recibes un job_id al instante y consultas GET https://api.everyinfra.com/api/v1/jobs/{job_id} para obtener el resultado.
- Ante un 422, corrige la solicitud con los nombres de parámetros y los valores admitidos que sugiere el error; ante un 429 o un 503, espera lo que indique Retry-After y vuelve a intentarlo.

Antes de escribir código, pregúntame qué objetivos necesito, cuántos, qué campos y en qué formato quiero el resultado; luego confirma conmigo el plan y el coste aproximado.

Parámetros de la solicitud

NombreUbicaciónTipoObligatorioPor defectoDescripción
AuthorizationheaderstringSí-Bearer seguido de tu clave de API. Créala en la consola; nunca la pongas en una URL ni en un repositorio de código.
platformbodystringSíredditIdentificador de la plataforma, valor fijo.
actionbodystringSípainpointIdentificador de la capacidad, valor fijo.
keywordbody.paramsstringSí-Producto o tema que quieres investigar, como standing desk. Sirve para encontrar hilos de Reddit cuyos comentarios se analizan; no es una búsqueda de comentarios.
sortbody.paramsstring (enum)No-Cómo se eligen los hilos que se analizan: relevance (por defecto), popular, top, newest o most_commented (más comentados). Prueba top si una palabra muy concreta no devuelve nada.Valores permitidosmost_commentednewestpopularrelevancetop
limitbody.paramsinteger (1–15)No5Número máximo de filas que devuelve esta llamada, un entero de 1 a 15. Si no lo envías, se usa el valor predeterminado, y una llamada puede devolver menos filas. Los valores mayores devuelven 422 antes de cualquier cobro.

Ejemplos de código

bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "reddit",
  "action": "painpoint",
  "params": {
    "keyword": "standing desk"
  }
}'

Definición OpenAPI (JSON)Los ejemplos leen la clave de la variable de entorno EVERYINFRA_API_KEY; el código copiado nunca contiene tu clave.

Ejemplo de respuesta

Vista previa de campos

Todavía no hay una muestra real para estos parámetros de ejemplo: se muestra la estructura de la respuesta y sus campos según la definición de la API, con … como marcadores. No es el resultado de una llamada real.

json
{
  "id": "req_…",
  "platform": "reddit",
  "action": "painpoint",
  "results": [
    {
      "row_type": …,
      "posts_scanned": …,
      "posts_analyzed": …,
      "comments_collected": …,
      "negative_comment_count": …,
      "positive_comment_count": …,
      "pain_keywords": …,
      "praise_keywords": …,
      "communities": …,
      "platform": …,
      "id": …,
      "title": …,
      "url": …,
      "community": …,
      "like_count": …,
      "comment_count": …,
      "text": …,
      "author_username": …,
      "post_title": …
    }
  ],
  "count": …,
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}

Campos de la respuesta

Los datos están en results. La tabla lista los campos que puede tener cada registro; los valores que la plataforma no muestra nunca se inventan.

CampoSignificado
row_typeTipo de fila (painpoint): summary (una por llamada), post (un hilo analizado) o pain_comment (uno de los comentarios negativos más votados, completo).
posts_scannedHilos encontrados para la palabra clave y revisados (fila summary de painpoint).
posts_analyzedHilos cuyos comentarios se leyeron y contaron (fila summary de painpoint), como máximo limit.
comments_collectedComentarios contados (fila summary de painpoint); solo se leen los comentarios de primer nivel de esos hilos.
negative_comment_countComentarios considerados negativos (fila summary de painpoint). Decide una lista de palabras: palabras negativas y ninguna positiva. Es un recuento aproximado, no una tasa de insatisfacción.
positive_comment_countComentarios considerados positivos con la misma lista de palabras (fila summary de painpoint); recuento aproximado.
pain_keywordsPalabras más repetidas en los comentarios negativos, cada una con word y count, de más a menos frecuente (fila summary de painpoint). Es frecuencia de palabras, así que pueden aparecer palabras comunes como any o it's; no es una lista elaborada de problemas.
praise_keywordsPalabras más repetidas en los comentarios positivos, cada una con word y count, de más a menos frecuente (fila summary de painpoint).
communitiesSubreddits de los que proceden los hilos, sin el prefijo r/ (fila summary de painpoint).
platformIdentificador de la plataforma, igual que platform en la solicitud (por ejemplo xiaohongshu, tiktok).
idIdentificador único del registro en la plataforma. Solo es único dentro de una plataforma; puede repetirse entre plataformas.
titleTítulo. null cuando la plataforma no usa títulos (por ejemplo publicaciones solo de texto).
urlEnlace al registro en la plataforma.
communityConserva el significado de la plataforma
like_countMe gusta. null significa que la plataforma o esta capacidad no lo publica; no es 0.
comment_countComentarios. null significa no publicado, no 0.
textTexto del contenido sin HTML, completo y sin recortes (en algunas plataformas los resultados de listado solo traen un extracto; lo indican las notas de campos de la plataforma).
author_usernameNombre de usuario del autor (@usuario), normalmente utilizable en URL.
post_titleTítulo del post donde se dejó el comentario (user_comments; filas pain_comment de painpoint).

Errores y facturación

401
Falta la clave o no es válida.
402
Saldo insuficiente. Recarga primero.
422
Nombre o valor de parámetro incorrecto. Corrígelo según las opciones indicadas en el error. Sin cargo.
429
Se alcanzó el límite de solicitudes por minuto. Espera el tiempo indicado en Retry-After y vuelve a intentarlo.
503
No se pudo completar. El cargo retenido vuelve a tu saldo. Si el resultado es incierto, compruébalo antes de reenviar.
200 vacío
Sin datos. Sin cargo.

Errores