Un equipo de marketing puede ver las publicaciones de la competencia en el feed, pero revisarlas manualmente no responde bien a una pregunta concreta: ¿qué formatos y temas suelen generar interacciones y cuáles solo destacaron una vez? La solución consiste en guardar a diario los datos de las publicaciones públicas y compararlos a lo largo del tiempo, por formato y por los contadores disponibles.

A continuación se presenta un flujo básico con Python y IG Scraper API. Obtiene las publicaciones de una cuenta seleccionada, guarda las respuestas en JSONL y genera un resumen de las publicaciones nuevas. Las métricas de interacción del informe reflejan los valores que devuelve la API en el momento de la recopilación; las capturas de distintas fechas permiten analizar por separado sus cambios.
Primero, decide qué quieres comparar
Para una pequeña selección de competidores, basta con llevar una lista de cuentas públicas y recopilar sus publicaciones siguiendo un mismo calendario. Empieza por preguntas que los datos puedan responder: con qué frecuencia se publica contenido, qué publicaciones son Reels u otros formatos, qué temas se repiten y cómo cambian los contadores disponibles de Me gusta y comentarios.
Separa dos conceptos en el almacenamiento: la publicación y su captura. Identifica cada publicación con un ID persistente, si está presente en la respuesta, y guarda cada ejecución como un registro independiente con la hora de recopilación. Así podrás ver cómo cambiaron los contadores disponibles, en lugar de sustituir el valor de ayer por el de hoy.
Usa la ruta documentada
La documentación de jsonscraper indica https://ig.jsonscraper.com como dirección para la solicitud básica y la ruta GET /v1/user/by/username. Para obtener publicaciones, el mapa de la API también incluye GET /v1/user/medias/chunk. Comprueba el conjunto exacto de parámetros y campos de respuesta en la colección de Postman asociada al producto: no vincules el procesador a una estructura supuesta antes de examinar la respuesta real de tu solicitud.
Para una primera prueba, utiliza el ejemplo documentado de solicitud de perfil; pasa la clave mediante una variable de entorno en lugar de escribirla en el código fuente:
curl -G "https://ig.jsonscraper.com/v1/user/by/username" \
--data-urlencode "username=apple" \
--data-urlencode "license_key=$JSONSCRAPER_LICENSE_KEY" \
--data-urlencode "cache_timeout=60"
El ejemplo de la página del producto muestra username, license_key y cache_timeout para la ruta de perfil. Aplica el parámetro a otras rutas solo si la documentación lo especifica. Para solicitar publicaciones, obtén los nombres de los parámetros actuales de la especificación de esa ruta.
Guarda las respuestas como capturas temporales
El siguiente script es una plantilla para una ejecución real: la URL y los parámetros de la ruta de publicaciones quedan en la configuración para que puedas completarlos estrictamente según la documentación de Postman. El procesador guarda el JSON original y la hora de recopilación; añade la normalización de campos después de comprobar la respuesta real.
import json
import os
from datetime import datetime, timezone
from pathlib import Path
import requests
BASE_URL = "https://ig.jsonscraper.com"
USERNAME = os.environ["IG_USERNAME"]
LICENSE_KEY = os.environ["JSONSCRAPER_LICENSE_KEY"]
OUTPUT = Path("instagram_snapshots.jsonl")
# Completa el endpoint y los parámetros según la documentación de la ruta
# GET /v1/user/medias/chunk de la colección de Postman.
MEDIA_PATH = os.environ["IG_MEDIA_PATH"]
MEDIA_PARAMS = json.loads(os.environ["IG_MEDIA_PARAMS_JSON"])
params = {
**MEDIA_PARAMS,
"username": USERNAME,
"license_key": LICENSE_KEY,
}
response = requests.get(
f"{BASE_URL}{MEDIA_PATH}", params=params, timeout=30
)
response.raise_for_status()
payload = response.json()
record = {
"collected_at": datetime.now(timezone.utc).isoformat(),
"username": USERNAME,
"response": payload,
}
with OUTPUT.open("a", encoding="utf-8") as file:
file.write(json.dumps(record, ensure_ascii=False) + "\n")
Intencionadamente, aquí no se incluyen parámetros de paginación ni nombres de campos inventados: hay que copiarlos de la especificación correspondiente y comprobarlos en la respuesta de la API. Las solicitudes con tiempo de espera y raise_for_status() ayudan a detectar errores de red antes de guardar el resultado como si fueran datos normales. Para una ejecución automatizada, añade la validación del JSON y un registro de errores.
Añade una programación y métricas
Ejecuta la recopilación una vez al día con cron o el programador de tu sistema de automatización. Para varias cuentas, recorre una lista de configuración, guarda una captura independiente de cada una y contempla volver a ejecutar el proceso tras un error temporal. Guarda la clave en una variable de entorno o en un almacén de secretos; la página de la API también recomienda no incorporarla al código del cliente.
Tras comprobar la respuesta, normaliza los registros en una tabla con campos como username, media_id, collected_at, el tipo de contenido y los contadores disponibles. No elimines el JSON original: será útil si cambia el formato de respuesta o necesitas verificar un cálculo.
En la capa de análisis, calcula el número de publicaciones nuevas por periodo, la mediana de las interacciones disponibles por formato y el cambio en el contador de una misma publicación entre capturas. La mediana reduce la influencia de una publicación viral aislada en el resumen. Compara las cuentas en periodos idénticos e indica el tamaño de la muestra junto a cada valor agregado.
Qué obtendrás
El equipo tendrá una tabla reproducible de publicaciones y un resumen diario: frecuencia de publicación, distribución por formatos y evolución de las interacciones disponibles. Esta información ayuda a formular hipótesis para el calendario editorial propio, en lugar de limitarse a recopilar capturas de pantalla del feed.
El siguiente paso consiste en enviar los registros normalizados a Google Sheets, una base de datos o un sistema de visualización, y generar el resumen de texto en una etapa aparte. Si incorporas IA, proporciónale datos agregados y pídele que describa patrones observables indicando el periodo y el número de publicaciones; deja las decisiones estratégicas en manos del editor.
Empieza con una cuenta y una ruta: comprueba los parámetros y la estructura de la respuesta en la descripción de IG Scraper API y después fija esa configuración en el calendario de ejecución. Así, la supervisión de la competencia pasa de ser una revisión manual puntual a convertirse en un proceso claro con un historial persistente.