Registro de cambios de la API

Todos los cambios de la API REST y las herramientas MCP, de los más recientes a los más antiguos.

  1. 2026-11-14 (v1.96.0)

    Las tasas del resumen coinciden con la aplicación y los nombres de marca admiten hasta 100 caracteres. GET /metrics/summary y la herramienta MCP get_summary calculan ahora los totales de tasas, posiciones y sentimiento sobre la ventana completa, igual que la aplicación: la visibilidad es el total de menciones de la ventana entre el total de sus respuestas, citation_rate sus citaciones entre sus respuestas, una proporción de sentimiento sus veredictos de ese tipo entre todos sus veredictos, y una posición media la media de todas las posiciones registradas en la ventana. Antes, total era la media de los valores de los períodos, de modo que una semana con pocas respuestas pesaba tanto como una con muchas; ahora coincide con el Resumen para los mismos filtros. aggregation sigue indicando average, y min, max, last, los totales de recuento y el AI Visibility Score no cambian. El brand_name de un proyecto admite ahora un máximo de 100 caracteres: POST /projects, PATCH /projects/{id}, los borradores de proyecto al finalizarse y las herramientas MCP create_project y update_project rechazan uno más largo con ERR_INVALID_PARAM. Si se omite brand_name, el nombre del proyecto ocupa su lugar con el mismo límite. Los nombres de marca ya guardados siguen funcionando hasta que se cambien.

  2. 2026-11-14 (v1.95.0)

    Parámetros más estrictos, un único AI Visibility Score y respuestas fechadas por su creación. Los filtros y los indicadores ahora se validan de forma estricta en REST y MCP: un valor desconocido, un id o un indicador mal formados (como 12abc o maybe), un id que el proyecto no tiene, un range mal formado o un from posterior a to devuelven ERR_INVALID_PARAM con el nombre del parámetro en lugar de ignorarse. Los valores de una lista se aceptan con cualquier combinación de mayúsculas y minúsculas, tanto en los parámetros de consulta como en el cuerpo de las solicitudes (granularity=Week, event_type, cadence), y se devuelven con la grafía documentada. En /answers, /sentiments y los listados de /dimensions, un to enviado sin from devuelve los 30 días que terminan en esa fecha. /answers y list_answers también aceptan prompt_type y brand_kind. El AI Visibility Score ahora se calcula igual en todas partes: /metrics/summary y get_summary devuelven los puntos de la ventana divididos entre sus días con respuestas, la cifra que muestra la aplicación, y los períodos semanales y mensuales dividen sus puntos entre sus propios días con respuestas en lugar de sumarlos. El resumen de AI Model Insights sigue la misma regla, y los puntos de los competidores se dividen entre los días del proyecto. Las ventanas de fechas ahora asignan cada respuesta al día en que se creó (en la zona horaria Europe/Madrid), igual que la aplicación, en Citation Intelligence, los informes de AI Model Insights, /answers, los listados de dimensiones y sus herramientas MCP; las cifras de sentimiento conservan la hora en que se ejecutó la respuesta. Con output=csv, las marcas de tiempo usan el mismo formato ISO 8601 que el JSON, y /dimensions/ads devuelve executed_at con el desfase horario de Europe/Madrid. Crear un proyecto mediante la API o MCP ya no cambia el proyecto seleccionado en la aplicación. Un competidor ya no puede usar una regla de dominio completo o de host exacto sobre el dominio del propio proyecto; una regla path_prefix sobre ese dominio se sigue aceptando. Tras eliminar un prompt, sus respuestas, menciones y métricas lo siguen contando hasta que termina la limpieza en segundo plano.

  3. 2026-11-12 (v1.94.0)

    Tipos de proyecto en los acuerdos personalizados. Las cuentas con un acuerdo personalizado que fija el precio de cada proyecto según su tipo ahora pueden elegir el tipo al crear un proyecto: POST /projects y la herramienta MCP create_project aceptan un project_type opcional (como core o lean), que determina el máximo de prompts que puede contener el proyecto y el precio al que se factura; si se omite, el proyecto se crea con el tipo predeterminado de la cuenta. PATCH /projects/:id y la herramienta MCP update_project permiten cambiarlo más adelante (solo el propietario de la cuenta o un copropietario, con una clave que tenga acceso a toda la cuenta), y el proyecto se factura según su nuevo tipo a partir de la próxima renovación. Los detalles del proyecto y las respuestas de creación y de actualización devuelven project_type, que es null en las cuentas sin tipos de proyecto. Cualquier otra cuenta que lo envíe recibe ERR_INVALID_PARAM.

  4. 2026-11-12 (v1.93.0)

    Rangos de fechas de los informes personalizados y desglose mes a mes. En GET /custom_reports, GET /custom_reports/{id} y las herramientas MCP list_custom_reports y get_custom_report, date_range.type ahora también puede ser previous_3_months (los 3 meses naturales anteriores al actual) o custom (fechas fijas), y date_range añade custom_from y custom_to, las fechas elegidas para un rango personalizado (null en los demás casos). En un rango personalizado, to nunca es posterior a hoy. El nuevo widget monthly_breakdown devuelve una fila por cada mes natural de la ventana con sus respuestas, menciones, visibilidad, AI Visibility Score, Share of Voice, citaciones y posición media de mención.

  5. 2026-11-11 (v1.92.0)

    Los detalles de una página ya no muestran cómo se obtuvo. El objeto page_cache de los detalles de las páginas citadas (GET /citation_intelligence/urls/{url_sha256}, GET /citation_intelligence/urls/{url_sha256}/content, la vista de URL de GET /citation_intelligence/groups, GET /answers/{id} con include_source_page_details=true y sus herramientas MCP) ya no incluye source, una etiqueta interna no documentada que indicaba qué servicio había obtenido la página. No cambia ningún campo documentado.

  6. 2026-11-11 (v1.92.0)

    Tasa de respuesta en Trustpilot. En GET /dimensions/owned_media?provider=trustpilot&view=brands y en la herramienta MCP list_owned_media, cada fila de marca añade reviews_held, replied_count, not_replied_count, reply_rate_pct y median_reply_hours: cómo responde la empresa a las reseñas que almacenamos de su perfil (las más recientes de cada consulta mensual, no todas las reseñas de Trustpilot), sea cual sea la ventana de fechas. GET /dimensions/owned_media/summary?provider=trustpilot y la herramienta MCP get_owned_media_summary devuelven en replies las mismas cifras para tu propio perfil.

  7. 2026-11-11 (v1.91.0)

    Bing AI Mode. El valor bing_ai_mode del parámetro model (la página de respuestas con IA de Microsoft Bing, que Microsoft llama Copilot Search, distinta de copilot) se incorpora a todos los endpoints y herramientas MCP que filtran por modelo, incluidos los de inteligencia de citaciones y AI Model Insights. Las páginas que consulta sin citarlas son fuentes en segundo plano: cuentan como citaciones, pero no tienen posición de citación.

  8. 2026-11-11 (v1.90.0)

    Los enlaces a la configuración siguen las pestañas renombradas. El connect_url que se devuelve cuando falta un sitio de WordPress o hay que volver a conectarlo (GET /cms/content, GET /cms/content/{id}, POST /intelligence_tasks/{id}/send_to_cms y sus herramientas MCP) abre ahora la tarjeta de WordPress en Configuración del proyecto > Conexiones (tab=data_connections#wordpress). Los enlaces con tab=wordpress siguen funcionando. El mensaje de ERR_SEARCH_CONSOLE_ACCESS_REVOKED y las descripciones de los endpoints usan ahora los nombres actuales de las pestañas: Conexiones (antes Conexiones de datos) y Canales de marca (antes Redes y comunidades, que algunas descripciones llamaban Owned Media). No cambia ningún campo, parámetro ni código de error.

  9. 2026-11-09 (v1.89.0)

    La creación de prompts tiene en cuenta la parte del cupo de cada proyecto. En una cuenta que restringe las ejecuciones de cada proyecto a su límite de prompts (las cuentas con marca blanca completa o Enterprise Embed pueden activar esta opción en Configuración de la cuenta > Límites de prompts), POST /prompts, POST /prompts/import y las herramientas MCP create_prompts e import_prompts también asignan un valor a first_runs_wait_until cuando la parte del cupo de respuestas de IA del ciclo que corresponde al propio proyecto no alcanza para dar a cada prompt nuevo una respuesta por cada modelo de IA habilitado, y warning indica que el motivo es la parte del cupo del proyecto. En las demás cuentas, no cambia nada.

  10. 2026-11-09 (v1.88.0)

    Valoraciones y reseñas de Trustpilot. GET /dimensions/owned_media y la herramienta MCP list_owned_media aceptan provider=trustpilot: view=profiles enumera los perfiles de Trustpilot que citan las respuestas de IA, con su valoración y su número de reseñas; view=brands devuelve la valoración, la variación de la valoración, el número de reseñas y las citaciones de tu marca y de cada competidor, y view=reviews enumera las reseñas publicadas en los perfiles de tu marca y de los competidores. Las filas añaden rating, rating_change, reviews_count, status, brand, text, author y replied. GET /dimensions/owned_media/summary y la herramienta MCP get_owned_media_summary aceptan provider=trustpilot, y provider=overview incluye Trustpilot. Las valoraciones y las reseñas se obtienen una vez al mes.

  11. 2026-11-07 (v1.87.0)

    Coincidencias de Search Console y correcciones en Tráfico de IA. GET /search_console/ai_visibility_gaps y la herramienta MCP get_search_console_ai_visibility_gaps también emparejan ahora una consulta con un prompt cuyas respuestas de IA hicieron esa misma búsqueda, y cada fila añade match_type: prompt, fan_out o null. Los resultados de Search Console integran los fragmentos de URL, como #pricing, en la URL base, de modo que cada página aparece una sola vez con sus cifras combinadas. GET /metrics/ai_traffic y la herramienta MCP get_ai_traffic dejan fuera las sesiones cuyo medio es de pago, como cpc, en Google Analytics 4 y Piano Analytics.

  12. 2026-11-05 (v1.86.0)

    Respuestas declinadas. GET /answers, GET /answers/{id} y las herramientas MCP list_answers y get_answer añaden no_result_reason a cada respuesta marcada con no_result: declined cuando el modelo ha declinado responder (por ahora, solo Gemini; en la aplicación, la respuesta aparece como «Declinado») o no_answer cuando no se ha podido recopilar ninguna respuesta. El campo response de una respuesta declinada contiene ahora el mensaje que devolvió el modelo en lugar de un marcador de posición. no_result no cambia, y una respuesta real no incluye no_result_reason.

  13. 2026-11-05 (v1.85.0)

    Iniciar un informe de reputación. POST /reputation/reports y la herramienta MCP create_reputation_report inician el informe de Reputación de marca de este mes, igual que el botón «Generar informe de reputación» de la página de Reputación: 201 con el informe nuevo, o 200 con created false y el informe que ya existe para el mes. Con recalculate true usan el único recálculo manual del mes, que vuelve a ejecutar todos los modelos analistas y devuelve ERR_LIMIT_REACHED cuando el mes ya tiene dos informes. Sondea GET /reputation/reports hasta que el informe esté completado. Requiere monitorización de reputación, una clave read_write y, en el caso de los miembros del equipo, permiso de creación en Reputación.

  14. 2026-11-04 (v1.84.0)

    Series de actividad de Owned Media y Reddit. GET /dimensions/owned_media acepta view=activity para YouTube, las plataformas sociales y las aplicaciones móviles. Devuelve una fila por entidad y período de seguimiento real del proyecto, con la fecha de inicio del período, los metadatos actuales de la entidad y las citaciones del intervalo de fechas seleccionado. Se omiten los períodos sin ejecuciones; si hay una ejecución sin citaciones, el valor es cero. Las filas de aplicaciones móviles incluyen la tienda y el ID del competidor; entity_name contiene el ID de la aplicación, sin consulta externa. GET /dimensions/owned_media/summary acepta provider=reddit y devuelve actividad para todos los proveedores, incluida la actividad por plataforma en la vista general. Reddit añade los recuentos de sentimiento positivo, neutro y negativo, actividad por subreddit, intervalos de posición de las citaciones y cuota de marca, además del número de subreddits y autores únicos y positive_pct. Los parámetros existentes se mantienen; view y provider admiten estos nuevos valores. Los miembros del equipo necesitan Social & Communities, además de Reddit Intelligence para Reddit o YouTube Intelligence para YouTube.

  15. 2026-11-04 (v1.83.0)

    Envío de borradores de GEO Writer a WordPress. Una vez conectado un sitio de WordPress en Configuración del proyecto > WordPress, POST /intelligence_tasks/{id}/send_to_cms y send_intelligence_task_to_cms ponen en cola un artículo o una actualización de contenido completados como borrador nuevo en ese sitio (202). No se publica nada ni se edita ninguna entrada existente, y si vuelves a enviar la misma versión se devuelve el borrador existente. GET /intelligence_tasks/{id} y get_intelligence_task listan los borradores en cms_drafts con su estado y su enlace de edición. GET /cms/content, GET /cms/content/{id}, list_cms_content y get_cms_content leen en directo las entradas y páginas del sitio, con HTML saneado. Códigos nuevos: ERR_CMS_NOT_CONNECTED (404), ERR_CMS_ACCESS_REVOKED (403), ERR_CMS_REJECTED (422) y ERR_CMS_UPSTREAM (503). No están disponibles en los hosts de portales de marca blanca. La referencia de la API indica ahora que range o from es obligatorio en GET /metrics/summary, /metrics/prompt_summary, /metrics/timeseries, /metrics/sov y /metrics/top_sources. Estos endpoints ya rechazaban las solicitudes sin ninguno de los dos (ERR_INVALID_PARAM), así que las llamadas existentes no se ven afectadas.

  16. 2026-11-04 (v1.82.0)

    Webhook para las ejecuciones de seguimiento terminadas. El nuevo tipo de evento tracking_run.completed se dispara una sola vez por cada ejecución de seguimiento de un proyecto: cuando todas las respuestas de la ejecución tienen ya su estado definitivo, se ha completado su análisis de sentimiento y ha pasado una hora sin que se incorpore a ella ninguna respuesta nueva. Una integración puede leer los datos nuevos en cuanto llegan, en lugar de hacer polling a intervalos fijos. Una ejecución puede ser la programada al inicio de cada período de seguimiento o un lote menor que llega después dentro del mismo período, como el de unos prompts nuevos o el de un modelo de IA recién habilitado. El payload incluye el período de seguimiento (period_start y period_end), el status de la ejecución (completed, o timed_out si al cabo de 24 horas todavía faltaban respuestas o datos de sentimiento) y sus recuentos de respuestas.

  17. 2026-11-04

    Las herramientas MCP de métricas indican que la ventana de fechas es obligatoria. get_prompt_summary, get_timeseries, get_sov y get_top_sources declaran ahora en su esquema de entrada, como ya hacía get_summary, que una llamada necesita range o from. Una llamada sin ninguno de los dos se rechaza antes de ejecutar la herramienta, con el mismo ERR_INVALID_PARAM que antes, y su error menciona ahora los dos argumentos en lugar de decir range is required. Los endpoints REST no cambian.

  18. 2026-11-04

    Las ejecuciones sin respuesta dejan de contar en las tasas del resumen por modelo. GET /reports/ai_model_insights/summary y get_ai_model_summary dividen ahora las tasas de menciones y de citaciones de cada modelo (mentions_market_share, citations_market_share) entre el número de ejecuciones que han obtenido una respuesta, como hace la matriz de Análisis de modelos de IA en la app. Las ejecuciones sin respuesta (no_result: true, por ejemplo, una búsqueda en la que Google no muestra ninguna AI Overview) ya no se incluyen en denominator ni en denominators_by_model, por lo que suben las tasas de los modelos con muchas ejecuciones de este tipo. Un modelo que no está habilitado y que en el período solo ha tenido ejecuciones sin respuesta deja de aparecer en la lista.

  19. 2026-11-03 (v1.81.0)

    Informes de Search Console. Cinco nuevos endpoints de lectura, cada uno con su herramienta MCP equivalente (get_search_console_opportunities, etc.), consultan en directo los datos de Search Console y aceptan los mismos parámetros que los demás endpoints de Search Console: property, fechas y alcance. GET /search_console/opportunities ordena las consultas situadas entre las posiciones 4 y 20 (por defecto) según los clics que añadiría una posición entre las tres primeras, con el CTR que la propia propiedad obtiene en esas posiciones. GET /search_console/cannibalization lista las consultas cuyas impresiones se reparten entre dos o más páginas, con la cuota de cada página. GET /search_console/decay lista las páginas o consultas que más clics han perdido respecto al período inmediatamente anterior de la misma duración. GET /search_console/brand_split divide los totales entre las consultas que nombran la marca y las que no. GET /search_console/ai_visibility_gaps empareja las consultas principales con los prompts del proyecto por su texto exacto y asigna a cada coincidencia las respuestas de IA del prompt y la proporción de ellas que mencionan la marca. Los informes requieren el plan Growth o superior, y un miembro del equipo necesita además el permiso Resumen para las brechas de visibilidad en IA. Todos los informes, salvo el desglose entre consultas de marca y sin marca, admiten output=flat y output=csv.

  20. 2026-11-03 (v1.80.0)

    El endpoint de la cuenta incluye el cupo de respuestas de IA. GET /account y get_account_usage añaden limits.prompt_executions: las respuestas de IA que la cuenta puede obtener en el ciclo de monitorización actual (su límite de prompts multiplicado por sus modelos de IA habilitados, más un 5 %), cuántas se han usado y cuántas quedan, period (day, week o month) y resets_at. Cada ejecución programada y cada primera ejecución de un prompt nuevo consume una respuesta por cada modelo de IA, eliminar un prompt no devuelve nada y, una vez agotado el cupo, los prompts nuevos esperan hasta resets_at. limits.geo_audit_manual_runs, la única cuota con período diario hasta ahora, cuenta las ejecuciones manuales de auditorías GEO, no las ejecuciones de prompts.

  21. 2026-11-03 (v1.79.0)

    La creación de prompts indica cuándo deben esperar las primeras ejecuciones. POST /prompts, POST /prompts/import y sus herramientas MCP create_prompts e import_prompts devuelven first_runs_wait_until. Este campo tiene valor cuando las respuestas de IA que quedan en el cupo de la cuenta para el ciclo no alcanzan para dar a cada prompt nuevo una respuesta por cada modelo de IA habilitado: el resto se ejecuta cuando se restablece el cupo, en la fecha y hora que indica el campo, y warning lo explica. En los demás casos, vale null. Las descripciones dicen ahora que los prompts nuevos reciben sus primeras respuestas en unas 24 horas, no en cuestión de minutos.

  22. 2026-11-03 (v1.78.0)

    La respuesta del resumen por modelo forma parte ahora del contrato. Los documentos OpenAPI y Swagger, y por tanto los SDK, describen ahora la respuesta de GET /reports/ai_model_insights/summary, que no tenía esquema. Sus filas son los modelos de IA que la cuenta tiene habilitados o que han respondido en el período. share_of_total, net_sentiment y el value de las cuotas de mercado de menciones, citaciones y sentimiento son anulables: valen null cuando no hay nada que los respalde, mientras que los recuentos, los totales y las puntuaciones de visibilidad ponderada siguen siendo 0. La respuesta en sí no cambia.

  23. 2026-11-02

    Todos los modelos de IA en el resumen por modelo, y los períodos vacíos quedan en blanco en MCP. GET /reports/ai_model_insights/summary y get_ai_model_summary listan todos los modelos de IA que la cuenta tiene habilitados o que han respondido en el período, en el orden en que los muestra la app, en lugar de diez modelos fijos. Un share_of_total sin nada que repartir, un net_sentiment sin datos de sentimiento y un valor de cuota de mercado de un modelo sin respuestas ni datos de sentimiento que lo respalden son ahora null, porque 0 es un valor real. Las herramientas MCP get_timeseries y get_summary devuelven null para un período sin respuestas, en lugar de 0 o de un valor arrastrado de un período anterior (responses sigue siendo 0); los endpoints REST no cambian. POST /prompts, POST /prompts/import y create_project consideran duplicados los prompts que solo difieren en mayúsculas y minúsculas o en el espaciado. La fila de la propia marca de GET /dimensions/competitors incluye ahora matching_names, y el context de una recomendación solo devuelve los campos que describen la ejecución.

  24. 2026-11-02

    Revalidación más sencilla en los endpoints de métricas. GET /metrics/timeseries, GET /metrics/summary, GET /metrics/prompt_summary, GET /metrics/sov y GET /metrics/top_sources ya no envían Last-Modified e ignoran If-Modified-Since. Su ETag es ahora un hash del cuerpo de la respuesta, de modo que una respuesta JSON, que incluye un request_id nuevo en cada solicitud, siempre se devuelve con el cuerpo completo, y solo cuando una respuesta con output=csv no ha cambiado se puede seguir respondiendo con 304 Not Modified. La versión de datos que usaban antes tardaba más en calcularse que las propias métricas en proyectos grandes. Los campos de la respuesta no cambian.

  25. 2026-11-01 (v1.77.0)

    Proyectos de pitch. POST /projects y create_project admiten pitch: true para crear un proyecto de pitch, una instantánea puntual para un cliente potencial que ejecuta sus prompts una sola vez, no ocupa ningún hueco de proyecto y se elimina 90 días después salvo que se convierta. PATCH /projects/{id} y update_project con pitch: false, enviado por sí solo, convierten uno en un proyecto monitorizado. GET /dimensions/projects y list_projects excluyen los proyectos de pitch salvo que se use pitch=include o pitch=only, y cada fila de proyecto incluye ahora pitch y pitch_expires_at. Los detalles del proyecto añaden pitch_run (estado, fechas, modelos de IA y respuestas recibidas), GET /account añade limits.pitch_projects con el cupo mensual y el acceso de la cuenta, y untracked_reason puede ser pitch_project. Una vez que un proyecto de pitch se ha ejecutado, sus prompts quedan fijos: añadir, importar o eliminar un prompt devuelve ERR_INVALID_PARAM con error.meta.reason igual a pitch_prompts_frozen. En las herramientas MCP, un proyecto de pitch solo se puede referenciar por su id.

  26. 2026-11-01 (v1.76.1)

    Optimización GEO pasa a llamarse Auditorías GEO. El espacio de la app que reúne las auditorías técnicas de GEO y los informes GEO técnicos se llama ahora Auditorías GEO, al igual que el permiso de los miembros del equipo que controla el acceso a los endpoints y a las herramientas MCP de auditorías GEO y de informes GEO técnicos. El app_url de una auditoría GEO, de una ejecución o de una alerta apunta ahora a una ruta dentro de /app/tools/geo-audits, y los enlaces a las antiguas páginas de /app/tools/geo-optimization redirigen allí. Los endpoints, los parámetros, los campos y los nombres de las herramientas MCP no cambian.

  27. 2026-10-31 (v1.76.0)

    Filtros Sin citaciones y Sin menciones. citation_filter en GET /answers y GET /dimensions/prompt_executions, y en las herramientas MCP list_answers y list_prompt_executions, admite no_citations: las respuestas que no citan ninguna fuente, a diferencia de cites_no_brands, que sigue permitiendo otros dominios. En las respuestas, mention_filter=no_brands y citation_filter=no_citations solo devuelven respuestas completadas y excluyen las ejecuciones pendientes, fallidas y vacías. Las páginas Respuestas y Prompts los muestran como Sin menciones y Sin citaciones.

  28. 2026-10-31 (v1.75.0)

    Sentimiento y desgloses de Reddit en la API y en MCP. GET /dimensions/reddit y list_reddit_citations admiten view=breakdowns, que devuelve las cifras en las que se basa Reddit Intelligence > Sentimiento y desgloses: las citaciones de Reddit desglosadas por el sentimiento de la respuesta de IA que las citó (las cinco etiquetas, incluidas las que tienen cero), por modelo de IA y por país, cada segmento con su count y su pct dentro del desglose, tal como lo representa la página. Se aplican los demás filtros del endpoint, y esta vista admite output=flat y output=csv.

  29. 2026-10-29

    Las herramientas de analítica web en directo no están en ChatGPT. Las conexiones de ChatGPT, desde la app de ChatGPT o desde un conector personalizado, ya no listan ni ejecutan las herramientas MCP get_web_analytics_schema y query_web_analytics. En ChatGPT, get_ai_traffic sigue respondiendo a preguntas sobre el tráfico referido por IA; Claude, los demás clientes MCP y las claves de API conservan ambas herramientas. La herramienta MCP create_webhook_subscription incluye ahora la anotación destructiveHint: true: cuando se ha revocado la clave de API o la conexión OAuth que creó una suscripción, volver a crearla elimina la suscripción anterior y genera un secreto de firma nuevo.

  30. 2026-10-28 (v1.74.0)

    Naver AI Tab, Qwen y Doubao. Los valores naver_ai_tab, qwen y doubao del parámetro model se incorporan a todos los endpoints y herramientas MCP que filtran por modelo, incluidos los de inteligencia de citaciones y AI Model Insights. Qwen y Doubao no marcan ninguna citación en la respuesta, por lo que cada página que consultan es una fuente en segundo plano: cuenta como citación, pero no tiene posición de citación.

  31. 2026-10-28 (v1.73.0)

    Eliminación de proyectos desde la API. El nuevo endpoint DELETE /projects/:id y la herramienta MCP delete_project eliminan un proyecto igual que el botón «Eliminar proyecto» de Configuración del proyecto: el proyecto desaparece de inmediato y libera un hueco de proyecto, y un trabajo en segundo plano purga sus datos. La eliminación no se puede deshacer. Requieren una clave con el ámbito read_write que no esté limitada a algunos proyectos (de lo contrario, devuelven ERR_KEY_PROJECT_SCOPED), y los miembros del equipo necesitan permiso para eliminar proyectos.

  32. 2026-10-28 (v1.72.0)

    Gestión de claves de API desde la API. Los nuevos endpoints GET /api_keys, POST /api_keys y DELETE /api_keys/:id permiten listar tus claves, crear una clave limitada a algunos de tus proyectos (su token solo se devuelve una vez, en la respuesta de creación) y revocar una. Requieren una clave que tenga acceso a toda la cuenta y el ámbito read_write, nunca crean claves con acceso a toda la cuenta y no tienen herramienta MCP. También se pueden listar y revocar claves cuando la cuenta tiene un plan inferior a Scale.

  33. 2026-10-25 (v1.71.0)

    Sin API para las cuentas que no pagan, estado de monitorización de proyectos y prompts, y eliminación de webhooks por debajo de Scale. Todas las solicitudes REST y MCP, incluidas las de lectura y las autenticadas con OAuth, devuelven 403 ERR_ACCOUNT_INACTIVE cuando la cuenta nunca se ha suscrito o su suscripción terminó hace más de tres días, y sus webhooks no entregan nada hasta que pague. Las cuentas que pagan por factura quedan exentas. Desde la fecha hasta la que estaba pagada la suscripción, las solicitudes que ponen en marcha acciones de pago (GEO Writer, informes GEO técnicos, ejecuciones de auditorías GEO, recomendaciones, sugerencias de prompts, borradores de proyecto, ask_support) devuelven el mismo código, y los prompts nuevos se quedan sin su primera ejecución. Los endpoints de proyectos, de detalle de proyecto y de prompts devuelven tracked y untracked_reason, y POST /prompts y /prompts/import añaden un warning cuando los prompts que crean no se van a ejecutar. GET /webhooks y DELETE /webhooks/:id funcionan en todos los planes, para poder eliminar una suscripción en pausa porque la cuenta tiene un plan inferior a Scale. Las auditorías GEO pueden tener ahora paused_reason con el valor quota, public_link_active requiere una cuenta activa en el plan Scale o en uno superior, y las ejecuciones de recomendaciones de Sentimiento y reputación devuelven ERR_NOT_FOUND si la cuenta no tiene acceso a las funciones de reputación.

  34. 2026-10-24 (v1.70.0)

    Los filtros que la API ya aceptaba forman parte ahora del contrato, y range se aplica en los listados. Los documentos OpenAPI y Swagger, y por tanto los SDK, la CLI y los conectores, incluyen ahora parámetros que estos endpoints ya leían pero que no estaban documentados: country_code, language_code y include_project en GET /metrics/summary y GET /metrics/sov; collection_ids y domains en GET /metrics/top_sources; prompt_type, brand_kind y range en GET /dimensions/mentions, /citations, /competitor_mentions, /competitor_citations, /all_mentions, /all_citations y /sources (además de country_code y language_code en los listados de competidores y en los combinados); y prompt_type y brand_kind en GET /dimensions/prompt_executions. Corrección de comportamiento: antes, range se ignoraba en esos siete listados REST, por lo que devolvían todo el historial; ahora se limitan a los últimos N días, como ya hacían sus herramientas MCP; un from o un to explícito sigue teniendo prioridad, y un range que no sea un único número positivo, o que supere los 1500 días, devuelve ERR_INVALID_PARAM. domains en GET /metrics/top_sources y GET /citation_intelligence/mentions_by_domain, y collection_ids en GET /metrics/top_sources, aceptan un valor o una lista separada por comas (domains=gmac.com,educaweb.com), y la forma con corchetes domains[]= sigue funcionando. Antes, una lista de domains separada por comas no coincidía con ningún dominio, y si un cliente repetía la clave (domains=a&domains=b, como hacían la mayoría de los SDK generados para mentions_by_domain), solo se tenía en cuenta el último valor; los SDK regenerados envían la forma separada por comas. El parámetro model de GET /reports/ai_model_insights/position_distribution ahora solo enumera los siete modelos que acepta el endpoint; los demás valores ya se rechazaban con ERR_INVALID_PARAM. El parámetro status de GET /intelligence_tasks ahora enumera sus valores. Las herramientas MCP no cambian.

  35. 2026-10-23 (v1.69.0)

    Motivos de archivo y esfuerzo en los elementos de recomendaciones. PATCH /recommendations/:id/items/:item_id y update_recommendation_item aceptan un reason opcional al archivar (not_relevant, too_complex o competitor), del que aprenden las siguientes ejecuciones de recomendaciones; se devuelve como metadata.archive_reason. Los elementos nuevos incluyen metadata.effort (low, medium o high).

  36. 2026-10-22 (v1.68.0)

    Varias propiedades de Search Console por proyecto. El nuevo endpoint GET /search_console/properties (herramienta MCP list_search_console_properties) enumera hasta 10 propiedades conectadas. Todas las lecturas de Search Console aceptan property: el id de una propiedad, o una lista separada por comas o all para combinar varias; la respuesta incluye properties, excluded_properties (propiedades que ya cuenta otra de las seleccionadas) y property_errors. property es también una dimension del resumen y una dimensión de las filas, y los detalles del proyecto informan de search_console.properties_count.

  37. 2026-10-21 (v1.67.0)

    Estado de las conexiones de datos y enlaces para conectarlas. GET /dimensions/projects/:id y get_project_details devuelven ahora ai_traffic y agent_traffic junto a search_console, de modo que un cliente de la API puede ver qué fuentes de datos tiene un proyecto antes de llamar a sus endpoints. Cada una incluye un status (connected, reconnect_required o not_connected, además de imported cuando el tráfico de agentes procede solo de logs importados), la property o el provider conectados y connect_url, la página en la que el usuario la conecta o la vuelve a conectar. Los errores que devuelven los endpoints de Search Console, tráfico de IA, analítica web y tráfico de agentes cuando la fuente no está conectada o se ha revocado el acceso incluyen el mismo enlace en error.meta.connect_url, y sus herramientas MCP lo devuelven como connect_url. El resto de estas respuestas no cambia.

  38. 2026-10-19 (v1.66.0)

    URL de webhooks enmascaradas, webhooks en pausa por debajo de Scale, campos de las respuestas restringidos por plan y permisos en la importación. GET /webhooks y la herramienta MCP list_webhook_subscriptions, cuando se usan con una clave de API de solo lectura o con una conexión OAuth de MCP sin mcp:write, ahora solo muestran el esquema, el host y el puerto (si no es el predeterminado) de target_url, seguidos de /… (por ejemplo, https://hook.eu1.make.com/…), porque la URL completa puede permitir a cualquiera enviar solicitudes al receptor. Una clave con ámbito read_write, o una conexión con mcp:write, sigue recibiendo la URL completa. Una suscripción creada por una clave de API limitada a algunos proyectos deja de funcionar definitivamente en cuanto esa clave ya no incluye el proyecto de la suscripción: aparece en el listado con disabled: true, y volver a crearla con el mismo proyecto, evento y URL la sustituye por una suscripción nueva con un secreto nuevo. Mientras la cuenta esté en un plan inferior a Scale, sus suscripciones se conservan, pero no entregan nada: no se contabiliza ninguna entrega fallida ni se desactiva ninguna suscripción. Las entregas se reanudan en cuanto la cuenta vuelve a Scale o a un plan superior, y los eventos de ese período no se reenvían. GET /answers/:id omite ahora sentiments si la cuenta tiene un plan inferior a Growth y shopping_products si tiene un plan inferior a Scale, como ya hacía la herramienta MCP get_answer. Ambos devuelven plan_required_fields, la lista de campos omitidos, que siempre está presente y queda vacía cuando no se omite ninguno; antes, get_answer la devolvía como un objeto que indicaba el plan de cada campo, y solo cuando se omitía alguno. En POST /prompts/import y en la herramienta MCP import_prompts, si quien importa es un miembro del equipo sin permiso de creación en Etiquetas, se omite cada fila que necesita una etiqueta que todavía no existe; si es un miembro del equipo sin permiso de actualización en Prompts, una fila que coincide con un prompt que ya existía no le añade ninguna etiqueta (la fila aparece en la lista cuando iba a añadir alguna). Ambos casos se devuelven en row_errors, junto a las filas omitidas por asignar más de 50 etiquetas a un prompt o por hacer que la solicitud supere las 500 etiquetas nuevas, límites que ahora figuran en la descripción de la importación.

  39. 2026-10-19 (v1.65.0)

    Límites en los nombres coincidentes. matching_names admite ahora como máximo 50 nombres de hasta 100 caracteres cada uno en POST /projects, PATCH /projects/:id, POST /competitors, PATCH /competitors/:id y POST /project_drafts/:id/finalize, y en las herramientas MCP create_project, update_project, create_competitor, update_competitor y finalize_project_draft. Los 50 incluyen el nombre de marca que POST /competitors y PATCH /competitors/:id añaden a la lista. Una lista con más nombres o un nombre más largo devuelve ERR_INVALID_PARAM (422) y no se aplica nada de la solicitud. Los pasos de PATCH /project_drafts/:id siguen guardando las listas tal como se envían, y la finalización las comprueba. Los esquemas de solicitud de OpenAPI declaran ambos límites como maxItems y maxLength. Una lista guardada antes de este cambio sigue funcionando hasta que se edite.

  40. 2026-10-16 (v1.64.0)

    Límites de prompts por proyecto en la API y en MCP. GET /dimensions/projects/:id y get_project_details devuelven prompt_limit (null si el proyecto no tiene límite propio) y stats.prompts_available, cuántos prompts admite todavía el proyecto: el menor valor entre lo que le falta al proyecto para llegar a ese límite y los prompts que le quedan a la cuenta, como mínimo 0, y null solo si no se aplica ninguno de los dos. PATCH /projects/:id y la herramienta MCP update_project aceptan un prompt_limit entero de 1 a 2147483647, o null para quitarlo. Solo puede cambiarlo el propietario de la cuenta o un administrador de la cuenta (copropietario) con permiso de actualización en Proyectos: los demás miembros del equipo reciben ERR_INSUFFICIENT_PERMISSION, una clave limitada a algunos proyectos recibe ERR_KEY_PROJECT_SCOPED y de una solicitud rechazada no se aplica nada. Valores como "5" o 5.0 devuelven ERR_INVALID_PARAM. Un límite inferior al número actual de prompts no elimina ninguno; los nuevos se rechazan hasta que el proyecto quede por debajo del límite. Una solicitud que solo envía prompt_limit se guarda aunque haya un recálculo en curso.

  41. 2026-10-15 (v1.63.0)

    Más funciones de la aplicación en la API y en MCP. GET /custom_reports, GET /custom_reports/:id y POST /custom_reports/:id/send (list_custom_reports, get_custom_report, send_custom_report) listan, consultan y envían informes personalizados. PATCH /recommendations/:id/items/:item_id (update_recommendation_item) marca como completado, archiva o restaura un elemento de recomendación. GET /reports/sentiment/topics y GET /reports/sentiment/tags (get_sentiment_topics, get_sentiment_tags) devuelven el sentimiento por tema y por etiqueta, como la página Sentimiento. GET /competitors/suggestions (list_competitor_suggestions) devuelve los competidores sugeridos y los dominios más citados de la página Competidores.

  42. 2026-10-15 (v1.63.0)

    Medios propios y perfiles sociales en la API. GET /dimensions/owned_media/summary (get_owned_media_summary) devuelve las cifras en las que se basa cada pestaña de Medios propios, incluidas las de YouTube y LinkedIn: las citaciones de la plataforma, la parte de ellas que cita tus perfiles y tu contenido, la variación respecto al período anterior, las citaciones semanales y los desgloses por modelo de IA, país, tipo de contenido y antigüedad. GET /dimensions/owned_media/citing_prompts (list_owned_media_citing_prompts) enumera las respuestas que citan una publicación, un vídeo o un perfil concretos. GET /projects/:id/owned_media y PATCH /projects/:id/owned_media (get_owned_media_profiles, update_owned_media_profiles) leen y configuran los perfiles que cuentan como tuyos, como en Configuración del proyecto > Medios propios.

  43. 2026-10-15 (v1.63.0)

    Todas las formas de añadir prompts, a través de la API. POST /prompts/import y la herramienta MCP import_prompts admiten hasta 500 filas, cada una con su propio país, idioma y etiquetas, como la importación CSV. POST /prompt_generations y generate_prompt_suggestions ponen en marcha los generadores de sugerencias de la app (sitio web, palabra clave, tema, Reddit, People Also Ask, reputación, traducción y Search Console) y devuelven un 202 con una ejecución que puedes seguir en GET /prompt_generations/:id (get_prompt_generation). Las ideas llegan a la cola de sugerencias: GET /suggested_prompts (list_suggested_prompts) la enumera, POST /suggested_prompts/accept convierte las ideas en prompts monitorizados y POST /suggested_prompts/reject las descarta (accept_suggested_prompts, reject_suggested_prompts). POST /prompts/remove_tags es ahora el gemelo REST de la herramienta MCP remove_prompt_tags, y PATCH /prompts/:id (update_prompt_categorization) establece a mano la intención de búsqueda y el enfoque de marca de un prompt.

  44. 2026-10-14 (v1.62.0)

    Citaciones por período de una URL, un dominio o un host citados. GET /citation_intelligence/urls/:url_sha256 y la herramienta MCP get_cited_url_details aceptan include_series=true, que añade citation_series: las respuestas que citan la URL por modelo de IA (by_model) y por período (data), por día, semana o mes según la cadencia de seguimiento de la cuenta (granularity), con total igual a stats.total_responses. Cada respuesta se asigna a un período según su executed_at en la zona horaria Europe/Madrid. Sin include_series, la respuesta del endpoint no cambia. El endpoint documenta ahora los filtros que ya aplicaba (model, collection_id, country_code, language_code, prompt, from, to, source_type, sentiment y content_gap) y acepta brand_kind. Para un dominio o un host, GET /citation_intelligence/groups y la herramienta MCP list_citation_groups aceptan key, que devuelve solo ese grupo de la vista elegida y con el que include_series=true añade la misma citation_series a su fila; include_series sin key devuelve ERR_INVALID_PARAM (422). GET /citation_intelligence/groups también aplica brand_kind, que antes ignoraba.

  45. 2026-10-14 (v1.62.0)

    El marcado HTML de las fichas de producto se limpia en lugar de rechazarse. En una tarea product_listing, PATCH /intelligence_tasks/:id y la herramienta MCP update_intelligence_task_content solo conservan p, ul, ol, li, strong, em, h3 y br en description_html, sin atributos. El resto del marcado y todos los atributos se eliminan, y la edición se aplica igualmente, así que consulta en la respuesta el valor guardado. POST /intelligence_tasks/:id/revert restaura la descripción generada, que se limpia de la misma forma.

  46. 2026-10-14 (v1.62.0)

    Una negativa a responder también es una no-respuesta centinela. Cuando el modelo se niega a responder a un prompt (por ahora, solo Gemini, por sus filtros de seguridad o por tratarse de un tema restringido), GET /answers, GET /answers/:id y las herramientas MCP list_answers y get_answer devuelven esa ejecución con no_result: true y el texto de marcador habitual, igual que una ejecución en la que no se pudo recopilar ninguna respuesta tras agotar los reintentos. Esa ejecución no se reintenta y queda fuera de todas las métricas de la plataforma. La forma de la respuesta no cambia; las descripciones de no_result ahora mencionan las dos causas.

  47. 2026-10-14 (v1.61.0)

    Secreto del webhook solo para la credencial que creó la suscripción. Volver a enviar el mismo proyecto, evento y URL a POST /webhooks, o volver a llamar a la herramienta MCP create_webhook_subscription, sigue devolviendo la suscripción existente, como hasta ahora, pero solo incluye secret si la llamada procede de la clave de API o la conexión OAuth que la creó. Cualquier otra clave de API o conexión OAuth recibe la suscripción sin secret, así que ya no puede leer un secreto de firma que no se le haya entregado. Una suscripción creada a través de una conexión OAuth de MCP antes de la v1.58.0 no tiene registrada la credencial que la creó, por lo que nunca vuelve a devolver secret. Una suscripción nueva, incluida la que sustituye a otra porque se ha revocado la clave de API o la conexión OAuth que la creó, sigue devolviendo secret. Para obtener un secreto nuevo de una suscripción existente, elimínala y vuelve a crearla.

  48. 2026-10-12 (v1.60.0)

    Todos los errores de las herramientas MCP incluyen un código. Toda llamada tools/call fallida incluye ahora code junto a error, con el mismo valor que devuelve el endpoint REST en la misma situación; hasta ahora, algunos errores de las herramientas solo incluían error, y los dos rechazos que se producen antes de ejecutar una herramienta (que falten argumentos obligatorios o que el esquema de entrada rechace un valor) llegaban como texto plano, no como un objeto JSON con error. Los argumentos ausentes o no válidos, incluidos los valores que el esquema de entrada de una herramienta rechaza antes de ejecutarla, devuelven ERR_INVALID_PARAM. Un proyecto desconocido devuelve ERR_PROJECT_NOT_FOUND en todas las herramientas, y cualquier otro registro inexistente devuelve ERR_NOT_FOUND (ERR_DRAFT_NOT_FOUND en el caso de los borradores). Si se rechaza una herramienta por falta del ámbito de OAuth necesario o por usar una clave de solo lectura, se devuelve ERR_INSUFFICIENT_SCOPE; si es por los permisos de un miembro del equipo, ERR_INSUFFICIENT_PERMISSION, y en un portal de marca blanca, ERR_INTEGRATION_UNAVAILABLE. Si se agota un presupuesto o se alcanza un límite diario, se devuelve ERR_LIMIT_REACHED o ERR_QUOTA_EXCEEDED, igual que en REST. El texto de error no cambia.

  49. 2026-10-12 (v1.60.0)

    GET /dimensions/sources rechaza los valores de source_type desconocidos o que solo difieren en mayúsculas y minúsculas. Antes, GET /dimensions/sources ignoraba un source_type desconocido, o su forma de array source_type[], y devolvía todas las fuentes, mientras que un valor que solo difería en mayúsculas y minúsculas, como Owned, se aplicaba como owned. Ahora solo acepta los valores exactos owned, competitor o third_party; cualquier otro valor, incluidos Owned y OWNED, devuelve ERR_INVALID_PARAM (422) junto con los valores aceptados. La herramienta MCP list_sources rechaza los mismos valores con el mismo código.

  50. 2026-10-12 (v1.60.0)

    Dominios propios adicionales a través de la API. PATCH /projects/:id y la herramienta MCP update_project aceptan additional_owned_domains: los demás dominios que pertenecen a la marca, cuyas citaciones cuentan como propias. Hasta ahora, solo se podían editar en la aplicación. Es una lista de sustitución completa de hasta 10 dominios, y [] la vacía. Si se pega una URL, se guarda su dominio. Se aplican las mismas reglas que en la aplicación: los subdominios, las plataformas que muchas empresas comparten (como youtube.com, amazon.com o wordpress.com), el dominio del sitio web del proyecto y los dominios que se monitorizan como competidor se rechazan con ERR_INVALID_PARAM, junto con el motivo. GET /dimensions/projects/:id y get_project_details devuelven la lista.

  51. 2026-10-12 (v1.60.0)

    Dominios propios adicionales: recálculo y cambios reservados al propietario de la cuenta. Un cambio en additional_owned_domains reprocesa en segundo plano las respuestas anteriores que citan un dominio añadido o eliminado (rematching: true); si la lista solo cambia de orden o no cambia, no se inicia nada. Solo el propietario de la cuenta puede enviar este campo: la clave o la conexión de un miembro del equipo, aunque sea copropietario, recibe ERR_INSUFFICIENT_PERMISSION y no se aplica nada de la solicitud. Cada solicitud se aplica entera o no se aplica en absoluto, y si incluye también matching_names, se inicia un único recálculo. El objeto project de la respuesta devuelve la lista, y PATCH /projects/:id ahora publica su esquema de respuesta. Mientras se ejecuta un recálculo, PATCH /projects/:id y la herramienta MCP update_project rechazan nuevos cambios con ERR_INVALID_PARAM; el mensaje de ese error ya no promete una espera de unos minutos y ahora pide volver a intentarlo cuando termine el recálculo.

  52. 2026-10-12 (v1.60.0)

    Qué se conserva al eliminar un competidor. DELETE /competitors/:id y la herramienta MCP delete_competitor ahora conservan los productos de compra y las entidades de marca del competidor, que antes se eliminaban en segundo plano, y ya no dejan sus anuncios ni sus negocios locales sin propietario. Los cuatro tipos de datos pasan al proyecto o a otro competidor con cuyo dominio coincidan, o quedan sin atribuir. El trabajo en segundo plano sigue eliminando las menciones, las citaciones, los datos de sentimiento y el historial de Share of Voice del competidor.

  53. 2026-10-12 (v1.60.0)

    Se documentan las excepciones del filtro de modelo. La referencia describe ahora el filtro model tal como ya lo aplicaba cada endpoint. Un modelo desconocido, o uno que el usuario no tenga habilitado, devuelve ERR_INVALID_PARAM (422), salvo en estos casos. GET /sentiments ignora esos valores. Los endpoints de inteligencia de citaciones solo aceptan chatgpt, ai_mode, ai_overview, perplexity, gemini, naver_ai y baidu_ai. GET /reports/ai_model_insights/position_distribution acepta esos siete aunque no estén habilitados. Los endpoints de /metrics también aceptan google-ai-mode y google-ai-overview, que interpretan como ai_mode y ai_overview, respectivamente.

  54. 2026-10-12 (v1.60.0)

    Los listados de dimensiones rechazan el filtro de modelo en forma de array. Los listados de /dimensions descartaban model[], así que devolvían los datos sin filtrar. Ahora devuelven ERR_INVALID_PARAM (422), como en /metrics y /answers. La documentación indica ahora que project_id es obligatorio en GET /dimensions/agent_bots, aunque se ignora: el catálogo de bots es el mismo en todos los proyectos.

  55. 2026-10-12 (v1.60.0)

    Nombre de la marca en los listados de proyectos y filtro de modelo en el listado de prompts. GET /dimensions/projects y la herramienta MCP list_projects devuelven ahora el brand_name de cada proyecto (null si no está definido), y también lo incluye el objeto project que GET /ping añade cuando se llama con project_id, tal como ya declaraba el esquema Project publicado. GET /dimensions/prompts aplica ahora el filtro model, que antes ignoraba: solo devuelve los prompts que tienen al menos una ejecución en ese modelo, sea cual sea su resultado o fecha. Su filtro prompt ya funcionaba y ahora está documentado. La herramienta MCP list_prompts acepta ambos filtros.

  56. 2026-10-12 (v1.60.0)

    Los webhooks con una credencial revocada aparecen como desactivados. GET /webhooks y la herramienta MCP list_webhook_subscriptions devuelven disabled: true, en lugar de false, para una suscripción cuya clave de API o conexión OAuth se ha revocado. Una suscripción así ya no recibe eventos. Elimínala o vuelve a crearla con el mismo proyecto, evento y URL para sustituirla por una suscripción nueva con un secreto nuevo.

  57. 2026-10-12 (v1.59.0)

    Las filas de GET /metrics/prompt_summary incluyen ahora el sentimiento de marca de cada prompt: sentiment_responses (respuestas con un veredicto de sentimiento sobre la marca), los cinco porcentajes sentiment_* sobre ese recuento y net_sentiment, calculados igual que las métricas de sentimiento de /metrics/timeseries y null cuando ninguna respuesta tiene veredicto. Respetan breakdown=model y todos los filtros, y no se pueden usar para ordenar. Cada fila incluye también el país, el idioma, el tipo, el enfoque de marca y las etiquetas de su prompt, como en /dimensions/prompts. La herramienta MCP get_prompt_summary devuelve los mismos campos.

  58. 2026-10-12 (v1.58.0)

    API de miembros del equipo. Gestiona el equipo de la cuenta a través de la API con las mismas reglas que la página de Miembros del equipo. Los nuevos endpoints GET /team_members y GET /team_invitations listan, respectivamente, los miembros (primero el propietario de la cuenta) y las invitaciones pendientes, con su acceso y sus proyectos; POST /team_invitations envía una invitación por correo electrónico, DELETE /team_invitations/:id revoca una invitación y DELETE /team_members/:id elimina a un miembro. Las herramientas MCP son list_team_members, list_team_invitations, invite_team_member, revoke_team_invitation y remove_team_member. Para consultar miembros e invitaciones hay que ser el propietario de la cuenta o un copropietario, o tener el permiso Miembros del equipo; para revocar invitaciones o eliminar miembros hay que ser el propietario o un copropietario. Un miembro del equipo con permiso para invitar no puede elegir el acceso de la persona invitada: la invitación copia los permisos de quien invita. Las escrituras requieren una clave con el ámbito read_write, y una clave de API limitada a algunos proyectos recibe ERR_KEY_PROJECT_SCOPED (403) en todos los endpoints de equipo. Las invitaciones enviadas a través de la API y de MCP tienen un límite diario en el que también cuentan las revocadas; al alcanzarlo, se devuelve ERR_LIMIT_REACHED.

  59. 2026-10-12 (v1.58.0)

    Comprobación de versión en GEO Writer, validación más estricta de las ventanas de fechas de tráfico y suscripciones repetidas a webhooks. Los payloads de las tareas de GEO Writer ahora incluyen result_version, y tanto PATCH /intelligence_tasks/:id como la herramienta MCP update_intelligence_task_content lo aceptan como campo opcional. Si la tarea se ha regenerado después de que la leyeras, la edición se rechaza con el nuevo código de error ERR_STALE_CONTENT (409), no se guarda nada y error.meta.result_version contiene el token actual. Sin result_version, las ediciones se aplican como hasta ahora. GET /metrics/ai_traffic, GET /metrics/agent_traffic y las herramientas MCP get_ai_traffic y get_agent_traffic devuelven ERR_INVALID_PARAM (422) si range es inferior a 1 o la fecha from es posterior a to, en lugar de un resultado vacío. Volver a enviar el mismo proyecto, evento y URL a POST /webhooks devuelve la suscripción existente, salvo que se haya revocado la clave de API o la conexión OAuth que la creó; en ese caso, se sustituye por una suscripción nueva con un secreto nuevo.

  60. 2026-10-12 (v1.58.0)

    Novedades en la API de Search Console. El nuevo endpoint GET /search_console/rows y la herramienta MCP get_search_console_rows agrupan las filas por un máximo de tres dimensiones (por ejemplo, página y consulta, o fecha y página). start_row en los endpoints de consultas, páginas y filas permite leer más allá del máximo de 25.000 filas que devuelve Google, y aggregation_type (auto, byPage, byProperty) funciona en todos los endpoints de Search Console. Las respuestas REST ahora incluyen data_through; con output=csv, las cabeceras X-Data-Through y X-Truncated contienen la misma información. En MCP, los errores por indisponibilidad o cuota agotada de Google Search Console incluyen retry_after. GET /dimensions/projects/:id y get_project_details informan de la conexión de Search Console (search_console.status y property). REST y MCP interpretan la ventana de fechas de la misma forma: un range no válido devuelve ERR_INVALID_PARAM, y solo un from posterior a to devuelve ERR_INVALID_RANGE.

  61. 2026-10-10 (v1.57.0)

    Analítica web en directo (Growth+). Los nuevos endpoints GET /web_analytics/schema y POST /web_analytics/query, junto con las herramientas MCP get_web_analytics_schema y query_web_analytics, convierten LLM Pulse en un puente en directo y de solo lectura con el proveedor de analítica web conectado en la página «Tráfico de IA» (Google Analytics 4, Adobe Analytics o Customer Journey Analytics, Matomo, PostHog, Plausible o Piano). Quien hace la llamada escribe la consulta en el formato nativo del proveedor; siempre se usa la propiedad conectada, solo se ejecutan lecturas, las filas se limitan a 5000 y las consultas idénticas se guardan en caché durante 10 minutos. Nuevos códigos de error: ERR_WEB_ANALYTICS_NOT_CONNECTED (404), ERR_WEB_ANALYTICS_INVALID_QUERY (422, con el mensaje de validación del proveedor), ERR_WEB_ANALYTICS_ACCESS_REVOKED (403) y ERR_WEB_ANALYTICS_UPSTREAM (503 con Retry-After).

  62. 2026-10-10 (v1.57.0)

    Indicador de desglose truncado en Search Console. GET /search_console/summary y la herramienta MCP get_search_console_summary ahora devuelven breakdown_truncated: true cuando el desglose ha dejado filas fuera, por limit o por el máximo de 25.000 filas que devuelve Google. Con filters y sin dimension, los totales del resumen son la cifra completa que Google indica para ese filtro.

  63. 2026-10-07 (v1.56.0)

    Paridad entre REST y MCP. Estos parámetros de MCP ahora rechazan los valores no documentados en lugar de recurrir al valor por defecto (REST no cambia): sort, sort_dir y breakdown en get_prompt_summary, sort en get_top_sources, group_by y granularity en get_agent_traffic, granularity en get_ai_traffic y source_type en list_sources, que ahora distingue entre mayúsculas y minúsculas. get_ai_model_position_distribution acepta naver_ai y baidu_ai. Ahora hay más herramientas MCP de escritura que devuelven el code de error de REST. Se han reformulado algunos mensajes de error de REST y MCP; los códigos de error de REST y los estados HTTP no cambian. assign_prompt_tags ignora create_missing para los miembros del equipo que no pueden crear etiquetas, como en REST. start_project_draft acepta execute_prompts_immediately. POST /collections y create_collection ya no adjuntan los prompts que se están eliminando. PATCH /project_drafts/{id} acepta un objeto owned_media anidado y rechaza los campos desconocidos que contenga.

  64. 2026-10-07 (v1.56.0)

    Auditorías GEO. Un nuevo grupo, Auditorías GEO, mantiene una comprobación técnica de GEO sobre un dominio o una URL y la sigue ejecución tras ejecución. GET / POST /geo_audits listan las auditorías y crean una por tipo de auditoría, con cadencia única, semanal o mensual (semanal y mensual para agent_readiness y robots_txt); GET, PATCH y DELETE /geo_audits/{id} leen, reprograman, pausan o archivan una auditoría, y volver a crear una auditoría archivada restaura su historial. GET / POST /geo_audits/{geo_audit_id}/runs listan las ejecuciones e inician una ejecución manual (6 por auditoría en una hora móvil y 200 por cuenta al día), GET /geo_audits/{geo_audit_id}/runs/{sequence} y su ruta /findings devuelven el resultado completo y los resultados de cada comprobación, GET /geo_audits/{id}/comparison compara dos ejecuciones, GET / PATCH /geo_audits/{geo_audit_id}/issues listan las incidencias y aceptan o reabren una (una aceptación caduca cuando cambian las evidencias) y GET /geo_alerts lista las alertas que han generado las auditorías. Las auditorías recurrentes activas tienen un límite según el plan y, al superarlo, devuelven ERR_LIMIT_REACHED, igual que los límites de ejecuciones. Las nuevas herramientas MCP reflejan todos los endpoints: list_geo_audits, get_geo_audit, create_geo_audit, update_geo_audit, delete_geo_audit, compare_geo_audit_runs, list_geo_audit_runs, run_geo_audit, get_geo_audit_run, list_geo_audit_findings, list_geo_audit_issues, update_geo_audit_issue y list_geo_alerts. Las operaciones de escritura requieren una clave con ámbito de escritura y, para los miembros del equipo, el permiso correspondiente en Optimización GEO.

  65. 2026-10-04 (v1.55.0)

    Claves de API limitadas a proyectos. Ahora puedes limitar una clave de API a uno o varios proyectos al crearla, con el campo «Proyectos» de la página «Claves de API». La selección no se puede cambiar después, y las claves existentes siguen viendo toda la cuenta. Una clave limitada a algunos proyectos solo ve esos proyectos: GET /dimensions/projects y la herramienta MCP list_projects devuelven únicamente esos, cualquier otro ID, dominio o nombre de proyecto devuelve ERR_PROJECT_NOT_FOUND exactamente igual que un proyecto que no existe, y los listados de suscripciones de webhook y de estudios solo incluyen los de esos proyectos. GET /account y get_account_usage enumeran los proyectos en el nuevo campo api_key_project_ids. La creación de proyectos y el asistente de borradores de proyecto devuelven el nuevo código ERR_KEY_PROJECT_SCOPED (403), y sus herramientas MCP quedan fuera de tools/list. Al eliminar un proyecto, se quita de las claves limitadas a él, y una clave que se queda sin ningún proyecto se revoca.

  66. 2026-10-04 (v1.54.0)

    Integraciones con tiendas. Un nuevo grupo, Integraciones con tiendas, da soporte a la aplicación de LLM Pulse para Shopify: GET /store_connection asocia el dominio de una tienda a un proyecto, PUT /ai_orders y GET /ai_orders guardan y devuelven los pedidos que llegaron a la tienda desde asistentes de IA, y GET / POST /catalog_prompt_suggestions, con /accept y /reject, convierten los productos del catálogo en prompts de comprador para monitorizar. La herramienta MCP get_ai_orders lee los pedidos guardados. POST /intelligence_tasks también acepta task_type=product_listing con un objeto product y devuelve textos para la página de producto listos para aplicar; ese tipo solo está disponible a través de la API. Las filas de producto de GET /dimensions/shopping incluyen ahora best_rank, models y last_seen_at. Nuevos códigos de error: ERR_INTEGRATION_UNAVAILABLE (403, cuentas con un portal de marca blanca o un embed) y ERR_GENERATION_FAILED (502, reintenta la solicitud).

  67. 2026-10-03 (v1.53.0)

    Negocios locales. El nuevo endpoint GET /dimensions/local_businesses y la herramienta MCP list_local_businesses enumeran las tiendas, restaurantes y servicios que las respuestas de IA nombran para tus prompts, con una fila por cada negocio y dirección, junto con apariciones, prompts, valoración media, posición media, número de reseñas y si es tuyo o de un competidor monitorizado, además de un bloque totals. Ambos aceptan los filtros de listado estándar, owned, query, order y direction, y el endpoint admite output=flat y output=csv. Disponible en todos los planes; los miembros del equipo necesitan acceso de lectura a «Negocios locales».

  68. 2026-10

    Los enlaces a entidades de Google se agrupan aparte. Los enlaces de Google AI Mode y Google AI Overviews que apuntan al visor de entidades de Google (google.com/searchviewer/...) conservan su url, pero ahora indican google-entity.invalid como domain y host en lugar de google.com, en GET /metrics/top_sources, GET /dimensions/sources, los endpoints de inteligencia de citaciones y las exportaciones. Nunca cuentan como citaciones propias ni de competidores, por lo que ya no se atribuyen a ningún proyecto ni competidor con un dominio de Google. En la app, el grupo aparece como «Google (entidad)».

  69. 2026-09-30

    Las claves de API dejan de funcionar por debajo de Scale. Las claves de API son una función del plan Scale y ahora dejan de funcionar mientras la cuenta esté en un plan inferior a Scale, por ejemplo tras una bajada de plan: toda solicitud REST y toda solicitud a /mcp hecha con una clave devuelve ERR_PLAN_REQUIRED (403). Las claves no se revocan: siguen apareciendo en la lista, se pueden seguir revocando y funcionan de nuevo en cuanto la cuenta vuelve a Scale o a un plan superior. MCP mediante OAuth no se ve afectado.

  70. 2026-09-29 (v1.52.0)

    Edita los archivos de los informes de llms.txt a través de la API. PATCH /technical_geo_reports/:id/content sustituye los archivos llms.txt y llms-full.txt de un informe de llms.txt completado: envía report_type=llms_txt, un objeto edits con el nuevo texto completo de llms_txt, de llms_full_txt o de ambos, y el content_version que leíste por última vez. El detalle del informe devuelve ahora result_data.content_version. Un content_version desactualizado o ausente, un archivo en blanco, un archivo de más de 200.000 caracteres o un informe que no se ha completado devuelve ERR_INVALID_PARAM, y la respuesta de la actualización añade changed_files. El primer cambio guarda los archivos generados en original_llms_txt_content y original_llms_full_txt_content, y POST /technical_geo_reports/:id/revert_content los restaura. Dos herramientas MCP replican los endpoints: update_technical_geo_report_content y revert_technical_geo_report_content. Las dos operaciones de escritura necesitan una clave de API con ámbito de lectura y escritura y, en el caso de los miembros del equipo, permiso de creación en Optimización GEO.

  71. 2026-09-29 (v1.52.0)

    Idioma de salida automático para los informes de llms.txt. En POST /technical_geo_reports y create_technical_geo_report, output_language_code también acepta auto, que mantiene los archivos llms.txt en el idioma del propio sitio web. La respuesta de la creación repite auto y, a partir de entonces, el informe devuelve output_language_code: null.

  72. 2026-09-28 (v1.51.1)

    Cuota de informes GEO técnicos. POST /technical_geo_reports y create_technical_geo_report ahora contabilizan cada informe creado correctamente como una unidad diaria. La opción «Ejecutar todos los informes» intenta crear nueve informes y solo se inicia cuando quedan al menos nueve unidades diarias; los informes que no se crean no consumen ninguna unidad. El número de unidades diarias asignadas varía según la cuenta.

  73. 2026-09-28 (v1.51.0)

    Los esquemas de respuesta coinciden con lo que envía la API. La API sigue enviando exactamente las mismas respuestas; lo que cambia es que el documento OpenAPI y los SDK oficiales ahora las describen correctamente. Los puntos de GET /metrics/timeseries, GET /metrics/summary y de la serie over_time de GET /metrics/sov (TimeseriesPoint) contienen una fecha de calendario como 2026-09-01 (en la granularidad semanal y mensual, el primer día del período), no una marca de tiempo, y value es null en las métricas de tasa, de posición y de sentimiento los días sin respuestas. Antes, los SDK de Go, Java, Kotlin, Rust y C# no podían decodificar estos puntos. En los SDK tipados, date es ahora un tipo de fecha, por ejemplo LocalDate en Java y Kotlin, DateOnly en C#, NaiveDate en Rust, date en Python y una cadena en Go. Los campos que la API puede enviar como null, un valor que antes rechazaba el SDK de C#, se declaran ahora anulables: brand_name, url, description, business_model, target_audience, brand_voice, goals, google_play_id y app_store_id en GET /dimensions/projects/{id}; matching_names, google_play_id, app_store_id y color en GET /dimensions/competitors/{id}; domain en el actor del proyecto de GET /metrics/timeseries, GET /metrics/summary y GET /metrics/sov, y en la fila de la propia marca de GET /dimensions/competitors, cuando el proyecto no tiene URL; response, executed_at, success, duration_ms y fan_out_queries en GET /answers/{id}; result_data en las tareas de GEO Writer; y last_delivered_at en las suscripciones de webhook. duration_ms es un número con un decimal, no un entero. En el SDK de Go, los campos de esta lista que no son arrays usan ahora los tipos envoltorio Nullable*.

  74. 2026-09-28 (v1.50.1)

    Paridad en el acceso al análisis de sentimiento. GET /sentiments y GET /dimensions/sentiments ahora exigen el plan Growth. Las herramientas MCP correspondientes aplican el mismo requisito del plan Growth y devuelven ERR_PLAN_REQUIRED ante llamadas directas desde cuentas con planes inferiores.

  75. 2026-09-28 (v1.50.0)

    Configuración de proyectos con menos llamadas. POST /projects y la herramienta MCP create_project aceptan collections, una lista de {name, prompts} que crea etiquetas de prompts junto con el proyecto y etiqueta por su texto los prompts de la misma solicitud, y la respuesta añade collections y same_domain_projects (proyectos del mismo dominio que ya puedes ver; la creación nunca se bloquea). industry acepta una clave o un array al crear, en los borradores y al actualizar, y una clave desconocida ahora enumera las válidas. PATCH /projects/:id y update_project aceptan name. Los períodos de GET /metrics/sov añaden confidence y margin_of_error, además de un sample de nivel superior. GET /account y get_account_usage añaden plan_name. Solo MCP: get_sov admite view=compact y list_prompts admite fields.

  76. 2026-09

    Código de plan requerido en las herramientas MCP restringidas. Una llamada directa a tools/call con una herramienta que tu plan no incluye devuelve ahora code: "ERR_PLAN_REQUIRED" junto a error, el mismo código que devuelven los endpoints REST cuando falta el plan necesario. El texto de error no cambia.

  77. 2026-09 (v1.49.0)

    Las menciones en las páginas se leen por proyecto. En GET /citation_intelligence/groups, GET /citation_intelligence/urls/{url_sha256} y /content, los campos de menciones en la página, incluidos los recuentos de menciones por dominio y por host y el filtro content_gap, describen ahora el análisis de la página citada para el proyecto de la solicitud. Una página que todavía no se ha analizado para el proyecto, incluso si se guardó antes de que el proyecto la citara, devuelve null en brand_mentioned y competitor_mentioned en lugar de false, además de content_gap_status: mentions_not_processed y page_cache.mentions_processed: false; los recuentos de menciones de un grupo son null cuando no se ha analizado ninguna de sus páginas. La misma regla se aplica a page_details en GET /answers/{id}, a mention_filter en GET /dimensions/sources y a las herramientas MCP correspondientes. mentions_not_processed ya se devolvía antes de esta versión y ahora está documentado.

  78. 2026-09 (v1.48.0)

    Enlaces a la app. Las respuestas (GET /answers, GET /answers/{id}, GET /dimensions/prompt_executions), los prompts (GET /dimensions/prompts, GET /metrics/prompt_summary) y los informes GEO técnicos (GET /technical_geo_reports, GET /technical_geo_reports/{id}) ahora devuelven app_url, el enlace que abre el registro en la app. POST /technical_geo_reports devuelve app_urls, organizados por tipo de informe, con un enlace por cada informe creado. Cada enlace termina en ?project_id=, por lo que se abre en ese proyecto para cualquier usuario que tenga acceso a él. Las herramientas MCP devuelven los mismos enlaces.

  79. 2026-09 (v1.47.0)

    Idioma de salida y cambios manuales en llms.txt. POST /technical_geo_reports y la herramienta MCP create_technical_geo_report aceptan output_language_code (ISO 639-1, por defecto el idioma del proyecto) para el informe de llms.txt del paquete. Los resúmenes de los informes exponen output_language_code, y el result_data de un informe de llms.txt completado añade manually_edited_at, original_llms_txt_content, original_llms_full_txt_content y metadata.output_language_code: cuando los archivos se han editado en la app, llms_txt_content y llms_full_txt_content devuelven el texto editado.

  80. 2026-09 (v1.46.0)

    El parámetro filters de Search Console ya se puede usar desde los SDK oficiales. Acepta toda la lista como un único valor JSON, filters=[{"dimension":"page","operator":"contains","expression":"/blog/"}], porque un array de objetos no tiene ninguna representación como parámetro de consulta que un cliente generado pueda producir. La codificación con corchetes existente, filters[][dimension]=page, no cambia y sigue funcionando.

  81. 2026-09 (v1.45.0)

    Los filtros de modelos ahora aceptan naver_ai y baidu_ai para las cuentas que tengan habilitados esos complementos de autoservicio.

  82. 2026-09

    Compatibilidad con directorios MCP. Las descripciones de las herramientas ahora se limitan a su propia operación, parámetros, límites y efectos. Se han eliminado la orquestación entre herramientas y las instrucciones sobre el comportamiento del modelo. Las guías de análisis siguen disponibles mediante la función de prompts MCP que activa el usuario, pero ya no se ofrecen a través de get_analysis_playbook, porque una herramienta no debe inyectar instrucciones de comportamiento de forma dinámica.

  83. 2026-09 (v1.44.0)

    Las URL citadas conservan sus métricas de citaciones cuando el contenido de la página no está disponible. Si se desconocen las menciones de una página, ahora se devuelve null; content_gap_status incluye content_unavailable. Los resultados de rastreo vacíos ya no aparecen como páginas analizadas. Los estados 404 y 410 observados siguen visibles.

  84. 2026-09

    Códigos legibles por máquina en los errores de las herramientas MCP. Una llamada tools/call fallida mantiene isError: true, y su texto lleva ahora code junto a error siempre que el estado tenga un equivalente REST, con el mismo valor que devuelve el endpoint REST: ERR_PROJECT_NOT_FOUND, ERR_INVALID_PARAM, ERR_INVALID_RANGE, los tres códigos de Search Console (ERR_SEARCH_CONSOLE_NOT_CONNECTED, ERR_SEARCH_CONSOLE_ACCESS_REVOKED, ERR_SEARCH_CONSOLE_UPSTREAM) y ERR_AI_TRAFFIC_NOT_CONNECTED / ERR_AGENT_TRAFFIC_NOT_CONNECTED. El texto de error no cambia.

  85. 2026-09

    Webhook para los cambios manuales de GEO Writer (v1.43.0). Un nuevo tipo de evento, intelligence_task.updated, se dispara cuando el texto de una tarea completada se edita a mano o se restaura a la versión de la IA. Los payloads de los dos eventos de GEO Writer ahora incluyen manually_edited_at, que es null en una tarea que nadie ha editado y en una tarea que se acaba de restaurar. Suscríbete a él con POST /webhooks igual que a cualquier otro evento, y GET /webhooks/sample/intelligence_task.updated devuelve payloads de ejemplo. Los conectores de Zapier, Make y n8n lo exponen como un nuevo disparador.

  86. 2026-09

    Edita el resultado de GEO Writer una vez generado (v1.42.0). PATCH /intelligence_tasks/:id edita directamente el texto de una tarea completada: envía un objeto edits cuyas claves son rutas separadas por puntos dentro de result_data (por ejemplo, sections.0.content o title) y cuyos valores son el texto de sustitución. Solo se pueden cambiar los campos de texto que ya existen; una ruta que no se resuelve, un title en blanco o un valor de más de 20.000 caracteres devuelve ERR_INVALID_PARAM. El primer cambio guarda una copia del resultado generado y POST /intelligence_tasks/:id/revert lo restaura. Los objetos de tarea incorporan manually_edited_at (listado y detalle) y edited_by_user_id (detalle), y la respuesta de la actualización añade changed_paths. Dos herramientas MCP replican los endpoints: update_intelligence_task_content y revert_intelligence_task_content. Las dos operaciones de escritura necesitan una clave de API con ámbito de lectura y escritura y, en el caso de los miembros del equipo, permiso de edición en GEO Writer.

  87. 2026-09

    Filtros de prompts para la cuota de menciones por dominio de origen (v1.42.0). GET /citation_intelligence/mentions_by_domain y la herramienta MCP get_mentions_by_citing_domain ahora aceptan brand_kind (brand, brand_other o non_brand) y aplican este filtro al universo de respuestas del proyecto junto con los filtros de modelo, país, idioma y colección. Si se omite, se conserva el comportamiento anterior para todos los tipos de marca. El endpoint REST rechaza los valores no válidos con ERR_INVALID_PARAM; la herramienta MCP devuelve un error de validación.

  88. 2026-09

    Dos correcciones en Search Console (v1.41.0). Un valor desconocido de dimension ahora devuelve ERR_INVALID_PARAM en lugar de descartarse silenciosamente, y los valores del desglose por page y query ya no se convierten a minúsculas: se conservan tal y como los devuelve Google, porque la URL de una página distingue entre mayúsculas y minúsculas.

  89. 2026-09

    Los endpoints de Search Console ya entienden todo el vocabulario de consulta de Google (v1.41.0). Los cuatro endpoints /search_console/* y sus herramientas MCP aceptan tres parámetros nuevos de la consulta de Search Analytics que expone Google: search_type (web, image, video, news, discover, googleNews), filters (un array de objetos {dimension, operator, expression} que se combinan con AND; dos de los seis operadores usan expresiones regulares RE2) y data_state (final por defecto, o all para incluir los días más recientes que todavía están incompletos). GET /search_console/summary ahora admite el desglose por page, query y searchAppearance, además de por country y device, con el número de filas acotado por limit (1000 por defecto y también como máximo). El rango de fechas máximo se amplía de 400 a 487 días, que son los 16 meses de retención que aplica Google.

  90. 2026-09

    Correcciones en los rangos de fechas y en la agregación (v1.40.0). Un to que solo indica la fecha (por ejemplo to=2026-09-01) ahora abarca todo ese día. Antes se resolvía a las 00:00 de ese día, por lo que el último día quedaba excluido y cada rango cubría un día menos de lo solicitado. Los clientes que ya envían una marca de tiempo completa no se ven afectados. Los períodos semanales y mensuales de GET /reports/ai_model_insights/* ahora se calculan dividiendo los totales del propio período, en lugar de promediar los porcentajes diarios, de modo que un día con mucha actividad ya no cuenta lo mismo que uno con poca. Las medias de posición ponderan cada fila por el número de posiciones que contiene, en lugar de tratar todas las filas por igual. Las filas eliminadas de un proyecto ya no se contabilizan en menciones, citaciones, fuentes ni sentimientos en ningún endpoint de lectura.

  91. 2026-09

    Moneda en las filas de comercios y productos. GET /dimensions/shopping con view=merchants ahora devuelve un campo currency que indica la moneda en la que se expresan min_price, max_price y avg_price. Las respuestas de IA indican los precios de cada mercado en la moneda de ese mercado y no incluyen ningún campo de moneda propio, así que un comercio que vende en más de una informa ahora de la moneda que usan la mayoría de sus precios, en lugar de calcular una media entre varias, y un rango nunca mezcla dos monedas distintas. Es null cuando ningún precio incluía una moneda que pudiéramos identificar. En view=products, currency indica ahora la moneda en la que se expresa max_price, y un campo nuevo, currency_count, indica en cuántas monedas tenía precio ese producto: si es mayor que 1, la fila informa de su oferta más cara y min_price puede estar en otra moneda. totals.avg_price se calcula ahora dentro de una sola moneda, en lugar de hacer una media entre varias, y totals.avg_price_currency indica cuál es. No se añaden endpoints ni códigos de error nuevos.

  92. 2026-09

    Detalles de error más claros y un filtro de modelo más estricto para las respuestas (v1.38.0). Los errores con detalles en error.meta.message ahora también incluyen esos detalles en error.message. error.meta no cambia. Los errores sin detalles siguen usando identificadores de mensaje predeterminados, como missing_authorization. Basa la gestión de los errores en error.code, nunca en el texto del mensaje. GET /answers ahora rechaza con 422 ERR_INVALID_PARAM cualquier valor de model que corresponda a un modelo que la cuenta no monitoriza, en lugar de ignorar el filtro. Las descripciones de ERR_LIMIT_REACHED y ERR_QUOTA_EXCEEDED ahora enumeran todos los límites que cubre cada código.

  93. 2026-09

    Claves revocadas y respuestas de ámbito de escritura (v1.37.1). Una clave de API revocada recibe ahora 403 ERR_REVOKED_API_KEY, tal y como está documentado, en lugar de 401 ERR_INVALID_API_KEY. La clave de un miembro del equipo se rechaza del mismo modo mientras el propietario de la cuenta esté bloqueado o pendiente de eliminación. POST /intelligence_tasks, PATCH /project_drafts/:id y POST /project_drafts/:id/finalize documentan ahora la respuesta 403 ERR_INSUFFICIENT_SCOPE que recibe una clave de solo lectura, como ya hacen las demás operaciones de escritura.

  94. 2026-09

    Códigos de error de Search Console y contrato de lecturas en directo (v1.37.0). Cuando las lecturas en directo están habilitadas, los cuatro endpoints /search_console/* devuelven ERR_SEARCH_CONSOLE_ACCESS_REVOKED (403) si se ha revocado el acceso a Google; vuelve a conectar la propiedad en Preferencias > Configuración del proyecto > Conexiones de datos. Devuelven ERR_SEARCH_CONSOLE_UPSTREAM (503) cuando Google Search Console no está disponible o se ha superado la cuota; espera el número de segundos indicado en Retry-After antes de volver a intentarlo. Las herramientas MCP notifican estas situaciones como errores de herramienta. La cabecera de respuesta X-Search-Console-Backend identifica las lecturas como stored o live. Las lecturas de datos sincronizados utilizan esos datos sin contactar con Google. Para las consultas y las páginas, total cuenta las claves distintas disponibles para el intervalo: las claves de las filas diarias sincronizadas en las lecturas de datos sincronizados, o hasta 25.000 filas obtenidas mediante una única solicitud a Google en las lecturas en directo. Las respuestas de las lecturas en directo incluyen truncated: true cuando se alcanza ese límite. La ordenación y la paginación se aplican al conjunto disponible.

  95. 2026-09

    Coincidencia de URL de citaciones por competidor (v1.36.0). POST /competitors y PATCH /competitors/:id aceptan ahora el campo opcional citation_match_mode, con los valores domain, host o path_prefix. citation_match_path es obligatorio cuando se usa path_prefix. PATCH /competitors/:id también permite cambiar domain, que guarda el dominio o el host exacto del sitio web usado por la regla. Las respuestas de lectura de competidores incluyen los campos de la regla. Al cambiar el sitio web o cualquier ajuste de la regla, las citaciones históricas se vuelven a clasificar en segundo plano para que las métricas históricas y la atribución de fuentes reflejen la nueva configuración.

  96. 2026-08 (finales)

    Referencia pública de la API dividida en una página por recurso. https://llmpulse.ai/api-docs ahora cubre los primeros pasos (claves, primera llamada, uso de la cuenta) y enlaza a una página por recurso: /api-docs/projects, /api-docs/metrics, /api-docs/prompts, /api-docs/webhooks, /api-docs/core-concepts (filtros comunes, formatos de salida, códigos de error), /api-docs/integrations (fragmentos de código, Postman, MCP), /api-docs/oauth y el resto, accesibles todas desde cualquiera de ellas. Los enlaces antiguos como /api-docs#webhooks se redirigen a la página que ahora contiene esa sección. llms.txt indica la URL de documentación de cada grupo de recursos junto a sus endpoints. Los usuarios de Scale+ con la sesión iniciada siguen teniendo la referencia completa en una sola página, con el playground en vivo, dentro de la app en Claves de API. Ningún endpoint, parámetro, payload ni código de error ha cambiado.

  97. 2026-08 (finales)

    Enums del perfil de proyecto renovados (v1.35.0). business_model ahora describe una sola cosa, cómo vende una marca, en lugar de mezclar canal y sector. Las claves aceptadas son B2B_SAAS, B2C_SUBSCRIPTION, ECOMMERCE, RETAIL, MARKETPLACE, LEAD_GENERATION, SERVICES, ENTERPRISE_SOFTWARE, MEDIA_ADVERTISING, EDUCATION_TRAINING, NONPROFIT_PUBLIC y OTHER. Las claves retiradas (B2B_CLOUD_SERVICES, B2C_SMART_HOME, B2C_STREAMING, B2C_GAMING) se reasignan a su valor actual más próximo en POST /projects y PATCH /projects/:id en lugar de rechazarse, así que las integraciones existentes siguen funcionando; las claves realmente desconocidas continúan devolviendo ERR_INVALID_PARAM. industry acepta ahora 34 claves en lugar de 19, con sectores que antes tenían que conformarse con OTHER. Los valores almacenados se migraron, de modo que un proyecto creado antes de este cambio devuelve su clave nueva al leerlo. El campo de texto libre complementario business_model_other ya forma parte de la API: envíalo junto a business_model: OTHER en POST /projects o PATCH /projects/:id (y en las herramientas MCP create_project y update_project) y se devuelve en la carga del proyecto. Con cualquier otra clave devuelve ERR_INVALID_PARAM, y se borra automáticamente cuando el modelo de negocio deja de ser OTHER.

  98. 2026-08 (finales)

    Filtros analíticos con varios valores (v1.34.0). collection_id, country_code, language_code y prompt_type ahora aceptan un valor o una lista separada por comas en los endpoints de métricas, dimensiones, respuestas, inteligencia de citaciones y AI Model Insights que ya admiten esos filtros. GET /sentiments también acepta varios valores de analysis. Los valores de un mismo filtro se combinan con OR, mientras que los filtros distintos se combinan con AND. Las solicitudes con un solo valor siguen funcionando sin cambios, y las herramientas MCP correspondientes usan el mismo contrato.

  99. 2026-08 (finales)

    Recuperación de informes GEO técnicos (v1.33.0). GET /technical_geo_reports lista los informes por project_id y report_type, mientras que GET /technical_geo_reports/:id devuelve el estado actual y el result_data completo cuando finaliza. Las nuevas herramientas MCP list_technical_geo_reports y get_technical_geo_report ofrecen el mismo acceso, y create_technical_geo_report ahora devuelve los identificadores de los informes e indica a los clientes que consulten su estado. Claude y otros clientes MCP ya pueden ejecutar, esperar y leer informes GEO técnicos en el mismo chat, sin tener que copiarlos y pegarlos.

  100. 2026-08 (finales)

    Las no-respuestas centinela se exponen como no_result. Cuando no se puede recopilar ninguna respuesta para un prompt tras agotar los reintentos, el texto almacenado es un marcador y no una respuesta real de IA; esas filas ya quedaban excluidas de todas las métricas de la plataforma, pero eran indistinguibles a través de la API. Los elementos de GET /answers y GET /answers/:id ahora incluyen un booleano no_result, y GET /answers (junto con la herramienta MCP list_answers) acepta un filtro opcional no_result: false = solo respuestas reales (recomendado al calcular tus propias métricas), true = solo centinelas, omitido = ambas (la forma anterior no cambia).

  101. 2026-08 (mediados)

    Actualización del perfil de proyecto y Brand Book al crear (v1.31.0). El nuevo endpoint PATCH /api/v1/projects/:id actualiza el perfil de un proyecto después de su creación, con los mismos campos que en Configuración del proyecto: brand_name, description, industry, business_model, target_audience, brand_voice, goals, primary_products y matching_names. Los campos del Brand Book (description, industry, brand_voice, target_audience) alimentan a GEO Writer, las sugerencias de prompts y las Recomendaciones, de modo que los sistemas externos puedan mantener el contexto de marca sincronizado mediante programación. Envía solo los campos que quieras cambiar; los campos desconocidos devuelven ERR_INVALID_PARAM. Cambiar matching_names (una lista de sustitución completa) vuelve a ejecutar el emparejamiento de menciones/citaciones sobre el historial del proyecto en segundo plano (rematching: true; se rechazan más ediciones mientras se ejecuta), y un cambio de brand_name solo se aplica a ejecuciones futuras. POST /api/v1/projects (y la herramienta MCP create_project) ahora acepta business_model, target_audience, brand_voice, goals y primary_products en el momento de la creación. La herramienta MCP existente update_project y el nuevo endpoint REST comparten exactamente el mismo servicio. Requiere una clave read_write; los miembros del equipo necesitan el permiso de actualización de Proyectos.

  102. 2026-08 (mediados)

    Correcciones de filtros en los nuevos listados (v1.30.0). Los filtros que estaban documentados pero se ignoraban silenciosamente ahora funcionan. store (medios propios) y status (hilos de Reddit) llegan a la consulta en lugar de descartarse, así que store=app_store y status=archived dejan de devolver filas sin filtrar. owned=true se aplica a GET /dimensions/shopping?view=merchants, que antes devolvía todos los comercios incluidos los competidores, y a GET /dimensions/owned_media?provider=mobile_apps, cuyas filas ahora incluyen el indicador yours que ya devolvía el resto de proveedores. En ese mismo proveedor, total es ahora el recuento completo del ranking (con un tope de 500) en lugar del tamaño de la página, que hacía creer a los clientes que paginan que no había nada después de la página 1. direction=desc ahora se aplica a las ordenaciones de texto de GET /dimensions/query_fan_outs (order=query_text, order=prompt_text), que siempre respondían en orden ascendente; ambos ahora se ordenan por defecto en orden descendente, como el resto de ordenaciones. El parámetro view de un endpoint por fin puede combinarse con output=flat o output=csv (por ejemplo ?view=merchants&output=csv), algo que antes devolvía ERR_INVALID_PARAM, y las respuestas planas devuelven view, provider y store. GET /account ahora informa del límite de solicitudes de la clave con la que se ha llamado en lugar del predeterminado, y su bloque subscription se limita a quienes pueden acceder a Planes y facturación. Los estudios se limitan a los proyectos a los que puede acceder quien llama.

  103. 2026-08 (mediados)

    Seis nuevas superficies de producto (v1.29.0). Compras y emplazamientos de pago dentro de las respuestas de IA: GET /api/v1/dimensions/shopping y GET /api/v1/dimensions/ads (Scale+). Medios propios y comunidades: GET /api/v1/dimensions/owned_media (YouTube, Instagram, Facebook, TikTok, LinkedIn, tiendas de aplicaciones) y GET /api/v1/dimensions/reddit (Growth+). Informes analíticos multimodelo: GET /api/v1/reputation/reports, GET /api/v1/reputation/reports/:id, GET /api/v1/studies, GET /api/v1/studies/:id y GET /api/v1/studies/:id/reports/:report_id (requiere monitorización de reputación). Las rutas de shopping y ads son deliberadamente independientes del modelo en lugar de llevar el nombre de un asistente concreto, ya que los datos subyacentes siempre han llevado la enumeración estándar de modelos. Nueve herramientas MCP equivalentes: list_shopping_products, list_ads, list_reddit_citations, list_owned_media, list_reputation_reports, get_reputation_report, list_studies, get_study, get_study_report. Los nueve endpoints admiten output=flat y output=csv.

  104. 2026-08

    Query Fan Out en la API y en MCP (v1.28.0). El nuevo endpoint GET /api/v1/dimensions/query_fan_outs expone las subconsultas que un modelo emitió realmente al responder a tus prompts monitorizados, que a menudo no coinciden con la redacción que escribiste. view=query (el valor por defecto) devuelve una fila por subconsulta distinta con su número de apariciones y su cuota; view=prompt devuelve una fila por prompt con el número de subconsultas distintas que generó. Acepta los filtros de prompt estándar además de query (búsqueda por subcadena), order, direction y output para salida plana/CSV, y un orden que no pertenezca a la vista elegida devuelve ERR_INVALID_PARAM. La herramienta MCP equivalente es list_query_fan_outs. El fan-out lo reporta principalmente ChatGPT, así que un resultado vacío suele significar que los modelos incluidos no lo exponen, y no que no se haya buscado nada. El endpoint devuelve solo la agregación: para obtener una variación entre períodos, llámalo dos veces con from/to explícitos. Ambas superficies están restringidas por el mismo permiso de miembro del equipo Query Fan Out que la página de la aplicación.

  105. 2026-08

    Uso de la cuenta, cabeceras de límite de solicitudes y glosario MCP (v1.27.0). El nuevo endpoint GET /api/v1/account devuelve el plan, la cadencia de seguimiento, el período de suscripción, el consumo de cuota (prompts, proyectos, competidores por proyecto, tareas mensuales de GEO Writer, miembros del equipo) y los límites de solicitudes aplicables a tu clave, de modo que una integración pueda ver su presupuesto restante en lugar de descubrir el tope al chocar con él. Una cuota ilimitada devuelve limit y remaining como null con unlimited: true. Los límites se resuelven a través del propietario de la cuenta, así que un miembro del equipo ve la capacidad que le corresponde. La herramienta MCP equivalente es get_account_usage, disponible en todos los planes. Todas las respuestas de /api/v1 incluyen ahora X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset (la respuesta 429 ERR_RATE_LIMITED las incluye junto a Retry-After), y los dos presupuestos, 300 solicitudes/minuto globales y 60/minuto para escrituras, ahora están documentados en lugar de ser implícitos. El servidor MCP también expone un nuevo recurso llmpulse://glossary que define cada métrica, unidad, dimensión y advertencia de interpretación (visibilidad frente a AI Visibility Score, denominadores del Share of Voice, enfoque de marca, períodos parciales, muestras pequeñas), de modo que un asistente pueda leer las definiciones en lugar de deducirlas. Ningún endpoint, parámetro, carga útil ni código de error existente ha cambiado.

  106. 2026-08

    Agent Readiness se suma al paquete GEO técnico (v1.26.0). POST /technical_geo_reports ahora crea también un informe agent_readiness que puntúa el grado de preparación del dominio para los agentes de IA, por lo que created_reports y report_ids incluyen la nueva clave agent_readiness (9 informes por ejecución en lugar de 8). La herramienta MCP create_technical_geo_report crea el mismo paquete. Las claves existentes y las formas de respuesta no cambian.

  107. 2026-08

    Seguimiento semanal de Grok y DeepSeek. Los valores grok y deepseek del filtro model ahora devuelven datos reales de visibilidad semanal en las cuentas con esos complementos habilitados, en todos los endpoints de métricas, dimensiones, respuestas, sentimientos y citaciones (antes se aceptaban como valores de filtro, pero nunca coincidían con ninguna ejecución). Las respuestas de Grok provienen de su búsqueda web nativa, por lo que incluyen fuentes y citaciones como cualquier otro modelo. Las respuestas de DeepSeek no incluyen fuentes ni citaciones: DeepSeek no ofrece búsqueda web, por lo que sus respuestas reflejan el conocimiento propio del modelo. Las filas de DeepSeek devuelven citations: 0 y una lista de fuentes vacía por diseño; visibility, mention_rate, el Share of Voice y el sentimiento se comportan con normalidad. Las formas de respuesta no cambian, y los modelos que el usuario de una clave de API no ha habilitado siguen omitiéndose silenciosamente.

  108. 2026-08

    Tarjeta pública de servidor MCP. El nuevo endpoint GET /api/v1/mcp/server-card devuelve una Model Context Protocol Server Card que describe el endpoint, su transporte HTTP con streaming, las versiones de protocolo que acepta y la cabecera Authorization que debe enviar un cliente. No requiere autenticación, porque es el documento que un cliente lee antes de disponer de una credencial y no contiene ninguna credencial en sí. La tarjeta se anuncia en el catálogo Agentic Resource Discovery en /.well-known/ai-catalog.json, cuya entrada MCP ahora utiliza el tipo de medio correcto application/mcp-server-card+json y apunta a la tarjeta en lugar de al endpoint de transporte. La tarjeta no se sirve intencionadamente en /.well-known/mcp/server-card.json: la especificación MCP descarta esa ubicación. LLM Pulse también publica ahora un catálogo de API en /.well-known/api-catalog (RFC 9727) y un índice de habilidades de agentes en /.well-known/agent-skills/index.json.

  109. 2026-08

    Referencia de API reorganizada por recurso. La documentación en /api-docs, las especificaciones OpenAPI y Swagger, el índice legible por máquina llms.txt y la colección de Postman ahora agrupan cada endpoint bajo el recurso al que pertenece (Projects, Metrics, Competitors, Prompts, Collections & Tags, Answers, Mentions & Citations, Sentiments, Sources & Citation Intelligence, AI Model Insights, AI & Agent Traffic, Search Console, Recommendations, GEO Writer, Technical GEO Reports, Annotations, Webhooks, MCP), mostrando sus lecturas y escrituras juntas y en el mismo orden en todas las superficies. La lista de etiquetas de OpenAPI ahora declara todas las etiquetas en uso: faltaban Projects, Competitors, Collections, Annotations, Reports y OAuth, por lo que Swagger UI y Redoc listaban esos endpoints al final sin descripción. POST /projects y el asistente /project_drafts, antes ausentes de llms.txt, ahora aparecen listados, y la colección de Postman cubre todos los endpoints en lugar de las dos carpetas originales. Ningún endpoint, parámetro, payload ni código de error ha cambiado.

  110. 2026-08

    Amazon Rufus ahora es Alexa for Shopping. Amazon ha renombrado su asistente de compras, por lo que el modelo se denomina Alexa for Shopping en la aplicación, el sitio web y la documentación. Nada cambia para las integraciones: el valor de la API sigue siendo amazon_rufus en el filtro model y en todas las respuestas, y los datos históricos no se modifican. No se requiere ninguna acción.

  111. 2026-08

    CLI nativo en Rust y SDK oficiales. La CLI v2 sustituye la implementación en JavaScript por binarios nativos para macOS, Linux y Windows, conservando el formato existente de configuración y perfiles. Los comandos tipados cubren las 71 operaciones REST, con salida en JSON, tabla y CSV, además de un comando REST directo. Ahora se mantienen clientes oficiales generados para TypeScript, Python, Go, Java, Kotlin, C#, PHP, Ruby, Rust, Swift, Dart y R. El documento OpenAPI utiliza campos anulables compatibles con OpenAPI 3.0 para que todos los clientes puedan generarse con el mismo toolchain fijado.

  112. 2026-08

    Anotaciones automáticas y acceso en todos los planes (v1.23.0). Las anotaciones ya están disponibles en todos los planes, incluidos Starter y las cuentas de prueba. Las filas devueltas por GET /annotations y la herramienta MCP list_annotations incluyen origin: manual, automation, geo_test o platform. Las anotaciones automáticas de proyecto registran los cambios diarios en el conjunto de prompts, los cambios en los modelos de IA habilitados y los cambios en la frecuencia de monitorización. Los campos existentes y el comportamiento de escritura no cambian.

  113. 2026-08

    Tamaños de muestra en Share of Voice y agrupación por modelo (v1.22.0). GET /metrics/sov ahora devuelve un array periods con, por segmento, el total de mentions sobre el que se calcularon las cuotas (el tamaño de la muestra: un segmento con 1-3 menciones se lee como 100/50/33.33 y debe tratarse como muestra pequeña) y un indicador partial que marca los segmentos que aún están recopilando datos o que quedan recortados por la ventana solicitada. Cada fila current incluye también deltas precalculados: previous_share (último segmento completo) y avg_share (media de los segmentos completos con datos; los segmentos parciales quedan excluidos). Los campos existentes no cambian. La herramienta MCP get_sov incorpora group_by=model, que devuelve una comparación compacta de cuota por modelo en cada llamada (añade include_series=true para las series de tendencia por modelo), todas las herramientas MCP con ámbito de proyecto aceptan ahora el dominio del proyecto o el nombre exacto o el nombre de marca en project_id además del id numérico, las respuestas de métricas MCP incluyen un enlace de fuente app_url y las herramientas de métricas MCP muestran widgets interactivos en los hosts que los admiten: donut de Share of Voice, tarjeta resumen de visibilidad, gráfico de líneas de métricas a lo largo del tiempo (get_timeseries) y dominios más citados (get_top_sources).

  114. 2026-07 (finales)

    Corrección en la respuesta de creación de proyectos (v1.21.1). POST /projects y POST /project_drafts/:id/finalize ahora devuelven competitors.processing: false porque la configuración de competidores finaliza dentro de la transacción del proyecto. Las respuestas anteriores devolvían true de forma incorrecta. Las URL de los sitios web de proyectos ahora devuelven ERR_INVALID_PARAM si incluyen credenciales, direcciones IP privadas o especiales, localhost o nombres de host internos. Los nombres de host DNS públicos, los nombres de dominio internacionalizados y las IP públicas literales siguen siendo compatibles. Un cuerpo JSON mal formado enviado a un endpoint de escritura ahora devuelve el error de análisis de JSON (la familia ERR_INVALID_PARAM) en lugar de ERR_PROJECT_NOT_FOUND.

  115. 2026-07 (finales)

    Filtros de menciones y citaciones (v1.21.0). GET /answers, GET /dimensions/prompt_executions y GET /dimensions/sources aceptan mention_filter y (en los dos primeros) citation_filter, la misma matriz de dos ejes que exponen las páginas de Respuestas y Citaciones: tu marca cruzada con los competidores, donde cada eje puede tomar los valores presente, ausente o cualquiera. Los valores predefinidos son mentions_you, not_mentions_you, mentions_competitor, not_mentions_competitor, you_and_competitor, competitor_not_you, you_not_competitor y no_brands (no aparece ninguna marca monitorizada), con las variantes de citaciones cites_you, not_cites_you, cites_competitor, not_cites_competitor y cites_no_brands. Combina cualquiera de ellos con competitors para acotar el lado de los competidores a rivales concretos; en un valor negativo, la lista se interpreta como «ninguno de ellos». En /dimensions/sources el filtro se aplica al contenido rastreado de cada página citada. Los valores desconocidos devuelven ERR_INVALID_PARAM. Los mismos argumentos están disponibles en las herramientas MCP list_answers, list_prompt_executions y list_sources.

  116. 2026-07 (finales)

    Salida plana y CSV para herramientas de BI (v1.20.0). Los endpoints de lectura ahora aceptan un parámetro output opcional: output=flat devuelve los mismos metadatos más columns y rows rectangulares, y output=csv devuelve esas filas como text/csv. Así, Tableau (mediante su conector REST API), Excel, Google Sheets y los cargadores de almacenes de datos pueden leer la API sin código que recorra el JSON anidado. /metrics/sov también acepta view=over_time|current|breakdown. Si se omite output, se devuelve exactamente la respuesta que ya reciben las integraciones existentes. Los errores siempre son JSON, los porcentajes se mantienen en la escala 0-100, los endpoints paginados exponen las cabeceras X-Total-Count, X-Page y X-Per-Page, y la salida plana está limitada a 200 000 filas.

  117. 2026-07 (finales)

    Ventanas de historial de métricas más largas. La ventana de fechas máxima en los endpoints de métricas (/metrics/*), en los listados de /dimensions/*, en la inteligencia de citaciones y en la información de modelos de IA (REST y sus gemelos MCP) se amplía de 400 a 1500 días, lo que permite consultas de todo el historial. Los endpoints de Search Console mantienen su ventana de 400 días, que coincide con la retención de datos de GSC que almacenamos. El conector de Looker Studio incorpora las opciones "Últimos 365 días", "Todo el historial" y "Seguir el rango de fechas del informe", además de tres nuevos tipos de informe (Rendimiento de prompts, Share of Voice, Principales fuentes) basados en estos endpoints.

  118. 2026-07 (finales)

    Ampliación de la API de escritura: lanzar, actualizar, eliminar (v1.19.0). Ahora las recomendaciones pueden lanzarse a través de la API: POST /recommendations (MCP launch_recommendations) inicia una generación asíncrona y devuelve la ejecución para sondearla; la herramienta MCP ya no requiere la tarjeta de confirmación del chat de la app (los clientes externos lanzan directamente, y el agente de chat de la app sigue pidiendo confirmación). Nuevos endpoints de gestión, cada uno con su gemelo MCP: DELETE /prompts/:id, PATCH/DELETE /competitors/:id, PATCH/DELETE /collections/:id y un conjunto completo de anotaciones (GET /annotations, PATCH/DELETE /annotations/:id, Growth+). Las eliminaciones son irreversibles: las filas desaparecen de inmediato y los datos históricos se purgan en segundo plano. Todos los endpoints de escritura requieren una clave API read_write y respetan la matriz de permisos de los miembros del equipo.

  119. 2026-07

    Mejora de calidad de MCP (a partir de una auditoría de un agente externo). Los valores de model desconocidos y las ventanas from/to invertidas ahora devuelven ERR_INVALID_PARAM en lugar de ignorarse en silencio. GET /metrics/agent_traffic devuelve el nuevo ERR_AGENT_TRAFFIC_NOT_CONNECTED cuando no hay ninguna fuente de tráfico de agentes conectada. El avg_visibility de GET /metrics/top_sources ahora es el porcentaje de respuestas que citan el dominio (acotado entre 0 y 100). Los campos duration_ms ahora son milisegundos reales. Campos añadidos: url_sha256 + created_at en las filas de fuente, matching_names en las filas de listas de competidores, score en las categorías de sentimiento, created_at en las anotaciones creadas y data_through en las respuestas de Search Console (GSC publica con un desfase de 2 o 3 días). Herramientas MCP: las herramientas de listado aceptan range, list_answers trunca las respuestas a 1500 caracteres por defecto (full_text=true para obtener más), la vista de URL de list_citation_groups es compacta salvo con include_page_details=true, las herramientas de URL citadas aceptan un url sin procesar como alternativa a url_sha256, get_sov usa por defecto todos los competidores configurados, list_prompts incorpora un parámetro de búsqueda query, y los errores de no encontrado devuelven el id solicitado.

  120. 2026-07 (finales)

    Las suscripciones caducadas pierden el acceso a la API. Cuando se cancela una suscripción de autoservicio (Starter, Growth o Scale) y ya ha pasado la fecha hasta la que estaba pagada (tras un breve período de gracia), las claves API de esa cuenta devuelven 403 ERR_ACCOUNT_INACTIVE. Las suscripciones activas no se ven afectadas, y tampoco los planes pagados por factura y negociados (Scale+ personalizado, Partner, Enterprise), que siguen funcionando mientras su facturación se gestiona manualmente. Vuelve a suscribirte desde la página de facturación para recuperar el acceso. Nuevo código de error: ERR_ACCOUNT_INACTIVE (403).

  121. 2026-07 (finales)

    Corregida la visibilidad de Principales fuentes. avg_visibility (y su alias avg_mention_rate) en GET /metrics/top_sources ahora es la proporción de respuestas válidas que citan el dominio: respuestas distintas que citan el dominio divididas entre todas las respuestas válidas del período. Antes contaba las filas de fuente, por lo que una respuesta que citaba un dominio tres veces se contaba tres veces, y solo dividía entre las respuestas que tenían alguna fuente, lo que podía arrojar valores superiores al 100 %. Espera porcentajes más bajos y correctos. total_responses no cambia.

  122. 2026-07 (finales)

    Modelo Amazon Rufus (v1.18.0). El nuevo modelo de IA amazon_rufus (el asistente de compras de Amazon, llamado entonces Amazon Rufus y desde entonces renombrado Alexa for Shopping) se lanzó como complemento de Enterprise y ahora es un complemento de pago en todos los planes. El filtro model de los endpoints de métricas, dimensiones, respuestas y sentimientos acepta amazon_rufus. Como ocurre con otros modelos complementarios, los datos solo aparecen en las cuentas donde el modelo está habilitado.

  123. 2026-07 (finales)

    API del asistente de borradores de proyecto (v1.17.0). Creación de proyectos en varios pasos con sugerencias de IA: POST /project_drafts inicia un borrador y sugiere nombre, descripción e industria para la URL; PATCH /project_drafts/:id envía cada paso (detalles, prompts, competidores, medios propios) con un avance estrictamente secuencial y devuelve sugerencias para el siguiente paso; GET lee el estado (sugerencias solo en caché para un sondeo seguro) y POST .../finalize crea el proyecto con exactamente los mismos efectos del modo rápido, de forma idempotente. Nuevos códigos de error: ERR_DRAFT_NOT_FOUND y ERR_DRAFT_STATE. Los borradores caducan a las 24 horas. Se incluyen cinco herramientas MCP gemelas: create_project, start_project_draft, get_project_draft, update_project_draft y finalize_project_draft, que comparten exactamente los mismos servicios REST.

  124. 2026-07 (finales)

    API de creación de proyectos (v1.16.0). El nuevo POST /projects crea un proyecto completo en una sola llamada (modo rápido): campos del proyecto, prompts (en cola para su ejecución y categorización inmediatas), competidores y suscripción al correo semanal. Las repeticiones idempotentes mediante external_identifier (cuentas con embed habilitado) devuelven el proyecto existente con idempotent: true. El parámetro opcional execute_prompts_immediately: false aplaza la primera ejecución hasta la siguiente ventana de seguimiento programada. Las restricciones de plan y las cuotas se aplican exactamente igual que en el asistente de la app (ERR_LIMIT_REACHED, ERR_QUOTA_EXCEEDED, ERR_PLAN_REQUIRED).

  125. 2026-07 (finales)

    Guía de uso de MCP + detalles de proyecto más completos (v1.15.6). El servidor MCP ahora devuelve instrucciones de uso a los clientes de IA conectados en initialize: el flujo de trabajo recomendado, la nomenclatura de métricas, consejos de eficiencia y la regla brand_kind=non_brand para comparaciones justas de marca frente a competidores (coincide con el valor predeterminado de Resumen en la app). Se han añadido los filtros brand_kind y prompt_type a los tres endpoints GET /reports/ai_model_insights/* y a sus herramientas MCP (get_ai_model_summary, get_ai_model_position_distribution, get_ai_overview_results); los valores no válidos devuelven ERR_INVALID_PARAM. GET /dimensions/projects/:id (y la herramienta MCP get_project_details) ahora incluye stats.prompts_by_brand_kind además de un bloque data_coverage que enumera los modelos, países e idiomas que realmente tienen datos, de modo que una sola llamada sustituye a las consultas separadas de modelos y configuraciones regionales.

  126. 2026-07 (mediados)

    Coherencia de las métricas de citaciones (v1.15.4). Las citaciones y la tasa de citaciones ahora incluyen las citaciones visibles y las referencias a fuentes en segundo plano en Resumen, Información de modelos de IA, REST y MCP. Las citaciones en segundo plano no tienen una posición visible y siguen excluidas de avg_position y de las distribuciones de posición. La atribución de fuentes ahora respeta la coincidencia exacta por subdominio de forma coherente. Por dominio sigue siendo un agregado por dominio registrable. Las formas de las respuestas no cambian.

  127. 2026-07 (mediados)

    Las notificaciones MCP Streamable HTTP ahora devuelven una respuesta 202 vacía. Los clientes estrictos como Claude y Codex pueden completar la inicialización en lugar de fallar cuando analizan una respuesta JSON null.

  128. 2026-07 (mediados)

    Las conexiones OAuth de MCP ahora caducan al cabo de un año. Las credenciales de acceso y de actualización comparten una única fecha límite de autorización fija. Las respuestas de actualización devuelven el mismo token de actualización reutilizable para evitar la pérdida de credenciales y fallos de concurrencia en los clientes MCP.

  129. 2026-07 (mediados)

    REST y MCP unificados en una capa de consulta compartida. Los endpoints de métricas (/metrics/timeseries, summary, sov, prompt_summary, top_sources, agent_traffic, ai_traffic) y todos los listados de /dimensions/* ahora ejecutan el mismo código de consulta que sus herramientas MCP gemelas, de modo que ambas superficies devuelven siempre datos idénticos. Las herramientas MCP incorporaron los filtros que les faltaban: prompt_type / brand_kind en get_prompt_summary, get_top_sources y las herramientas de listado, además de source_type en list_sources (cuyas filas ahora incluyen source_type y los indicadores de enlaces a tiendas de aplicaciones, como en REST). La validación de entrada de MCP ahora coincide con la de REST: los IDs collection_id / prompt desconocidos, las fechas mal formadas y las ventanas de fechas de más de 400 días devuelven errores en lugar de ignorarse silenciosamente. Las filas de list_prompts ahora incluyen collection_ids, y las filas del resumen REST incluyen ahora el campo metric que MCP ya devolvía. Queda una diferencia intencionada: en la granularidad semanal o mensual, MCP deja null los períodos anteriores al primer punto de datos en las métricas de tasa y posición para no arrastrar las medias a la baja, mientras que REST sigue rellenando con 0.0.

  130. 2026-07

    Negocios locales en los detalles de la respuesta. GET /answers/:id (y la herramienta MCP get_answer) ahora incluyen un array local_businesses: los negocios que ChatGPT muestra en su widget de resultados locales para prompts con intención local, con título, dirección, teléfono, número de reseñas, valoración, dominio web y posición en el ranking, cada uno emparejado con tu marca o un competidor monitorizado mediante is_owned / competitor_id.

  131. 2026-07

    Correcciones de errores. Las herramientas MCP get_timeseries y get_summary ahora devuelven valores reales para net_sentiment, los cinco desgloses sentiment_* y avg_mention_position (antes todos los puntos de datos llegaban como null a través de MCP; REST no se veía afectado), con la misma semántica que las métricas REST. GET /dimensions/all_mentions y GET /dimensions/all_citations ahora paginan en la base de datos con un orden determinista cuando hay empates en created_at, de modo que las páginas profundas son rápidas y estables en proyectos grandes; la forma de la respuesta no cambia. Los límites de tasa personalizados por clave ahora se respetan en la limitación global de la API (el valor por defecto sigue siendo 300 solicitudes/minuto; contacta con nosotros para cuotas superiores).

  132. 2026-06 (finales)

    API de tráfico de IA (Scale+). El nuevo endpoint GET /metrics/ai_traffic expone el tráfico referido por IA que medimos a partir del proveedor de analítica web conectado del proyecto (Google Analytics 4, Adobe Analytics, PostHog, Plausible o Piano): usuarios, sesiones y conversiones por día agrupados por fuente de IA (ChatGPT, Perplexity, Gemini, Claude y otras), con totales y tasa de conversión. Nueva herramienta MCP: get_ai_traffic. Requiere el plan Scale o superior y un proveedor conectado; los proyectos sin proveedor devuelven el nuevo código ERR_AI_TRAFFIC_NOT_CONNECTED (404).

  133. 2026-06 (finales)

    API de Search Console (Growth+). Los nuevos endpoints exponen los datos de rendimiento de Google Search Console que ya sincronizamos para los proyectos con una propiedad de GSC conectada: GET /search_console/summary (impresiones principales, clics, CTR, posición media, con desglose opcional por country/device), GET /search_console/timeseries (series por día, semana y mes), GET /search_console/queries y GET /search_console/pages (principales consultas y páginas ordenadas por impresiones, clics, CTR o posición, con paginación). ctr es una fracción de 0..1 y position es la media ponderada por impresiones, igual que en la API de Search Console. Nuevas herramientas MCP: get_search_console_summary, get_search_console_timeseries, get_search_console_queries, get_search_console_pages. Los proyectos sin una propiedad conectada devuelven el nuevo código ERR_SEARCH_CONSOLE_NOT_CONNECTED (404).

  134. 2026-06 (finales)

    Cuota de menciones por dominio citante + filtros de fuentes en lote. Nuevo endpoint GET /citation_intelligence/mentions_by_domain (y herramienta MCP get_mentions_by_citing_domain): para las respuestas en las que se cita cada dominio de fuente indicado, devuelve la cuota de menciones de la marca frente a los competidores, normalizada para que los actores de cada dominio sumen el 100%. GET /metrics/top_sources y GET /citation_intelligence/groups (y sus herramientas MCP) incorporan un array domains (lista blanca de dominios exactos) y un array collection_ids (filtrar por varias etiquetas a la vez), de modo que una matriz amplia de dominio x etiqueta se resuelve con una sola llamada en lugar de una llamada por celda.

  135. 2026-06 (finales)

    La matriz de permisos de los miembros del equipo ahora se aplica también en la API y en MCP. Una clave de API (o una sesión MCP o de agente de chat) de un miembro del equipo con permisos restringidos queda sujeta a la misma matriz de funciones que la aplicación web: los endpoints y las herramientas que quedan fuera de las funciones concedidas al miembro devuelven 403 ERR_INSUFFICIENT_PERMISSION (nuevo código de error). Las claves del propietario de la cuenta y de los administradores no se ven afectadas, así que las integraciones existentes siguen funcionando sin cambios. Los webhooks salientes pasan a ser una función de permiso propia y otorgable (siguen siendo Scale+).

  136. 2026-06 (finales)

    Corrección de los agregados por período de las métricas de tasa en GET /metrics/summary. El campo total de las métricas porcentuales (visibility/mention_rate, citation_rate, ai_visibility_score/weighted_visibility, cuotas de sentimiento) ahora es la media de los períodos en lugar de la suma de las tasas de cada período, que podía superar el 100%. Las métricas de recuento (mentions, citations, responses) se siguen sumando. Cada fila del resumen incluye ahora un campo aggregation ("sum" o "average") que indica cómo se calculó total. La misma corrección se aplica a la herramienta MCP get_summary, que además deja de devolver la series completa junto al resumen (usa get_timeseries para los datos de la serie) e incorpora un argumento group_by (model o collection) que devuelve un resumen por grupo en una sola llamada. GET /answers (y la herramienta MCP list_answers) aceptan un nuevo parámetro query para la búsqueda de texto completo sin distinción de mayúsculas dentro de los textos de respuesta de IA: total pasa a ser el número exacto de coincidencias y las filas devuelven un snippet + match_count en lugar del texto completo de la respuesta.

  137. 2026-06 (finales)

    Permiso de prompts para miembros del equipo y límites de prompts por proyecto. Los propietarios de la cuenta ya pueden desactivar la capacidad de un miembro del equipo para añadir o eliminar prompts. Cuando el permiso de un miembro está desactivado, POST /prompts y la herramienta MCP create_prompts devuelven 403 ERR_INSUFFICIENT_SCOPE para la clave de ese miembro (los endpoints de lectura no se ven afectados). Los propietarios también pueden fijar un límite de prompts por proyecto en Configuración del proyecto; cuando un proyecto lo alcanza, POST /prompts y create_prompts devuelven ERR_LIMIT_REACHED (junto con el control de cuota existente a nivel de cuenta) para todos, incluido el propietario, hasta que se aumente el límite. No hay nuevos códigos de error ni endpoints.

  138. 2026-06 (finales)

    Nueva herramienta MCP get_webhook_sample (Scale+), la contrapartida MCP de GET /webhooks/sample/:event_type, para que los clientes MCP puedan previsualizar los payloads de eventos antes de suscribirse. Las restricciones por plan se han alineado para el catálogo de bots de IA: el endpoint REST GET /dimensions/agent_bots ahora requiere Scale o superior (ERR_PLAN_REQUIRED más abajo), mientras que la herramienta MCP list_agent_bots ya está disponible en todos los planes.

  139. 2026-06 (mediados)

    Webhooks salientes (Scale+, v1.9). Nuevos endpoints: POST /webhooks (suscribir una URL HTTPS pública a un evento del proyecto), GET /webhooks (listar suscripciones), DELETE /webhooks/:id (cancelar la suscripción), GET /webhooks/sample/:event_type (ejemplos de payloads para editores de integraciones). Siete tipos de evento: mention.created, competitor_mention.created, citation.created, prompt_execution.completed, sentiment.negative_detected, recommendation.completed, intelligence_task.completed. Las entregas se firman con HMAC-SHA256 (X-LLMPulse-Signature), se intentan hasta 5 veces en total con espera progresiva y las suscripciones se desactivan automáticamente tras 20 fallos consecutivos. Crear o eliminar requiere una clave con alcance read_write. Nuevas herramientas MCP: create_webhook_subscription, list_webhook_subscriptions, delete_webhook_subscription. Los webhooks alimentan los nuevos conectores de Zapier, Make y n8n.

  140. 2026-06

    Content Intelligence pasa a llamarse GEO Writer. La función y su sección de la API ahora se denominan GEO Writer en toda la aplicación y la documentación. Es un cambio de nombre solo visual: los endpoints de la API (POST/GET /intelligence_tasks, GET /intelligence_tasks/:id), la estructura de las solicitudes y respuestas, los códigos de error y los nombres de las herramientas MCP (create_intelligence_task, list_intelligence_tasks, get_intelligence_task) no cambian. La página de marketing se ha movido de /features/content-intelligence a /features/geo-writer con una redirección 301.

  141. 2026-05 (finales)

    MCP disponible en todos los planes mediante OAuth. El endpoint de MCP (POST /api/v1/mcp) ahora acepta tokens de acceso OAuth 2.1 emitidos mediante Dynamic Client Registration (RFC 7591) y PKCE-S256. Cualquier usuario de LLM Pulse, incluidos los usuarios de Starter, Growth y de prueba, puede conectar ChatGPT, Claude, Gemini, Cursor o cualquier otro cliente compatible con MCP a su cuenta pegando la URL https://api.llmpulse.ai/api/v1/mcp en la configuración de MCP / conector de su cliente; el cliente guía al usuario por un flujo de inicio de sesión OAuth sin necesidad de clave de API. La restricción de herramientas por plan sigue aplicándose: las herramientas de escritura y las herramientas de lectura avanzadas que requieren Growth o Scale siguen excluyéndose de tools/list para los usuarios sin acceso. La autenticación con clave de API (Authorization: Bearer …) no cambia y sigue siendo la vía recomendada para integraciones headless como Data Studio, Zapier y scripts de CI (plan Scale o superior). Los endpoints de descubrimiento (/.well-known/oauth-authorization-server, /.well-known/oauth-protected-resource, /oauth/jwks.json) y los endpoints de registro, autorización y token se encuentran bajo /oauth/*.

  142. 2026-05 (finales)

    Nuevo tipo de recomendación: Sentiment & Reputation (Scale+). recommendation_type en GET /recommendations (y en la herramienta MCP launch_recommendations) ahora acepta sentiment_reputation además de ai_visibility, social_community y brand_building. Convierte en recomendaciones accionables los últimos 30 días de sentimiento de marca (ampliados a 90 si son escasos), los temas negativos, las brechas comparativas en las que se elogia a un competidor, las fuentes citadas detrás de las respuestas negativas y las dimensiones de reputación débiles. Requiere el plan Scale o superior; los usuarios sin ese plan reciben ERR_INVALID_PARAM o errores de plan.

  143. 2026-05 (finales)

    Filtros de categorización de prompts. Ahora cada prompt se clasifica automáticamente por prompt_type (intención de búsqueda: informational, navigational, commercial, transactional) y brand_kind (brand = tu propia marca/productos, brand_other = competidores u otras marcas, non_brand = genérico, sin marca mencionada). Ambos se aceptan como filtros opcionales en /metrics/timeseries, /metrics/summary, /metrics/sov, /metrics/prompt_summary, /metrics/top_sources y /dimensions/prompts (que ahora también devuelve los dos campos por prompt). Los valores no válidos devuelven ERR_INVALID_PARAM. Los mismos filtros están disponibles como argumentos prompt_type / brand_kind en las herramientas MCP get_timeseries, get_summary, get_sov y list_prompts.

  144. 2026-05 (mediados)

    Endpoints de escritura para agentes (v1.5). Las claves de API ahora exponen un scope (read frente a read_write); las claves ya existentes tratan full como sinónimo de read_write. Los endpoints de mutación (POST/PATCH/PUT/DELETE) ahora requieren una clave con scope read_write y, en caso contrario, devuelven 403 ERR_INSUFFICIENT_SCOPE. Las escrituras tienen además un segundo límite de tasa (60/min por clave), que se suma al tope global de 300/min por clave. Nuevos endpoints REST: POST /competitors, POST /collections, POST /prompts/assign_tags (etiquetado masivo idempotente), POST /annotations (Growth+), POST /technical_geo_reports (paquete GEO completo). Nuevas herramientas MCP de escritura: create_competitor, create_collection, assign_prompt_tags, create_annotation, launch_recommendations (con confirmación previa del usuario en el agente de chat), create_technical_geo_report (ídem). Nuevos códigos de error: ERR_INSUFFICIENT_SCOPE (403) para claves de solo lectura que intentan escrituras, ERR_PLAN_REQUIRED (403) para anotaciones en Starter.

  145. 2026-05

    Los proyectos ahora exponen brand_name por separado de name en los payloads de API y MCP. brand_name es la etiqueta de marca que se envía a los LLM y se muestra en los gráficos orientados al cliente; name sigue siendo la etiqueta interna del proyecto. name se sigue devolviendo por retrocompatibilidad. mention_rate se acepta como sinónimo de visibility en los parámetros de /metrics/* y en las herramientas MCP timeseries / summary / top_sources. Los indicadores de modelos de IA por usuario ahora se aplican a todos los endpoints de lectura: las respuestas de la API, las métricas, las dimensiones, las respuestas de IA, los sentimientos y las citaciones excluyen silenciosamente los modelos que no están habilitados para el usuario de la clave de API. En el momento de este lanzamiento, los complementos de pago activos eran Copilot, Claude, Grok, DeepSeek y Alexa for Shopping; la ejecución recurrente de Meta AI aún no estaba activa. Las métricas agrupadas por fecha se estandarizaron en Europe/Madrid para los grupos diarios, semanales y mensuales, lo que corrige las filas con un día de desfase cerca de la medianoche UTC.

  146. 2026-04 (finales)

    API de Agent Analytics (Scale+, Beta): GET /metrics/agent_traffic y GET /dimensions/agent_bots exponen el tráfico de rastreo de bots de IA (GPTBot, PerplexityBot, ClaudeBot, OAI-SearchBot, Google-Extended y unos 25 más) procedente de Cloudflare o de subidas de CSV. Nueva herramienta MCP: get_agent_traffic. tools/list de MCP ahora se filtra según tu plan: las herramientas que no puedes usar ya no aparecen en el catálogo, y las llamadas directas a herramientas restringidas devuelven un ERR_PLAN_REQUIRED limpio en lugar de filtrar el esquema. Se han reforzado los límites de autenticación de MCP para el acceso de los miembros de la cuenta del propietario.

  147. 2026-04 (mediados)

    API de Citation Intelligence: GET /citation_intelligence/groups (agrupaciones de URLs citadas con filtros de fuente/tipo), GET /citation_intelligence/urls/:url_sha256, /occurrences y /content para el desglose por URL. API de informes de AI Model Insights: GET /reports/ai_model_insights/summary, /position_distribution y /ai_overview_results. API de recomendaciones: GET /recommendations y GET /recommendations/:id. Nuevas herramientas MCP: list_citation_groups, get_cited_url_details, list_cited_url_occurrences, get_cited_url_content, get_ai_model_summary, get_ai_model_position_distribution, get_ai_overview_results, list_recommendations, get_recommendation, list_competitor_mentions, list_competitor_citations, list_prompt_executions, list_tags. Validación de enumerados más estricta en view, order, direction, granularity, model, source_type, sentiment, content_gap, recommendation_type, status: los valores desconocidos ahora devuelven ERR_INVALID_PARAM en lugar de ignorarse silenciosamente. El filtro source_type acepta owned, competitor, third_party además de las listas de clasificación. Los resultados de AI Overview se agrupan por executed_at (no por created_at), de modo que las filas reintentadas o de backfill se asignan al día correcto.

  148. 2026-04

    Nuevo endpoint POST /prompts para la creación masiva de prompts (hasta 100 por solicitud). Nueva API de Content Intelligence: POST /intelligence_tasks para crear tareas, GET /intelligence_tasks para listarlas con filtros, GET /intelligence_tasks/:id para ver el detalle completo y los resultados. Nuevas herramientas MCP: create_prompts, create_intelligence_task, list_intelligence_tasks, get_intelligence_task. Nuevos códigos de error: ERR_LIMIT_REACHED (cuota de prompts), ERR_QUOTA_EXCEEDED (cuota de tareas de inteligencia), ERR_NOT_FOUND (recurso no encontrado).

  149. 2026-03

    Nuevo endpoint GET /metrics/prompt_summary para métricas por prompt paginadas (respuestas, menciones, citaciones, tasa de mención, citation_rate) en una sola solicitud

  150. 2026-02

    Nueva métrica ai_visibility_score (visibilidad ponderada por posición). Nuevas herramientas MCP: list_answers, get_answer, list_detailed_sentiments, get_project_details, get_competitor_details. Nuevos endpoints de API: /answers, /sentiments, /dimensions/projects/:id, /dimensions/competitors/:id. Nueva métrica responses (número de ejecuciones de prompt) y métrica citation_rate (citaciones / respuestas x 100). Límite de solicitudes de la API aumentado de 100 a 300 solicitudes/minuto. Añadido el filtro prompt a todos los endpoints de métricas y dimensiones.

  151. 2026-01

    Añadido el endpoint MCP (Model Context Protocol) para integraciones de IA con Claude, ChatGPT y otros asistentes de IA

  152. 2025-12

    Métricas de sentimiento añadidas a /metrics/timeseries (sentiment_very_positive/positive/neutral/negative/very_negative) y semántica documentada

  153. 2025-09

    Métricas alineadas con el Resumen (totales del período con arrastre persistente, proporción de sumas del período para la visibilidad, propagación en avg_position), desglose de SOV, filtro query en Top Sources, notas sobre caché y sección de descarga y entorno de Postman

  154. 2025-08

    Documentación pública inicial de la API (v1)