> ## 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.

# Rapports de moniteur : taux de mention, part de voix et analytics

> Lisez le rapport d'un moniteur depuis un seul endpoint, avec une fenêtre, des filtres, des dénominateurs et des règles de comparaison explicites.

`GET /v1/monitors/{id}/analytics` ([référence](/fr/api-reference/monitors/get-analytics.md)) renvoie chaque
chiffre du rapport d'un moniteur à partir d'un seul ensemble de réponses : une fenêtre, un jeu de filtres, et la même fenêtre
juste avant pour la comparaison. Construisez chaque panneau de votre propre rapport à partir de cet endpoint, et lisez `quality`
avant les chiffres. La lecture d'un rapport ne coûte rien.

```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"
```

## Paramètres de requête

| Paramètre | Description |
| - | - |
| `days` | `7`, `30` (par défaut) ou `90` : la fenêtre se termine maintenant. Incompatible avec `since` et `until`. |
| `since`, `until` | Une fenêtre fixe. Envoyez les deux, sous forme d'instants ISO 8601 avec fuseau horaire, comme `2026-10-16T00:00:00Z`. L'intervalle doit être positif et de 90 jours au plus, et `until` ne peut pas être dans le futur. Une date seule comme `2026-10-16` est refusée. |
| `engine` | Uniquement les réponses de ce moteur : un id de moteur de moniteur ou l'un de ses alias, comme `GOOGLE_AIO`. |
| `prompt` | Uniquement les réponses à ce prompt, par texte exact, de 1 à 2 000 caractères. Les réponses sont stockées par texte de prompt : un prompt retiré du moniteur reste interrogeable. |

La fenêtre est semi-ouverte et en UTC : `since` est inclus, `until` ne l'est pas. La fenêtre précédente a exactement
la même durée, se termine à `since` et utilise les mêmes filtres : chaque comparaison se fait donc à conditions égales. Envoyez
chaque paramètre une seule fois.

## Exemple

Par exemple, un moniteur de marque qui pose deux prompts à ChatGPT une fois par jour avec `samples: 5` (dix réponses par
jour), filtré sur ChatGPT sur deux jours, renvoie :

> **Réponse complète**
>
> ```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"
>   }
> }
> ```

Lecture : la marque a été citée dans 9 des 20 réponses de ChatGPT (45 %), soit 15 points de moins que les deux jours
précédents. Northwind Audio a été cité dans davantage de réponses, et « are cheap earbuds worth it » est le prompt le plus
faible, avec 4 réponses qui ont cité un concurrent et pas la marque. `quality.lowSample` vaut `true` : traitez donc
la variation comme un signal à vérifier, pas comme une tendance.

## Sections de la réponse

| Champ | Contenu |
| - | - |
| `monitor` | La définition enregistrée du moniteur. |
| `window` | `since`, `until`, `previousSince`, `previousUntil`, `timezone` (`UTC`) et `bounds` (`[since, until)`). `previousUntil` vaut toujours `since`. |
| `filters` | Les filtres appliqués, résolus : l'id canonique du moteur, le prompt exact, ou `null`. |
| `stats`, `previous` | Comptages et taux pour la fenêtre et pour la fenêtre précédente. Voir [Objets de taux](#objets-de-taux). |
| `changes` | `mentionRatePp` et `citationRatePp` : la variation en points de pourcentage, ou `null` quand la comparaison est masquée. |
| `engineRates` | L'objet de taux par moteur. |
| `series` | L'objet de taux par jour UTC et par moteur, avec `partial: true` pour un jour que la fenêtre ne couvre qu'en partie. |
| `brands` | Votre marque (`__you__`) et chaque concurrent cité dans la fenêtre, du plus mentionné au moins mentionné. Voir [Marques et part de voix](#marques-et-part-de-voix). |
| `voiceSeries` | Par jour UTC et par marque : `mentions`, `runs` (les réponses du jour), `mentionRate` et `shareOfVoice`. |
| `prompts` | Par prompt, du taux de mention le plus faible au plus élevé : l'objet de taux, `previous`, et `engines`, une cellule par moteur. |
| `opportunities` | Cellules où un concurrent a été cité et pas votre marque (`competitorOnly` supérieur à 0), celles qui comptent le plus de telles réponses d'abord. La liste sur laquelle travailler. |
| `quality` | La composition de l'échantillon et ce que les chiffres ne peuvent pas dire. Voir [Qualité](#qualité). |
| `pauses` | Les pauses qui chevauchent la fenêtre, de la plus ancienne à la plus récente : `pausedAt` et `resumedAt` (`null` pendant la pause). |
| `health`, `healthScope` | L'état récent des tâches, un périmètre distinct du rapport. Voir [Santé](#santé). |

### Objets de taux

`stats`, `previous`, chaque entrée de `engineRates` et de `series`, chaque prompt et chaque cellule portent les mêmes
champs :

| Champ | Signification |
| - | - |
| `runs` | Réponses notées. Le dénominateur de chaque taux ci-dessous. |
| `mentioned` | Réponses qui ont cité votre marque. |
| `cited` | Réponses qui ont cité l'un de vos domaines. |
| `competitorOnly` | Réponses qui ont cité au moins un concurrent et pas votre marque. |
| `mentionRate`, `citationRate`, `competitorOnlyRate` | `100 × count / runs`, ou `null` quand `runs` vaut 0. |

### Cellules

Une cellule est un prompt sur un moteur. Outre l'objet de taux et `previous`, elle porte :

| Champ | Signification |
| - | - |
| `mentionRateChangePp` | La variation de la cellule en points, ou `null` quand la comparaison est masquée. |
| `topCompetitor` | Le concurrent cité dans le plus grand nombre de réponses de la cellule, ou `null`. |
| `topCompetitorRate` | Le taux de mention de ce concurrent dans la cellule, ou `null` quand certaines réponses de la cellule sont antérieures au stockage du contexte de notation. |
| `evidenceTaskId` | La dernière réponse qui a cité un concurrent et pas votre marque. |
| `mentionTaskId` | La dernière réponse qui a cité votre marque. |
| `latestTaskId` | La dernière réponse. |

Chaque id vaut `null` quand aucune réponse ne correspond. Ouvrez-en un avec
[`GET /v1/monitors/{id}/answers/{taskId}`](/fr/monitors/evidence#lire-une-réponse).

### Marques et part de voix

Chaque entrée de `brands` a `name`, `mentions`, `sampleSize`, `mentionRate`, `shareOfVoice`,
`previousMentionRate`, `previousShareOfVoice` et `configured` (`false` pour une marque citée dans la fenêtre
qui ne figure plus sur le moniteur).

## Ce que signifient les chiffres

`GET /v1/monitors/capabilities` renvoie ces définitions sous `metrics`, pour qu'un client puisse les afficher à côté
des chiffres.

* **`mentionRate`** vaut `100 × mentioned / réponses notées`, pour la fenêtre, chaque moteur, chaque jour et chaque
  cellule. Il est pondéré par les réponses, pas une moyenne entre moteurs : un moteur très actif ne peut pas être écrasé par
  un moteur peu actif.
* **`citationRate`** a la même forme pour les réponses qui ont cité l'un de vos domaines. Sans domaine, il vaut
  toujours 0, car le suivi des citations est désactivé.
* **Le taux d'une marque se divise par son propre `sampleSize`.** Pour votre marque, ce sont toutes les réponses notées. Pour un
  concurrent, seulement les réponses notées pendant qu'il figurait sur le moniteur : un concurrent ajouté aujourd'hui est
  mesuré à partir d'aujourd'hui. Le `mentionRate` d'un concurrent vaut `null` quand certaines réponses de la fenêtre ont été notées
  avant le stockage du contexte de notation, car on ignore à quoi elles ont été comparées.
* **`shareOfVoice`** vaut `100 × mentions de cette marque / toutes les mentions des marques suivies` dans la fenêtre : les
  parts d'une fenêtre totalisent donc 100 (`quality.trackedBrandMentions` est le dénominateur). Il compare les
  marques au sein des réponses que vous avez collectées pour ces prompts. Ce n'est ni une part de marché ni un classement de
  visibilité.
* **`competitorOnly`** et `opportunities` comptent les réponses qui ont cité un concurrent alors que votre marque était
  absente : l'écart sur lequel vous pouvez agir.
* **`null` n'est pas 0.** Un taux vaut `null` quand il n'y avait aucune réponse à diviser. 0 signifie qu'il y a eu des
  réponses et qu'aucune ne correspondait.
* **Une réponse sans texte compte comme non mentionnée.** Une tâche terminée qui n'a renvoyé aucune réponse reste dans le
  dénominateur ; `quality.noAnswerObservations` les compte. Une tâche **échouée** est exclue de tous les
  taux et n'apparaît que dans `health`. Un moteur en panne réduit l'échantillon au lieu d'apparaître comme une absence.
* **`position`** sur une réponse notée est l'offset de caractère de la première occurrence de votre marque : un indicateur de
  mise en avant, pas un rang. Il vaut `null` quand la marque est absente.

### Quand les variations sont masquées

`changes`, le `mentionRateChangePp` de chaque cellule, et les `previousMentionRate` et
`previousShareOfVoice` de chaque marque valent `null`, et `quality.comparable` vaut `false`, quand les deux fenêtres ne peuvent pas être
comparées. `quality.comparisonReason` en donne la raison :

| `comparisonReason` | Signification |
| - | - |
| `insufficient_periods` | L'une des deux fenêtres n'a aucune réponse. |
| `legacy_scoring_unknown` | Certaines réponses ont été notées avant le stockage de la définition avec laquelle elles ont été notées. |
| `scoring_definitions_changed` | Les alias, domaines, concurrents ou le pays ont changé entre les réponses des deux fenêtres. |

Chaque réponse garde la définition avec laquelle elle a été notée, et `quality.scoringVersions` liste les
définitions distinctes sur les deux fenêtres (`legacy` pour les réponses qui n'en ont pas). Modifier vos alias ou concurrents
ne réécrit jamais les réponses passées. Seule exception : la lecture hebdomadaire des concurrents. Quand les concurrents qu'elle
trouve changent, les réponses enregistrées du moniteur sont notées à nouveau avec la nouvelle liste.

### Qualité

| Champ | Signification |
| - | - |
| `comparable`, `comparisonReason` | Si les variations sont affichées, et pourquoi elles ne le sont pas. |
| `scoringVersions` | Les définitions de notation distinctes sur les deux fenêtres. |
| `scoring` | Toujours `collection_time_definitions` : les réponses sont notées avec la définition en vigueur à leur arrivée. |
| `sampleSize`, `previousSampleSize` | Réponses notées dans chaque fenêtre. |
| `lowSample` | `true` en dessous de 30 réponses notées dans la fenêtre. |
| `configuredCells`, `observedCells`, `missingCells` | Les cellules prompt × moteur couvertes par les filtres, les cellules avec au moins une réponse, et la différence. |
| `partialDays` | Les jours UTC que la fenêtre coupe, ou qui ne sont pas encore terminés. Le comptage plus faible d'un jour partiel est arithmétique, pas un déclin. |
| `noAnswerObservations` | Réponses terminées sans texte, comptées comme non mentionnées. |
| `unknownObservations` | Réponses notées avant le stockage du contexte de notation. |
| `noAnswerIncluded`, `failedTasksIncluded`, `historicalFailures` | Toujours `true`, `false` et `null` : les réponses sans texte sont dans le dénominateur, les tâches échouées n'y sont pas, et les échecs ne sont jamais reconstruits à partir de l'historique. |
| `denominator`, `shareOfVoiceDenominator` | `scored_answers` et `tracked_brand_mentions`. |
| `trackedBrandMentions` | Le dénominateur de la part de voix. |
| `answerTextLimit` | `8000` : le texte de réponse stocké est coupé à 8 000 caractères. |

### Santé

`health` contient `completed`, `failed`, `pending` et `topError` (le code d'erreur le plus fréquent parmi les tâches
échouées) pour les tâches du moniteur en cours ou terminées au cours des dernières 24 heures. `healthScope` vaut
toujours `recent_visible_tasks`. C'est un diagnostic des exécutions, indépendant de la fenêtre, et jamais une partie
du dénominateur d'un taux.

## Interroger pendant une exécution

Chaque appel renvoie le rapport complet pour la fenêtre et les filtres. Pendant une exécution,
`health.pending` compte ses tâches encore en cours. Relisez le rapport quand il atteint 0.

## Rapports de catégorie

Un [moniteur de catégorie](/fr/monitors.md#moniteurs-de-catégorie) renvoie un corps différent depuis le même endpoint, avec
les mêmes `window`, `filters`, `quality`, `pauses` et `health` :

* `stats` et `previous` contiennent `runs`, `named` (réponses qui ont cité au moins une marque suivie) et
  `namedRate`. `changes.namedRatePp` est la variation en points.
* `category` contient le classement :

| Champ | Contenu |
| - | - |
| `category.name` | La `category` du moniteur. |
| `category.brands` | Chaque marque suivie et chaque marque citée par les réponses, de la plus mentionnée à la moins mentionnée : `name`, `rank`, `mentions`, `sampleSize`, `mentionRate`, `shareOfVoice`, `previousMentionRate`, `previousShareOfVoice`, `changePp` et `configured`. |
| `category.topics` | Une ligne par sous-domaine (`topic: null` est toute la catégorie) : `prompts`, `runs`, `named`, `namedRate` et `leaders`, les trois marques les plus citées. |
| `category.engines` | Une ligne par moteur ayant des réponses dans la fenêtre : `runs`, `named`, `namedRate` et `leaders`. |
| `category.series` | Par jour UTC, les cinq marques suivies en tête : `mentions`, `sampleSize`, `runs`, `mentionRate` et `partial`. |
| `category.prompts` | Une ligne par prompt : `topic`, `retired` (`true` pour un prompt qui ne figure plus sur le moniteur), `runs`, `named`, `namedRate`, `leaders`, et `engines`, chacun avec `runs`, `named` et un `evidenceTaskId` pour la dernière réponse qui a cité une marque. |

Par exemple, une entrée 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`** ordonne les marques selon le nombre de réponses qui les citent. Une marque qu'aucune réponse n'a citée a
  `rank: null`.
* **`mentionRate`** se divise par le propre `sampleSize` de la marque : les réponses notées pendant qu'elle figurait dans la liste.
* **`shareOfVoice`** vaut `100 × mentions de cette marque / toutes les mentions de marques` dans la fenêtre : les parts
  totalisent donc 100.

## Erreurs et limites

* La fenêtre est de 90 jours au plus.
* Des paramètres invalides renvoient `400 VALIDATION_ERROR` avec un message qui nomme le problème : `days` avec `since`
  ou `until`, un seul de `since` et `until`, un horodatage sans fuseau horaire, un intervalle de plus de 90 jours, un
  `until` dans le futur, un moteur qui ne peut pas être suivi, un prompt de plus de 2 000 caractères, ou un
  paramètre répété.
* Un rapport trop volumineux à agréger renvoie `400 VALIDATION_ERROR` avec « This report is too large ». Réduisez
  la fenêtre, le moteur ou le prompt.

Voir [Moniteurs](/fr/monitors.md#erreurs) pour les codes communs à tous les endpoints de moniteur.

## Étapes suivantes

> **[Sources et réponses](/fr/monitors/evidence.md)**
>
> Les pages citées et les réponses derrière chaque chiffre.

> **[Événements et alertes](/fr/monitors/events-and-alerts.md)**
>
> Soyez prévenu quand les réponses changent.


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