API Instagram - Método GET /comments
Permite obtener los comentarios indexados de un post concreto de Instagram. Está pensado como un drill-down desde GET /posts: primero se consultan las publicaciones de un Worker, y después, para cada publicación de la que se quieran ver los comentarios, se hace una llamada adicional a /comments indicando el post_id. Cada llamada a /comments es una consulta facturable independiente dentro de tu plan.
Parámetros GET
Veamos la estructura de la consulta de ejemplo:
https://instagram.trawlingweb.com/comments?token={APIKEY}&post_id={POST_ID}
Parámetros QUERY
| Parámetro | Descripción | Default | Ejemplo |
|---|---|---|---|
| token | APIKEY de acceso del cliente al sistema de TrawlingWeb. | Valor obligatorio | ?token={APIKEY} |
| post_id | Identificador de la publicación de Instagram cuyos comentarios se solicitan. Se obtiene del campo post_id del response de GET /posts/{WORKERID}. |
Valor obligatorio | &post_id=3893360753113419201 |
| country_pref | Preferencia de país del cliente (ISO 3166-1 alpha-2, ej: es). Obligatorio para contratos FeedScale Pay-per-Use. Su omisión penaliza multiplicando x2.5 el coste de la request y conlleva riesgo de bloqueo de acceso. |
Obligatorio (Pay-per-Use) | &country_pref=es |
| ts | Delimitador temporal inicial. Formato Unix Time en milisegundos. | Delimita a 30 días en el pasado a partir de la petición | &ts=1518472804000 |
| tsi | Delimitador temporal final. Formato Unix Time en milisegundos. | Delimita con la fecha de petición | &tsi=1524818189854 |
| size | (Opcional) Número de resultados por página. Máximo 100 (estándar) o 500 (admin). | 100 | &size=50 |
Nota — ventana temporal: el endpoint
/commentsusa una ventana default de 30 días (vs 1 mes de/posts), pensada porque los comentarios suelen consultarse en horizontes más cortos que las publicaciones.
Nota — flujo recomendado: primero
GET /posts/{WORKERID}para obtener la lista de publicaciones del Worker. Después, por cadapost_iddel que quieras ver los comentarios, una llamada aGET /comments?post_id=.... Cada llamada se factura como una consulta independiente.
⚠️ Importante — llamadas estériles también se facturan
GET /comments?post_id=X consulta el repositorio compartido de comentarios indexados por TrawlingWeb. Si nadie ha configurado un Worker subtype=comments que monitorice al autor del post solicitado, el endpoint devolverá:
{ "response": { "data": [], "totalResults": 0, "restResults": 0 } }
… y la llamada se facturará igualmente dentro de tu cuota de consultas.
Para evitar consultas estériles, asegúrate de tener creado al menos un Worker con type=instagram y subtype=comments que monitorice al autor de los posts cuyos comentarios quieras analizar. La creación de Workers de tipo comments se documenta en 04_Workers_Creación.md.
Respuesta de salida - RESPONSE
Una vez lanzada una petición, el endpoint devuelve una respuesta estructurada. El wrapper (data, totalResults, restResults, next) es idéntico al de /posts, pero el shape interno de cada elemento es distinto: cada data[i] es un comentario, no una publicación.
Datos del comentario
| Campo | Descripción | Buscable | Ordenable | Tipo | Formato |
|---|---|---|---|---|---|
| id | Identificador interno del documento. Determinista: <parent_post_id>_<comment_id>. |
No | No | Cadena | |
| comment_id | ID del comentario en Instagram. | No | No | Cadena | |
| parent_post_id | ID del post al que pertenece el comentario. | No | No | Cadena | |
| parent_post_url | URL del post padre. | No | No | Cadena | |
| worker_id | WORKERID del Worker que indexó el comentario. | No | No | Cadena | |
| client_id | ID interno del cliente al que pertenece el Worker. | No | No | Entero | |
| type | Tipo de documento — siempre "comment". |
No | No | Cadena | |
| platform | Plataforma — siempre "instagram_comments". |
No | No | Cadena | |
| text | Texto del comentario (no del post). | No | No | Cadena | |
| likes | Me gusta del comentario (no del post). | No | No | Entero | |
| ad_value | Valor publicitario estimado (modelo híbrido: audience potential × CPM ajustado por likes). | No | No | Decimal | |
| crawled | Fecha y hora en que se procesó/indexó el comentario. | No | Sí | Entero | Timestamp UNIX en milisegundos |
| raw | Objeto crudo del scrape original. No buscable (enabled: false en el mapping). |
No | No | Objeto |
Datos del autor del comentario
| Campo | Descripción | Buscable | Ordenable | Tipo | Formato |
|---|---|---|---|---|---|
| user_name | Nombre de usuario del autor del comentario (no del autor del post). | No | No | Cadena | |
| user_screen_name | Nombre mostrado del autor del comentario. Coincide con user_name cuando Instagram no expone el "full name". |
No | No | Cadena | |
| user_profile | URL de la foto de perfil del autor (puede estar vacía). | No | No | Cadena | |
| is_verified | El autor del comentario tiene cuenta verificada. | No | No | Booleano |
Datos heredados del post padre
Importante: estos campos describen al autor del POST y a la publicación, no al autor del comentario ni al comentario en sí. Vienen heredados del post padre por convención del proyecto. Si necesitas analizar al autor del comentario, no uses
user_followersniuser_followed— siempre verás los del medio al que pertenece el post.
| Campo | Descripción | Buscable | Ordenable | Tipo | Formato |
|---|---|---|---|---|---|
| user_followers | Número de seguidores del autor del POST padre. | No | No | Entero | |
| user_followed | Número de cuentas seguidas por el autor del POST padre. | No | No | Entero | |
| published | Fecha de publicación del POST padre (no del comentario). | No | No | Fecha | ISO 8601-UTC |
Datos del Worker (clasificación geográfica)
| Campo | Descripción | Buscable | Ordenable | Tipo | Formato |
|---|---|---|---|---|---|
| country | País asociado al Worker que indexó el comentario (ISO 3166-1 alpha-2). | No | No | Cadena | Ej: BR, ES, MX |
| lang | Idioma del comentario. Se deriva automáticamente del campo country. |
No | No | Cadena | ISO 639-1 (pt, es, en...) |
Datos de la petición
| Campo | Descripción | Tipo |
|---|---|---|
| requestLeft | Total de consultas pendientes de la suscripción. | Entero |
| totalResults | Total de resultados encontrados por la consulta. | Entero |
| restResults | Resultados restantes después del size actual. |
Entero |
| next | URL para continuar con la paginación y obtener todos los resultados. | Cadena |
Ejemplo de respuesta en formato JSON:
{
"data": [
{
"id": "3893360753113419201_18022373657822184",
"comment_id": "18022373657822184",
"parent_post_id": "3893360753113419201",
"parent_post_url": "https://www.instagram.com/p/DYH_vofxc3B/",
"worker_id": "66d3ba29a337dc2ca3f7745be24f5b29.c23551e0",
"client_id": 1751,
"country": "BR",
"lang": "pt",
"type": "comment",
"platform": "instagram_comments",
"text": "😢😢😢😢 Justiça",
"user_name": "eurosangela.assuncao",
"user_screen_name": "eurosangela.assuncao",
"user_profile": "",
"is_verified": false,
"user_followers": 218323,
"user_followed": 235,
"likes": 0,
"ad_value": 327.48,
"published": "2026-05-09T16:40:51.000Z",
"crawled": 1778599580642,
"raw": { "...": "..." }
}
],
"totalResults": 91,
"restResults": 90,
"next": "https://instagram.trawlingweb.com/comments?token=...&post_id=3893360753113419201&ts=...&tsi=..."
}
Diferencias clave respecto a /posts
Aunque comparten autenticación y wrapper, los dos endpoints sirven entidades distintas. Estos campos tienen el mismo nombre con significado diferente:
| Campo | En /posts |
En /comments |
|---|---|---|
user_name |
Autor del post (cuenta del medio) | Autor del comentario (otra persona) |
text |
Caption del post | Texto del comentario |
likes |
Me gusta del post | Me gusta del comentario |
type |
"photo" / "video" / "carousel" | Siempre "comment" |
Mejores prácticas
Flujo de uso recomendado
GET /posts/{WORKERID}— obtener la lista de publicaciones del Worker.- Para cada
post_iddel response que quieras analizar: GET /comments?post_id={POST_ID}— obtener los comentarios de ese post.
Cada llamada a /comments se factura individualmente. Pide solo los post_id que realmente vayas a procesar.
Integridad de los datos
Cada solicitud al API puede devolver un número máximo de 100 elementos (estándar). Si los comentarios totales superan ese tope, deberás seguir realizando llamadas a la URL indicada en el parámetro next de la salida de cada solicitud.
Paginación
Al realizar peticiones a /comments?post_id=..., el API devuelve un máximo de 100 resultados (o 500 para tokens admin). Cuando hay más, se incluye una next URL para continuar.
Cobertura
Para que un comentario aparezca en este endpoint, alguien debe haber configurado un Worker subtype=comments que monitorice al autor del post. Si solicitas un post_id que nadie monitoriza, recibirás data: [] y totalResults: 0 — y la llamada se facturará. Antes de hacer drill-down masivo, asegúrate de tener Workers de comments configurados para tus cuentas de interés.
Contacto
Si tienes alguna pregunta, necesitas asistencia, contratar o ampliar tus servicios por favor contacta con nosotros.
SAT (Soporte Técnico):
SAC (Soporte administrativo):
Sales (Soporte ventas):