Lister les instantanés de perception
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/perception \
--header 'Authorization: <authorization>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/perception"
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}/perception', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"brand": {
"id": "<string>",
"name": "<string>",
"domain": "<string>"
},
"current": {},
"previous": {},
"trends": {},
"averages": {},
"history": [
{
"snapshotId": "<string>",
"month": 123,
"year": 123,
"label": "<string>",
"scores": {},
"completedAt": "<string>"
}
],
"meta": {},
"nextAnalysisDate": "<string>"
}Perception
Lister les instantanés de perception
Listez les instantanés mensuels de perception terminés, avec scores, tendances, moyennes et historique.
GET
https://www.qwairy.co
/
api
/
v1
/
brands
/
{brandId}
/
perception
Lister les instantanés de perception
curl --request GET \
--url https://www.qwairy.co/api/v1/brands/{brandId}/perception \
--header 'Authorization: <authorization>'import requests
url = "https://www.qwairy.co/api/v1/brands/{brandId}/perception"
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}/perception', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"success": true,
"brand": {
"id": "<string>",
"name": "<string>",
"domain": "<string>"
},
"current": {},
"previous": {},
"trends": {},
"averages": {},
"history": [
{
"snapshotId": "<string>",
"month": 123,
"year": 123,
"label": "<string>",
"scores": {},
"completedAt": "<string>"
}
],
"meta": {},
"nextAnalysisDate": "<string>"
}Renvoie les instantanés de perception terminés, enregistrés par mois. Chaque instantané peut contenir quatre scores de
0-100 : sentiment, alignement, cohérence et alignement factuel. Un score peut valoir null s’il n’a pas été calculé.
Il n’y a pas de filtre
period en jours. Utilisez months pour régler la profondeur de l’historique. nextAnalysisDate est déduit du mois du dernier instantané ; ce n’est pas une garantie de livraison.string
requis
Jeton bearer. Exemple :
Bearer qw-api-xxxParamètres de chemin
string
requis
L’identifiant unique de la marque
Paramètres de requête
number
défaut:"12"
Nombre de mois d’historique à inclure (maximum : 24). Seuls les instantanés
COMPLETED sont renvoyés.Réponse
boolean
Indique si la requête a réussi
object
object
Dernier instantané terminé, ou
null s’il n’y en a pas. Contient snapshotId, month, year, completedAt et un objet scores avec sentiment, alignment, consistency, factualAlignment (chacun de 0-100 ou null).object
Instantané terminé précédent, de même forme que
current, ou null.object
Écart (actuel − précédent) pour chaque score :
sentiment, alignment, consistency, factualAlignment. Une valeur vaut null si l’un des deux termes manque.object
Moyenne de chaque score sur l’historique renvoyé (
null sans point de données).array
object
months (fenêtre demandée) et dataPoints (nombre d’instantanés renvoyés).string
Premier jour du mois suivant le dernier instantané, ou mois civil suivant s’il n’existe aucun instantané. C’est une date ISO 8601 calculée, pas un engagement de livraison.
Exemple de requête
curl -X GET "https://www.qwairy.co/api/v1/brands/cm1234567890abcdef/perception?months=6" \
-H "Authorization: Bearer qw-api-your-token-here"
Exemple de réponse
{
"success": true,
"brand": {
"id": "cm1234567890abcdef",
"name": "Northstar Labs",
"domain": "northstar.example"
},
"current": {
"snapshotId": "snap_2026_05",
"month": 5,
"year": 2026,
"scores": {
"sentiment": 78,
"alignment": 65,
"consistency": 82,
"factualAlignment": 71
},
"completedAt": "2026-05-03T04:12:00.000Z"
},
"previous": {
"snapshotId": "snap_2026_04",
"month": 4,
"year": 2026,
"scores": {
"sentiment": 74,
"alignment": 61,
"consistency": 80,
"factualAlignment": 69
},
"completedAt": "2026-04-02T04:09:00.000Z"
},
"trends": {
"sentiment": 4,
"alignment": 4,
"consistency": 2,
"factualAlignment": 2
},
"averages": {
"sentiment": 75.5,
"alignment": 62.0,
"consistency": 80.3,
"factualAlignment": 69.8
},
"history": [
{
"snapshotId": "snap_2026_04",
"month": 4,
"year": 2026,
"label": "04/2026",
"scores": {
"sentiment": 74,
"alignment": 61,
"consistency": 80,
"factualAlignment": 69
},
"completedAt": "2026-04-02T04:09:00.000Z"
},
{
"snapshotId": "snap_2026_05",
"month": 5,
"year": 2026,
"label": "05/2026",
"scores": {
"sentiment": 78,
"alignment": 65,
"consistency": 82,
"factualAlignment": 71
},
"completedAt": "2026-05-03T04:12:00.000Z"
}
],
"meta": {
"months": 6,
"dataPoints": 2
},
"nextAnalysisDate": "2026-06-01T00:00:00.000Z"
}
Erreurs
| Statut | Code | Description |
|---|---|---|
400 | INVALID_PARAMETER | Valeur de months invalide |
401 | erreur de passerelle | Échec de l’authentification |
404 | BRAND_NOT_FOUND | Marque introuvable ou inaccessible |
429 | erreur de passerelle | Limite de débit dépassée ; respectez Retry-After |

