Documentación

Dos tuberías: registros hacia fuera, logs hacia dentro.

Un feed de BI que entrega registros aditivos a tu warehouse, y un webhook que recibe los logs de crawler de tu CDN.

Conector de BI

POST /bi/records devuelve registros planos de un rango de fechas, de una de dos tablas — mentions o sources — agrupados por las dimensiones que pases. Detrás de la flag bi_connector.

POST https://app.bementioned.ai/api/v1/projects/{project_id}/bi/records

{
  "start_date": "2026-07-01",
  "end_date": "2026-07-31",
  "table": "mentions",
  "dimensions": ["week", "brand_id", "model_channel_id"],
  "limit": 10000,
  "offset": 0
}

Las dimensiones son un conjunto cerrado, con como máximo un grano de tiempo por petición:

date · week · month · model_channel_id · country_code · prompt_id · topic_id · tag_id · brand_id · domain · url · source_type

Las filas llevan solo componentes aditivos — conteos, y sumas junto a sus conteos — y ninguna razón, a propósito: suma los componentes en tu herramienta de BI y divide una vez, y el agregado es exacto en cualquier agrupación.

Un aviso que vale leer dos veces: scope_response_count es el denominador de la fila y se repite idéntico entre filas hermanas de un mismo alcance — nunca lo sumes entre marcas, dominios o URLs. Y source_type siempre va separado y se refleja en cada fila: api y web_scrape nunca se mezclan.

Webhook de ingest — agent analytics

Envía los access logs de tu CDN o servidor y el producto los convierte en visitas de agent analytics: qué crawlers de IA leyeron qué páginas. El token se acuña al crear una fuente de ingest en la app — prefijo bmi_, mostrado una vez, rotable.

curl -X POST https://app.bementioned.ai/api/v1/ingest/agent-logs \
  -H "X-Ingest-Token: bmi_your_token_here" \
  --data-binary @access-log-batch.csv

El endpoint guarda el payload verbatim y responde 202 con un recibo — líneas conservadas, y líneas descartadas por motivo:

{
  "batch_id": 118,
  "line_count": 5000,
  "kept_count": 4816,
  "dropped": { "no_ua_match": 121, "ip_spoof": 12, "malformed": 51 }
}

Límites: 25 MiB por lote, 600 lotes por minuto por fuente, y un bucket estricto de credencial inválida. 401 para un token ausente o revocado, 403 para una fuente pausada, 413 por encima del tope de tamaño, 429 con Retry-After.

Esta superficie no lleva plan flag ni el límite de serving: la captura nunca se detiene por un motivo de plan. Las líneas se interpretan por el formato declarado de la fuente; las alegaciones de bot no verificables se descartan y se contabilizan en el recibo.