Obtenir l’instantané de performance
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/performance \
--header 'Authorization: <authorization>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/performance"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://www.qwairy.co/api/v1/brands/{brandId}/performance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"brand": {
"id": "<string>",
"name": "<string>",
"domain": "<string>"
},
"period": {
"start": "<string>",
"end": "<string>"
},
"methodology": {
"promptsCount": 123,
"providersCount": 123,
"providers": [
{}
],
"responsesTotal": 123,
"responsesWithMentions": 123,
"responsesWithSources": 123
},
"scores": {
"mentionRate": 123,
"mentionCount": 123,
"mentionTotal": 123,
"coverage": 123,
"sourceRate": 123,
"sourceCount": 123,
"sourceTotal": 123,
"sourcePages": 123,
"sentiment": 123,
"shareOfVoice": 123
},
"topCompetitors": [
{}
],
"topSources": [
{}
],
"byTopic": [
{
"id": "<string>",
"topic": "<string>",
"score": 123,
"mentionRate": 123,
"sourceRate": 123,
"shareOfVoice": 123,
"avgSentiment": 123,
"promptsCount": 123
}
],
"byTag": [
{
"id": "<string>",
"name": "<string>",
"score": 123,
"mentionRate": 123,
"sourceRate": 123,
"shareOfVoice": 123,
"avgSentiment": 123,
"promptsCount": 123
}
]
}Performance
Obtenir l’instantané de performance
Lisez les indicateurs de mention, de citation, de sentiment et de part de voix d’une marque au niveau des réponses.
GET
https://www.qwairy.co
/
api
/
v1
/
brands
/
{brandId}
/
performance
Obtenir l’instantané de performance
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/performance \
--header 'Authorization: <authorization>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/performance"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://www.qwairy.co/api/v1/brands/{brandId}/performance', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"brand": {
"id": "<string>",
"name": "<string>",
"domain": "<string>"
},
"period": {
"start": "<string>",
"end": "<string>"
},
"methodology": {
"promptsCount": 123,
"providersCount": 123,
"providers": [
{}
],
"responsesTotal": 123,
"responsesWithMentions": 123,
"responsesWithSources": 123
},
"scores": {
"mentionRate": 123,
"mentionCount": 123,
"mentionTotal": 123,
"coverage": 123,
"sourceRate": 123,
"sourceCount": 123,
"sourceTotal": 123,
"sourcePages": 123,
"sentiment": 123,
"shareOfVoice": 123
},
"topCompetitors": [
{}
],
"topSources": [
{}
],
"byTopic": [
{
"id": "<string>",
"topic": "<string>",
"score": 123,
"mentionRate": 123,
"sourceRate": 123,
"shareOfVoice": 123,
"avgSentiment": 123,
"promptsCount": 123
}
],
"byTag": [
{
"id": "<string>",
"name": "<string>",
"score": 123,
"mentionRate": 123,
"sourceRate": 123,
"shareOfVoice": 123,
"avgSentiment": 123,
"promptsCount": 123
}
]
}Renvoie les indicateurs au niveau des réponses pour le périmètre sélectionné, ainsi que les ventilations par Topic, Tag, concurrent et source.
Consultez Limites de débit pour la gestion des nouvelles tentatives.
Cet endpoint renvoie des indicateurs agrégés. Consultez Competitor et Source pour les structures utilisées dans
topCompetitors et topSources.Formules des indicateurs
Comprendre le calcul des indicateurs est indispensable pour reproduire les résultats :| Indicateur | Formule | Détails |
|---|---|---|
| Taux de mention | mentionCount / mentionTotal × 100 | mentionCount est le nombre de réponses avec une mention SELF. mentionTotal est le nombre de réponses avec au moins une mention SELF ou DIRECT. |
| Couverture | mentionCount / responsesTotal × 100 | Couverture au niveau des réponses : réponses avec une mention SELF divisées par toutes les réponses du périmètre sélectionné. Ce n’est pas la couverture au niveau des prompts. |
| Taux de citation | sourceCount / sourceTotal × 100 | sourceCount est le nombre de réponses avec une citation SELF. sourceTotal est le nombre de réponses avec au moins une citation SELF ou DIRECT. |
| Part de voix | sovSelf / sovTotal × 100 | Occurrences de mentions SELF divisées par les occurrences de mentions SELF et DIRECT. Les mentions INDIRECT sont exclues. |
Le taux de mention et la couverture ont des dénominateurs différents. La réponse expose
mentionCount, mentionTotal et responsesTotal, mais pas sovSelf ni sovTotal.string
requis
Jeton bearer. Exemple :
Bearer qw-api-xxxGET /api/v1/brands/{brandId}/performance
Paramètres de chemin
string
requis
L’identifiant unique de la marque
Paramètres de requête
number
Nombre de jours à inclure dans l’instantané. Sans valeur, toutes les données sont renvoyées.
string
Date de début au format
YYYY-MM-DD. Fournissez-la avec endDate ; une borne seule est actuellement ignorée. Choisissez soit period, soit la paire de dates complète.string
Date de fin au format
YYYY-MM-DD. Fournissez-la avec startDate ; une borne seule est actuellement ignorée. Ne combinez pas la paire de dates complète avec period.Utilisez un seul mode de dates par requête. Combiner
period avec une paire de dates personnalisées complète peut faire diverger le filtre appliqué des métadonnées period renvoyées.string
Filtre par fournisseur IA. Accepte plusieurs valeurs séparées par des virgules (par exemple
chatgpt,claude).string
Filtre par identifiant de Topic (keywordId). Accepte plusieurs valeurs séparées par des virgules (par exemple
id1,id2).string
Filtre par identifiant de Tag. Accepte plusieurs valeurs séparées par des virgules (par exemple
id1,id2).string
Filtre par type de prompt :
TOFU, MOFU, BOFU ou POST_PURCHASERéponse
boolean
Indique si la requête a réussi
object
object
Afficher Détail de la méthodologie
Afficher Détail de la méthodologie
number
Nombre total de prompts analysés
number
Nombre de fournisseurs IA
array
Liste des identifiants de fournisseurs (par exemple
openai, perplexity)number
Réponses enregistrées dans le périmètre sélectionné
number
Réponses contenant au moins une mention SELF ou DIRECT
number
Réponses contenant au moins une citation SELF ou DIRECT
object
Afficher Scores de performance
Afficher Scores de performance
number
Taux de mention de la marque (%)
number
Nombre de réponses où votre marque (SELF) est mentionnée
number
Nombre de réponses contenant au moins une mention SELF ou d’un concurrent DIRECT. C’est le dénominateur de
mentionRate : ce n’est PAS le nombre total de réponses. Les mentions INDIRECT sont exclues.number
Couverture de la marque (%). Part de toutes les réponses suivies où votre marque est mentionnée. Formule :
mentionCount / responsesTotal × 100.number
Taux de citation comme source (%)
number
Nombre de réponses distinctes contenant une citation SELF
number
Nombre de réponses contenant au moins une citation de source SELF ou DIRECT. C’est le dénominateur de
sourceRate : ce n’est PAS le nombre total de réponses. Les sources INDIRECT sont exclues.number
Nombre d’URL distinctes de votre domaine (SELF) citées comme sources dans l’ensemble des réponses IA.
number
Sentiment moyen des mentions SELF sur une échelle de 0 à 100 ;
0 est aussi renvoyé en l’absence de mention SELF notéenumber
Part de voix (%). Formule : mentions SELF / (mentions SELF + DIRECT) × 100. Les mentions INDIRECT sont exclues.
array
Principaux concurrents par nombre de mentions
array
Principales sources par nombre de citations
array
Afficher Objet de ventilation par Topic
Afficher Objet de ventilation par Topic
string
Identifiant du Topic
string
Nom du Topic
number
Score composite (0 à 100). Formule :
mentionRate × 0.5 + sourceRate × 0.3 + shareOfVoice × 0.2.number
Taux de mention pour ce Topic (%). Formule :
selfMentionAnswers / responsesWithMentions × 100, où responsesWithMentions compte les réponses de ce Topic avec au moins une mention SELF ou d’un concurrent DIRECT. Même dénominateur que scores.mentionRate au premier niveau.number
Taux de citation pour ce Topic (%). Formule :
selfSourceAnswers / responsesWithSources × 100, où responsesWithSources compte les réponses de ce Topic avec au moins une citation de source SELF ou DIRECT. Même dénominateur que scores.sourceRate au premier niveau (INDIRECT exclu).number
Part de voix pour ce Topic (%). Formule : mentions SELF du Topic / (mentions SELF + DIRECT du Topic) × 100.
number
Score de sentiment moyen des mentions de la marque dans ce Topic (null sans mention)
number
Nombre de prompts distincts dans ce Topic
array
Afficher Objet de ventilation par Tag
Afficher Objet de ventilation par Tag
string
Identifiant du Tag
string
Nom du Tag
number
Score composite (0 à 100). Formule :
mentionRate × 0.5 + sourceRate × 0.3 + shareOfVoice × 0.2.number
Taux de mention pour ce Tag (%). Formule :
selfMentionAnswers / responsesWithMentions × 100, où responsesWithMentions compte les réponses de ce Tag avec au moins une mention SELF ou d’un concurrent DIRECT. Même dénominateur que scores.mentionRate au premier niveau.number
Taux de citation pour ce Tag (%). Formule :
selfSourceAnswers / responsesWithSources × 100, où responsesWithSources compte les réponses de ce Tag avec au moins une citation de source SELF ou DIRECT. Même dénominateur que scores.sourceRate au premier niveau (INDIRECT exclu).number
Part de voix pour ce Tag (%). Formule : mentions SELF du Tag / (mentions SELF + DIRECT du Tag) × 100.
number
Score de sentiment moyen des mentions de la marque dans ce Tag (null sans mention)
number
Nombre de prompts distincts dans ce Tag
Exemple de requête
curl "https://www.qwairy.co/api/v1/brands/YOUR_BRAND_ID/performance?period=30" \
-H "Authorization: Bearer $QWAIRY_API_TOKEN"
Exemple de réponse
{
"success": true,
"brand": {
"id": "brand_01",
"name": "Acme Analytics",
"domain": "acme.example"
},
"period": {
"start": "2026-07-01",
"end": "2026-07-31"
},
"methodology": {
"promptsCount": 156,
"providersCount": 2,
"providers": ["openai", "perplexity"],
"responsesTotal": 312,
"responsesWithMentions": 230,
"responsesWithSources": 184
},
"scores": {
"mentionRate": 45.2,
"mentionCount": 104,
"mentionTotal": 230,
"coverage": 33.33,
"sourceRate": 23.9,
"sourceCount": 44,
"sourceTotal": 184,
"sourcePages": 27,
"sentiment": 78.1,
"shareOfVoice": 8.13
},
"topCompetitors": [
{
"id": "competitor_01",
"name": "Rival Labs",
"relationship": "DIRECT",
"mentions": 111,
"avgPosition": 2.3,
"avgSentiment": 75.2
}
],
"topSources": [
{
"id": "source_01",
"domain": "publisher.example",
"mentions": 102,
"avgPosition": 3.1,
"isSelf": false
}
],
"byTopic": [
{
"id": "topic_01",
"topic": "Data exports",
"score": 68,
"mentionRate": 67.50,
"sourceRate": 28.00,
"shareOfVoice": 9.44,
"avgSentiment": 76.3,
"promptsCount": 12
}
],
"byTag": [
{
"id": "tag_01",
"name": "comparison",
"score": 72,
"mentionRate": 55.00,
"sourceRate": 30.00,
"shareOfVoice": 10.25,
"avgSentiment": 81.5,
"promptsCount": 8
}
]
}
Erreurs
| Statut | Code | Description |
|---|---|---|
| 400 | INVALID_PARAMETER | Paramètre de requête invalide |
| 401 | erreur de passerelle | Jeton d’API manquant ou invalide |
| 404 | BRAND_NOT_FOUND | Marque inexistante ou inaccessible |
| 429 | erreur de passerelle | Limite de débit dépassée ; respectez Retry-After |

