> ## Documentation Index
> Fetch the complete documentation index at: https://docs.querying.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Informes de monitores: tasa de mención, cuota de voz y analítica

> Lee el informe de un monitor desde un solo endpoint, con ventana, filtros, denominadores y reglas de comparación explícitos.

`GET /v1/monitors/{id}/analytics` ([referencia](/es/api-reference/monitors/get-analytics.md)) devuelve todas las
cifras del informe de un monitor a partir de un mismo conjunto de respuestas: una ventana, un conjunto de filtros y
la ventana anterior de la misma duración para comparar. Construye cada panel de tu propio informe con este endpoint
y lee `quality` antes que las cifras. Leer un informe no cuesta nada.

```bash theme={"theme":"css-variables"}
curl "https://api.querying.ai/v1/monitors/$MONITOR_ID/analytics?since=2026-10-16T00:00:00Z&until=2026-10-18T00:00:00Z&engine=CHATGPT" \
  -H "Authorization: Bearer $QUERYING_API_KEY"
```

## Parámetros de consulta

| Parámetro | Descripción |
| - | - |
| `days` | `7`, `30` (por defecto) o `90`: la ventana termina ahora. No se puede combinar con `since` y `until`. |
| `since`, `until` | Una ventana fija. Envía ambos, como instantes ISO 8601 con zona horaria, por ejemplo `2026-10-16T00:00:00Z`. El intervalo debe ser positivo y de 90 días como máximo, y `until` no puede estar en el futuro. Una fecha sola como `2026-10-16` se rechaza. |
| `engine` | Solo respuestas de este motor: un id de motor de monitor o uno de sus alias, como `GOOGLE_AIO`. |
| `prompt` | Solo respuestas a este prompt, por texto exacto, de 1 a 2000 caracteres. Las respuestas se guardan por el texto del prompt, así que un prompt que has quitado del monitor sigue siendo consultable. |

La ventana es semiabierta y en UTC: `since` se incluye y `until` no. La ventana anterior tiene exactamente la misma
duración, termina en `since` y usa los mismos filtros, así que cada comparación es equivalente. Envía cada
parámetro una sola vez.

## Ejemplo

Por ejemplo, un monitor de marca que pregunta a ChatGPT dos prompts una vez al día con `samples: 5` (diez
respuestas al día), filtrado a ChatGPT durante dos días, devuelve:

> **Respuesta completa**
>
> ```json theme={"theme":"css-variables"}
> {
>   "success": true,
>   "data": {
>     "monitor": {
>       "id": "d39b8de0-b159-4229-bf58-7064e5369db1",
>       "name": "Earbud brand tracking",
>       "mode": "BRAND",
>       "category": null,
>       "promptTopics": {},
>       "engines": ["CHATGPT", "GEMINI"],
>       "prompts": ["best wireless earbuds for commuting", "are cheap earbuds worth it"],
>       "aliases": ["Acme Audio", "Acme"],
>       "domains": ["acme-audio.example"],
>       "country": "US",
>       "intervalHours": 24,
>       "enabled": true,
>       "alertBelowPct": 40,
>       "competitors": [
>         { "name": "Northwind Audio", "aliases": ["Northwind Audio"], "source": "user" },
>         { "name": "Contoso Sound", "aliases": ["Contoso Sound", "Contoso"], "source": "user" }
>       ],
>       "competitorsReadAt": "2026-10-17T03:10:22.004Z",
>       "location": null,
>       "grid": null,
>       "engineSettings": { "CHATGPT": { "samples": 5 } },
>       "webhookUrl": null,
>       "analysis": false,
>       "nextRunAt": "2026-10-19T09:00:02.118Z",
>       "lastRunAt": "2026-10-18T09:00:01.730Z",
>       "shareAccess": "PRIVATE",
>       "shareSlug": null,
>       "createdAt": "2026-10-09T08:59:57.410Z",
>       "updatedAt": "2026-10-12T14:21:09.882Z"
>     },
>     "window": {
>       "since": "2026-10-16T00:00:00.000Z",
>       "until": "2026-10-18T00:00:00.000Z",
>       "previousSince": "2026-10-14T00:00:00.000Z",
>       "previousUntil": "2026-10-16T00:00:00.000Z",
>       "timezone": "UTC",
>       "bounds": "[since, until)"
>     },
>     "filters": { "engine": "CHATGPT", "prompt": null },
>     "stats": { "runs": 20, "mentioned": 9, "cited": 3, "competitorOnly": 7, "mentionRate": 45, "citationRate": 15, "competitorOnlyRate": 35 },
>     "previous": { "runs": 20, "mentioned": 12, "cited": 4, "competitorOnly": 5, "mentionRate": 60, "citationRate": 20, "competitorOnlyRate": 25 },
>     "changes": { "mentionRatePp": -15, "citationRatePp": -5 },
>     "engineRates": [
>       { "engine": "CHATGPT", "runs": 20, "mentioned": 9, "cited": 3, "competitorOnly": 7, "mentionRate": 45, "citationRate": 15, "competitorOnlyRate": 35 }
>     ],
>     "series": [
>       {
>         "day": "2026-10-16",
>         "engine": "CHATGPT",
>         "partial": false,
>         "runs": 10,
>         "mentioned": 5,
>         "cited": 2,
>         "competitorOnly": 3,
>         "mentionRate": 50,
>         "citationRate": 20,
>         "competitorOnlyRate": 30
>       },
>       {
>         "day": "2026-10-17",
>         "engine": "CHATGPT",
>         "partial": false,
>         "runs": 10,
>         "mentioned": 4,
>         "cited": 1,
>         "competitorOnly": 4,
>         "mentionRate": 40,
>         "citationRate": 10,
>         "competitorOnlyRate": 40
>       }
>     ],
>     "brands": [
>       {
>         "name": "Northwind Audio",
>         "mentions": 10,
>         "sampleSize": 20,
>         "mentionRate": 50,
>         "shareOfVoice": 43.47826086956522,
>         "previousMentionRate": 40,
>         "previousShareOfVoice": 33.33333333333333,
>         "configured": true
>       },
>       {
>         "name": "__you__",
>         "mentions": 9,
>         "sampleSize": 20,
>         "mentionRate": 45,
>         "shareOfVoice": 39.130434782608695,
>         "previousMentionRate": 60,
>         "previousShareOfVoice": 50,
>         "configured": true
>       },
>       {
>         "name": "Contoso Sound",
>         "mentions": 4,
>         "sampleSize": 20,
>         "mentionRate": 20,
>         "shareOfVoice": 17.391304347826086,
>         "previousMentionRate": 20,
>         "previousShareOfVoice": 16.666666666666664,
>         "configured": true
>       }
>     ],
>     "voiceSeries": [
>       { "day": "2026-10-16", "name": "__you__", "mentions": 5, "runs": 10, "mentionRate": 50, "shareOfVoice": 41.66666666666667 },
>       { "day": "2026-10-16", "name": "Northwind Audio", "mentions": 5, "runs": 10, "mentionRate": 50, "shareOfVoice": 41.66666666666667 },
>       { "day": "2026-10-16", "name": "Contoso Sound", "mentions": 2, "runs": 10, "mentionRate": 20, "shareOfVoice": 16.666666666666664 },
>       { "day": "2026-10-17", "name": "__you__", "mentions": 4, "runs": 10, "mentionRate": 40, "shareOfVoice": 36.36363636363637 },
>       { "day": "2026-10-17", "name": "Northwind Audio", "mentions": 5, "runs": 10, "mentionRate": 50, "shareOfVoice": 45.45454545454545 },
>       { "day": "2026-10-17", "name": "Contoso Sound", "mentions": 2, "runs": 10, "mentionRate": 20, "shareOfVoice": 18.181818181818183 }
>     ],
>     "prompts": [
>       {
>         "prompt": "are cheap earbuds worth it",
>         "runs": 10,
>         "mentioned": 3,
>         "cited": 0,
>         "competitorOnly": 4,
>         "mentionRate": 30,
>         "citationRate": 0,
>         "competitorOnlyRate": 40,
>         "previous": { "runs": 10, "mentioned": 5, "cited": 1, "competitorOnly": 3, "mentionRate": 50, "citationRate": 10, "competitorOnlyRate": 30 },
>         "engines": [
>           {
>             "prompt": "are cheap earbuds worth it",
>             "engine": "CHATGPT",
>             "runs": 10,
>             "mentioned": 3,
>             "cited": 0,
>             "competitorOnly": 4,
>             "mentionRate": 30,
>             "citationRate": 0,
>             "competitorOnlyRate": 40,
>             "previous": { "runs": 10, "mentioned": 5, "cited": 1, "competitorOnly": 3, "mentionRate": 50, "citationRate": 10, "competitorOnlyRate": 30 },
>             "mentionRateChangePp": -20,
>             "topCompetitor": "Northwind Audio",
>             "topCompetitorRate": 60,
>             "evidenceTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a63",
>             "mentionTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a63",
>             "latestTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a63"
>           }
>         ]
>       },
>       {
>         "prompt": "best wireless earbuds for commuting",
>         "runs": 10,
>         "mentioned": 6,
>         "cited": 3,
>         "competitorOnly": 3,
>         "mentionRate": 60,
>         "citationRate": 30,
>         "competitorOnlyRate": 30,
>         "previous": { "runs": 10, "mentioned": 7, "cited": 3, "competitorOnly": 2, "mentionRate": 70, "citationRate": 30, "competitorOnlyRate": 20 },
>         "engines": [
>           {
>             "prompt": "best wireless earbuds for commuting",
>             "engine": "CHATGPT",
>             "runs": 10,
>             "mentioned": 6,
>             "cited": 3,
>             "competitorOnly": 3,
>             "mentionRate": 60,
>             "citationRate": 30,
>             "competitorOnlyRate": 30,
>             "previous": { "runs": 10, "mentioned": 7, "cited": 3, "competitorOnly": 2, "mentionRate": 70, "citationRate": 30, "competitorOnlyRate": 20 },
>             "mentionRateChangePp": -10,
>             "topCompetitor": "Northwind Audio",
>             "topCompetitorRate": 40,
>             "evidenceTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a61",
>             "mentionTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a61",
>             "latestTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a61"
>           }
>         ]
>       }
>     ],
>     "opportunities": [
>       {
>         "prompt": "are cheap earbuds worth it",
>         "engine": "CHATGPT",
>         "runs": 10,
>         "mentioned": 3,
>         "cited": 0,
>         "competitorOnly": 4,
>         "mentionRate": 30,
>         "citationRate": 0,
>         "competitorOnlyRate": 40,
>         "previous": { "runs": 10, "mentioned": 5, "cited": 1, "competitorOnly": 3, "mentionRate": 50, "citationRate": 10, "competitorOnlyRate": 30 },
>         "mentionRateChangePp": -20,
>         "topCompetitor": "Northwind Audio",
>         "topCompetitorRate": 60,
>         "evidenceTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a63",
>         "mentionTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a63",
>         "latestTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a63"
>       },
>       {
>         "prompt": "best wireless earbuds for commuting",
>         "engine": "CHATGPT",
>         "runs": 10,
>         "mentioned": 6,
>         "cited": 3,
>         "competitorOnly": 3,
>         "mentionRate": 60,
>         "citationRate": 30,
>         "competitorOnlyRate": 30,
>         "previous": { "runs": 10, "mentioned": 7, "cited": 3, "competitorOnly": 2, "mentionRate": 70, "citationRate": 30, "competitorOnlyRate": 20 },
>         "mentionRateChangePp": -10,
>         "topCompetitor": "Northwind Audio",
>         "topCompetitorRate": 40,
>         "evidenceTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a61",
>         "mentionTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a61",
>         "latestTaskId": "6f1c2a9e-3b4d-4e5f-8a7b-1c2d3e4f5a61"
>       }
>     ],
>     "quality": {
>       "comparable": true,
>       "comparisonReason": null,
>       "scoringVersions": ["3f9a6c1e8b2d4f7a9c0e1b3d5f7a9c1e3b5d7f9a1c3e5b7d9f1a3c5e7b9d1f3a"],
>       "noAnswerObservations": 0,
>       "unknownObservations": 0,
>       "noAnswerIncluded": true,
>       "historicalFailures": null,
>       "sampleSize": 20,
>       "previousSampleSize": 20,
>       "configuredCells": 2,
>       "observedCells": 2,
>       "missingCells": 0,
>       "lowSample": true,
>       "partialDays": [],
>       "denominator": "scored_answers",
>       "shareOfVoiceDenominator": "tracked_brand_mentions",
>       "trackedBrandMentions": 23,
>       "answerTextLimit": 8000,
>       "scoring": "collection_time_definitions",
>       "failedTasksIncluded": false
>     },
>     "pauses": [],
>     "health": { "completed": 12, "failed": 0, "pending": 0, "topError": null },
>     "healthScope": "recent_visible_tasks"
>   }
> }
> ```

Cómo leerlo: la marca se nombró en 9 de 20 respuestas de ChatGPT (45 %), 15 puntos menos que en los dos días
anteriores. Northwind Audio se nombró en más respuestas, y «are cheap earbuds worth it» es el prompt más débil, con
4 respuestas que nombraron a un competidor y no a la marca. `quality.lowSample` es `true`, así que trata la
variación como una señal que revisar, no como una tendencia.

## Secciones de la respuesta

| Campo | Contenido |
| - | - |
| `monitor` | La definición guardada del monitor. |
| `window` | `since`, `until`, `previousSince`, `previousUntil`, `timezone` (`UTC`) y `bounds` (`[since, until)`). `previousUntil` siempre es igual a `since`. |
| `filters` | Los filtros aplicados, resueltos: el id de motor canónico, el prompt exacto o `null`. |
| `stats`, `previous` | Recuentos y tasas de la ventana y de la ventana anterior. Consulta [Objetos de tasa](#objetos-de-tasa). |
| `changes` | `mentionRatePp` y `citationRatePp`: la variación en puntos porcentuales, o `null` cuando se oculta la comparación. |
| `engineRates` | El objeto de tasa por motor. |
| `series` | El objeto de tasa por día UTC y motor, con `partial: true` en un día que la ventana cubre solo en parte. |
| `brands` | Tu marca (`__you__`) y cada competidor nombrado en la ventana, de más a menos menciones. Consulta [Marcas y cuota de voz](#marcas-y-cuota-de-voz). |
| `voiceSeries` | Por día UTC y marca: `mentions`, `runs` (las respuestas del día), `mentionRate` y `shareOfVoice`. |
| `prompts` | Por prompt, de menor a mayor tasa de mención: el objeto de tasa, `previous` y `engines`, una celda por motor. |
| `opportunities` | Celdas en las que se nombró a un competidor y no a tu marca (`competitorOnly` mayor que 0), primero las que más respuestas así tienen. La lista con la que trabajar. |
| `quality` | De qué se compone la muestra y qué no pueden decir las cifras. Consulta [Calidad](#calidad). |
| `pauses` | Pausas que se solapan con la ventana, de la más antigua a la más nueva: `pausedAt` y `resumedAt` (`null` mientras sigue pausado). |
| `health`, `healthScope` | Estado de las tareas recientes, un ámbito distinto del informe. Consulta [Salud](#salud). |

### Objetos de tasa

`stats`, `previous`, cada entrada de `engineRates` y `series`, cada prompt y cada celda llevan los mismos campos:

| Campo | Significado |
| - | - |
| `runs` | Respuestas puntuadas. El denominador de todas las tasas siguientes. |
| `mentioned` | Respuestas que nombraron tu marca. |
| `cited` | Respuestas que citaron uno de tus dominios. |
| `competitorOnly` | Respuestas que nombraron al menos un competidor y no tu marca. |
| `mentionRate`, `citationRate`, `competitorOnlyRate` | `100 × count / runs`, o `null` cuando `runs` es 0. |

### Celdas

Una celda es un prompt en un motor. Además del objeto de tasa y `previous`, lleva:

| Campo | Significado |
| - | - |
| `mentionRateChangePp` | La variación de la celda en puntos, o `null` cuando se oculta la comparación. |
| `topCompetitor` | El competidor nombrado en más respuestas de la celda, o `null`. |
| `topCompetitorRate` | La tasa de mención de ese competidor en la celda, o `null` cuando algunas respuestas de la celda son anteriores al contexto de puntuación guardado. |
| `evidenceTaskId` | La última respuesta que nombró a un competidor y no a tu marca. |
| `mentionTaskId` | La última respuesta que nombró tu marca. |
| `latestTaskId` | La última respuesta. |

Cada id es `null` cuando ninguna respuesta cumple la condición. Abre una con
[`GET /v1/monitors/{id}/answers/{taskId}`](/es/monitors/evidence#lee-una-respuesta).

### Marcas y cuota de voz

Cada entrada de `brands` tiene `name`, `mentions`, `sampleSize`, `mentionRate`, `shareOfVoice`,
`previousMentionRate`, `previousShareOfVoice` y `configured` (`false` para una marca nombrada en la ventana que ya no
está en el monitor).

## Qué significan las cifras

`GET /v1/monitors/capabilities` devuelve estas definiciones como `metrics`, para que un cliente pueda mostrarlas
junto a las cifras.

* **`mentionRate`** es `100 × mentioned / respuestas puntuadas`, para la ventana, cada motor, cada día y cada celda.
  Se pondera por respuestas, no se promedia entre motores, así que un motor con mucha actividad no queda en minoría
  frente a uno con poca.
* **`citationRate`** tiene la misma forma para las respuestas que citaron uno de tus dominios. Sin dominios siempre
  es 0, porque el seguimiento de citas está desactivado.
* **La tasa de una marca se divide por su propio `sampleSize`.** Para tu marca son todas las respuestas puntuadas.
  Para un competidor son solo las respuestas puntuadas mientras estaba en el monitor, así que un competidor añadido
  hoy se mide desde hoy. El `mentionRate` de un competidor es `null` cuando algunas respuestas de la ventana se
  puntuaron antes de que se guardara el contexto de puntuación, porque se desconoce con qué se compararon.
* **`shareOfVoice`** es `100 × menciones de esa marca / todas las menciones de marcas seguidas` en la ventana, así
  que las cuotas de una ventana suman 100 (`quality.trackedBrandMentions` es el denominador). Compara marcas dentro
  de las respuestas que recogiste para estos prompts. No es cuota de mercado ni un ranking de visibilidad.
* **`competitorOnly`** y `opportunities` cuentan las respuestas que nombraron a un competidor mientras tu marca
  estaba ausente: la brecha sobre la que puedes actuar.
* **`null` no es 0.** Una tasa es `null` cuando no había respuestas por las que dividir. 0 significa que había
  respuestas y ninguna coincidió.
* **Una respuesta sin texto cuenta como no mencionada.** Una tarea completada que no devolvió respuesta sigue en
  el denominador; `quality.noAnswerObservations` las cuenta. Una tarea **fallida** se excluye de todas las tasas y
  solo aparece en `health`. Un motor averiado reduce la muestra en lugar de aparecer como ausencia.
* **`position`** en una respuesta puntuada es el offset de carácter de la primera coincidencia de tu marca: un
  indicador aproximado de prominencia, no un ranking. Es `null` cuando la marca no aparece.

### Cuándo se ocultan las variaciones

`changes`, el `mentionRateChangePp` de cada celda, y el `previousMentionRate` y `previousShareOfVoice` de cada marca
son `null`, y `quality.comparable` es `false`, cuando las dos ventanas no se pueden comparar.
`quality.comparisonReason` indica por qué:

| `comparisonReason` | Significado |
| - | - |
| `insufficient_periods` | Una de las dos ventanas no tiene respuestas. |
| `legacy_scoring_unknown` | Algunas respuestas se puntuaron antes de que se guardara la definición con la que se puntuaron. |
| `scoring_definitions_changed` | Los alias, dominios, competidores o país cambiaron entre las respuestas de las dos ventanas. |

Cada respuesta conserva la definición con la que se puntuó, y `quality.scoringVersions` lista las definiciones
distintas en ambas ventanas (`legacy` para respuestas sin ella). Cambiar tus alias o competidores nunca reescribe
respuestas pasadas. La única excepción es la lectura semanal de competidores: cuando cambian los competidores que
encuentra, las respuestas guardadas del monitor se vuelven a puntuar con la nueva lista.

### Calidad

| Campo | Significado |
| - | - |
| `comparable`, `comparisonReason` | Si se muestran las cifras de variación y, si no, por qué. |
| `scoringVersions` | Las definiciones de puntuación distintas en ambas ventanas. |
| `scoring` | Siempre `collection_time_definitions`: las respuestas se puntúan con la definición vigente cuando llegaron. |
| `sampleSize`, `previousSampleSize` | Respuestas puntuadas en cada ventana. |
| `lowSample` | `true` por debajo de 30 respuestas puntuadas en la ventana. |
| `configuredCells`, `observedCells`, `missingCells` | Celdas prompt × motor que cubren los filtros, celdas con al menos una respuesta y la diferencia. |
| `partialDays` | Días UTC que la ventana corta o que aún no han terminado. El recuento menor de un día parcial es aritmética, no un descenso. |
| `noAnswerObservations` | Respuestas completadas sin texto, contadas como no mencionadas. |
| `unknownObservations` | Respuestas puntuadas antes de que se guardara el contexto de puntuación. |
| `noAnswerIncluded`, `failedTasksIncluded`, `historicalFailures` | Siempre `true`, `false` y `null`: las respuestas sin texto están en el denominador, las tareas fallidas no, y los fallos nunca se reconstruyen a partir del historial. |
| `denominator`, `shareOfVoiceDenominator` | `scored_answers` y `tracked_brand_mentions`. |
| `trackedBrandMentions` | El denominador de la cuota de voz. |
| `answerTextLimit` | `8000`: el texto de respuesta guardado se corta en 8000 caracteres. |

### Salud

`health` tiene `completed`, `failed`, `pending` y `topError` (el código de error más frecuente entre las tareas
fallidas) para las tareas del monitor en curso o terminadas en las últimas 24 horas. `healthScope` siempre es
`recent_visible_tasks`. Es un diagnóstico de las ejecuciones, independiente de la ventana, y nunca forma parte del
denominador de una tasa.

## Consulta mientras una ejecución está en curso

Cada llamada devuelve el informe completo para la ventana y los filtros. Mientras una ejecución está en curso,
`health.pending` cuenta sus tareas que aún se están ejecutando. Vuelve a leer el informe cuando llegue a 0.

## Informes de categoría

Un [monitor de categoría](/es/monitors.md#monitores-de-categoría) devuelve un cuerpo distinto desde el mismo endpoint,
con los mismos `window`, `filters`, `quality`, `pauses` y `health`:

* `stats` y `previous` contienen `runs`, `named` (respuestas que nombraron al menos una marca seguida) y
  `namedRate`. `changes.namedRatePp` es la variación en puntos.
* `category` contiene el ranking:

| Campo | Contenido |
| - | - |
| `category.name` | El `category` del monitor. |
| `category.brands` | Cada marca seguida y cada marca que nombraron las respuestas, de más a menos menciones: `name`, `rank`, `mentions`, `sampleSize`, `mentionRate`, `shareOfVoice`, `previousMentionRate`, `previousShareOfVoice`, `changePp` y `configured`. |
| `category.topics` | Una fila por subárea (`topic: null` es toda la categoría): `prompts`, `runs`, `named`, `namedRate` y `leaders`, las tres marcas más nombradas. |
| `category.engines` | Una fila por motor con respuestas en la ventana: `runs`, `named`, `namedRate` y `leaders`. |
| `category.series` | Por día UTC, las cinco marcas seguidas líderes: `mentions`, `sampleSize`, `runs`, `mentionRate` y `partial`. |
| `category.prompts` | Una fila por prompt: `topic`, `retired` (`true` para un prompt que ya no está en el monitor), `runs`, `named`, `namedRate`, `leaders` y `engines`, cada uno con `runs`, `named` y un `evidenceTaskId` de la última respuesta que nombró una marca. |

Por ejemplo, una entrada de `category.brands`:

```json theme={"theme":"css-variables"}
{
  "name": "Northwind Sun",
  "mentions": 18,
  "sampleSize": 40,
  "mentionRate": 45,
  "shareOfVoice": 30,
  "previousMentionRate": 40,
  "previousShareOfVoice": 25,
  "changePp": 5,
  "configured": true,
  "rank": 1
}
```

* **`rank`** ordena las marcas por el número de respuestas que las nombran. Una marca que ninguna respuesta nombró
  tiene `rank: null`.
* **`mentionRate`** se divide por el propio `sampleSize` de la marca: las respuestas puntuadas mientras estaba en la
  lista.
* **`shareOfVoice`** es `100 × menciones de esa marca / todas las menciones de marcas` en la ventana, así que las
  cuotas suman 100.

## Errores y límites

* La ventana es de 90 días como máximo.
* Los parámetros no válidos devuelven `400 VALIDATION_ERROR` con un mensaje que indica el problema: `days` junto con
  `since` o `until`, solo uno de `since` y `until`, una marca de tiempo sin zona horaria, un intervalo de más de 90
  días, un `until` en el futuro, un motor que no se puede monitorizar, un prompt de más de 2000 caracteres o un
  parámetro repetido.
* Un informe demasiado grande para agregarse devuelve `400 VALIDATION_ERROR` con «This report is too large».
  Reduce la ventana, el motor o el prompt.

Consulta [Monitores](/es/monitors.md#errores) para los códigos que comparten todos los endpoints de monitores.

## Próximos pasos

> **[Fuentes y respuestas](/es/monitors/evidence.md)**
>
> Las páginas citadas y las respuestas detrás de cada cifra.

> **[Eventos y alertas](/es/monitors/events-and-alerts.md)**
>
> Recibe un aviso cuando cambian las respuestas.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.