Alerts
Events associés : alert.created · alert.resolved · alert.updated
L’objet Alert
Attributs
idstringIdentifiant unique de l'objet (préfixé, opaque).
objectstringalertbrandstringLa marque à laquelle l'objet appartient (
br_…).marketstringCode du marché (pays ISO, par ex.
FR).kindenumWhat an alert reports. Adding a kind = one case here, one detector and the copy; the inbox is data-driven.
Valeurs possibles :
price_hallucination·wrong_availability·visibility_drop·new_competitor·spec_invented·wrong_local_fact·seo_regressionseverityenumValeurs possibles :
critical·medium·lowstatusenumLifecycle of an alert (mockup): Nouvelle → Vue → Traitée → Résolue vérifiée, plus Ignorée on the side.
Resolvedis only ever reached by a verification re-sampling (ResolveVerifiedAlerts), never by the API.Valeurs possibles :
new·seen·treated·resolved·ignoredproductobjectnullableAfficher les attributs enfants
idstringnullableIdentifiant unique de l'objet (préfixé, opaque).
titlestring
queryobjectnullableAfficher les attributs enfants
idstringnullableIdentifiant unique de l'objet (préfixé, opaque).
textstring
competitorstringnullablelocationobjectnullableAfficher les attributs enfants
idstringIdentifiant unique de l'objet (préfixé, opaque).
namestringnullablecitystringnullable
modelenumnullableThe AI assistants Skoup samples. Keys match the front's
lib/ai-models.tsand the--model-*tokens; model ids and providers live in config('skoup.visibility').Valeurs possibles :
chatgpt·claude·gemini·perplexity·grok·mistral·deepseek·qwenmodelsarray of objectAfficher les attributs enfants
modelstringoccurrencesinteger
occurrencesintegerclaimedobjecttruthobjectnullablepersistedbooleanThe claim survived the last verification re-sampling.
verificationsintegerfirst_seen_atstringlast_seen_atstringtreated_atstringnullabledismissed_atstringnullableclose_reasonenumnullableWhy Skoup itself closed an alert.
Rejudged: the way a claim is judged changed and this one no longer counts as wrong — never a fix the brand made, so never « resolved ».Valeurs possibles :
rejudgedlast_verification_atstringnullableresolved_atstringnullablelivemodebooleantruepour les données réelles,falsepour le bac à sable du mode test.createdintegerTime at which the object was created (unix timestamp, seconds).
{
"id": "alrt_031CQlTxUKUOFYaHSd3kBY",
"object": "alert",
"brand": "br_031CQGx2DNM4mxT2CO7BL3",
"market": "FR",
"kind": "price_hallucination",
"severity": "critical",
"status": "new",
"product": {
"id": "prod_031CQNg2fZXIIClKM3I8uF",
"title": "Grizl CF SL 7"
},
"query": {
"id": "qry_031CQSmQyxphdXPSkx2QxP",
"text": "meilleur vélo gravel carbone à moins de 3000 €"
},
"competitor": null,
"model": "chatgpt",
"models": [
{
"model": "chatgpt",
"occurrences": 2
},
{
"model": "gemini",
"occurrences": 1
}
],
"occurrences": 3,
"claimed": {
"price": 2199,
"price_max": null,
"price_kind": "exact",
"period": null,
"unit": null,
"scope": "offer",
"currency": "EUR",
"min": 2199,
"max": 2199,
"gap": 0.12,
"runs": 3
},
"truth": {
"price": 2499,
"min": 2499,
"max": 2499,
"currency": "EUR",
"period": null,
"unit": null,
"annual_min": null,
"annual_max": null,
"max_with_addons": 2499,
"open_ended": false,
"addons": [],
"scope": "offer",
"variants": 4,
"checked_at": "2026-09-21T02:40:00Z"
},
"persisted": false,
"verifications": 0,
"first_seen_at": "2026-09-21T02:40:00Z",
"last_seen_at": "2026-09-21T02:40:00Z",
"treated_at": null,
"dismissed_at": null,
"close_reason": null,
"last_verification_at": null,
"resolved_at": null,
"livemode": true,
"created": 1790000000
}Retrieve an alert
GET/v1/brands/{brand}/alerts/{alert}
Paramètres
brandstringobligatoireBrand id (
br_…).alertstringobligatoireAlert id (
alrt_…).
Retour
Renvoie l’objet alert. Lève une erreur en cas de problème.
curl
curl https://api.skoup.ai/v1/brands/br_034CyfRFSXUqzrbzV6MAfZ/alerts/alrt_034sOvSY3W2DUqG0hp23SH \
-H "Authorization: Bearer skoup_test_4eC39HqLyjWDarjtT1zdp7dc"{
"id": "alrt_031CQlTxUKUOFYaHSd3kBY",
"object": "alert",
"brand": "br_031CQGx2DNM4mxT2CO7BL3",
"market": "FR",
"kind": "price_hallucination",
"severity": "critical",
"status": "new",
"product": {
"id": "prod_031CQNg2fZXIIClKM3I8uF",
"title": "Grizl CF SL 7"
},
"query": {
"id": "qry_031CQSmQyxphdXPSkx2QxP",
"text": "meilleur vélo gravel carbone à moins de 3000 €"
},
"competitor": null,
"model": "chatgpt",
"models": [
{
"model": "chatgpt",
"occurrences": 2
},
{
"model": "gemini",
"occurrences": 1
}
],
"occurrences": 3,
"claimed": {
"price": 2199,
"price_max": null,
"price_kind": "exact",
"period": null,
"unit": null,
"scope": "offer",
"currency": "EUR",
"min": 2199,
"max": 2199,
"gap": 0.12,
"runs": 3
},
"truth": {
"price": 2499,
"min": 2499,
"max": 2499,
"currency": "EUR",
"period": null,
"unit": null,
"annual_min": null,
"annual_max": null,
"max_with_addons": 2499,
"open_ended": false,
"addons": [],
"scope": "offer",
"variants": 4,
"checked_at": "2026-09-21T02:40:00Z"
},
"persisted": false,
"verifications": 0,
"first_seen_at": "2026-09-21T02:40:00Z",
"last_seen_at": "2026-09-21T02:40:00Z",
"treated_at": null,
"dismissed_at": null,
"close_reason": null,
"last_verification_at": null,
"resolved_at": null,
"livemode": true,
"created": 1790000000
}List alerts
GET/v1/brands/{brand}/alerts
Incidents detected at the end of the samplings — price hallucinations, wrong availability, visibility drops, new competitors, invented specs — newest first.
Paramètres
brandstringobligatoireBrand id (
br_…).marketstringstatusstringkindstringseveritystringlimitintegerNombre d'objets à renvoyer, entre 1 et 100 (20 par défaut).
starting_afterstringCurseur : l'
iddu dernier objet de la page précédente.
Retour
Un dictionnaire dont la propriété data contient jusqu’à limit objets alert, du plus récent au plus ancien, et has_more indique s’il reste une page. Lève une erreur en cas de problème.
curl
curl https://api.skoup.ai/v1/brands/br_034CyfRFSXUqzrbzV6MAfZ/alerts?limit=3 \
-H "Authorization: Bearer skoup_test_4eC39HqLyjWDarjtT1zdp7dc"{
"object": "list",
"url": "/v1/brands/br_034CyfRFSXUqzrbzV6MAfZ/alerts",
"has_more": false,
"data": [
{
"id": "alrt_031CQlTxUKUOFYaHSd3kBY",
"object": "alert",
"brand": "br_031CQGx2DNM4mxT2CO7BL3",
"market": "FR",
"kind": "price_hallucination",
"severity": "critical",
"status": "new",
"product": {
"id": "prod_031CQNg2fZXIIClKM3I8uF",
"title": "Grizl CF SL 7"
},
"query": {
"id": "qry_031CQSmQyxphdXPSkx2QxP",
"text": "meilleur vélo gravel carbone à moins de 3000 €"
},
"competitor": null,
"model": "chatgpt",
"models": [
{
"model": "chatgpt",
"occurrences": 2
},
{
"model": "gemini",
"occurrences": 1
}
],
"occurrences": 3,
"claimed": {
"price": 2199,
"price_max": null,
"price_kind": "exact",
"period": null,
"unit": null,
"scope": "offer",
"currency": "EUR",
"min": 2199,
"max": 2199,
"gap": 0.12,
"runs": 3
},
"truth": {
"price": 2499,
"min": 2499,
"max": 2499,
"currency": "EUR",
"period": null,
"unit": null,
"annual_min": null,
"annual_max": null,
"max_with_addons": 2499,
"open_ended": false,
"addons": [],
"scope": "offer",
"variants": 4,
"checked_at": "2026-09-21T02:40:00Z"
},
"persisted": false,
"verifications": 0,
"first_seen_at": "2026-09-21T02:40:00Z",
"last_seen_at": "2026-09-21T02:40:00Z",
"treated_at": null,
"dismissed_at": null,
"close_reason": null,
"last_verification_at": null,
"resolved_at": null,
"livemode": true,
"created": 1790000000
}
]
}Dismiss an alert
POST/v1/brands/{brand}/alerts/{alert}/dismiss
Ignores the alert. If the incident happens again, a new alert opens.
Paramètres
brandstringobligatoireBrand id (
br_…).alertstringobligatoireAlert id (
alrt_…).
Retour
Renvoie l’objet alert. Lève une erreur en cas de problème.
curl
curl -X POST https://api.skoup.ai/v1/brands/br_034CyfRFSXUqzrbzV6MAfZ/alerts/alrt_034sOvSY3W2DUqG0hp23SH/dismiss \
-H "Authorization: Bearer skoup_test_4eC39HqLyjWDarjtT1zdp7dc"{
"id": "alrt_031CQlTxUKUOFYaHSd3kBY",
"object": "alert",
"brand": "br_031CQGx2DNM4mxT2CO7BL3",
"market": "FR",
"kind": "price_hallucination",
"severity": "critical",
"status": "new",
"product": {
"id": "prod_031CQNg2fZXIIClKM3I8uF",
"title": "Grizl CF SL 7"
},
"query": {
"id": "qry_031CQSmQyxphdXPSkx2QxP",
"text": "meilleur vélo gravel carbone à moins de 3000 €"
},
"competitor": null,
"model": "chatgpt",
"models": [
{
"model": "chatgpt",
"occurrences": 2
},
{
"model": "gemini",
"occurrences": 1
}
],
"occurrences": 3,
"claimed": {
"price": 2199,
"price_max": null,
"price_kind": "exact",
"period": null,
"unit": null,
"scope": "offer",
"currency": "EUR",
"min": 2199,
"max": 2199,
"gap": 0.12,
"runs": 3
},
"truth": {
"price": 2499,
"min": 2499,
"max": 2499,
"currency": "EUR",
"period": null,
"unit": null,
"annual_min": null,
"annual_max": null,
"max_with_addons": 2499,
"open_ended": false,
"addons": [],
"scope": "offer",
"variants": 4,
"checked_at": "2026-09-21T02:40:00Z"
},
"persisted": false,
"verifications": 0,
"first_seen_at": "2026-09-21T02:40:00Z",
"last_seen_at": "2026-09-21T02:40:00Z",
"treated_at": null,
"dismissed_at": null,
"close_reason": null,
"last_verification_at": null,
"resolved_at": null,
"livemode": true,
"created": 1790000000
}Treat an alert
POST/v1/brands/{brand}/alerts/{alert}/treat
Marks the alert as treated — the fix was made. Verify it next to close it for good.
Paramètres
brandstringobligatoireBrand id (
br_…).alertstringobligatoireAlert id (
alrt_…).
Retour
Renvoie l’objet alert. Lève une erreur en cas de problème.
curl
curl -X POST https://api.skoup.ai/v1/brands/br_034CyfRFSXUqzrbzV6MAfZ/alerts/alrt_034sOvSY3W2DUqG0hp23SH/treat \
-H "Authorization: Bearer skoup_test_4eC39HqLyjWDarjtT1zdp7dc"{
"id": "alrt_031CQlTxUKUOFYaHSd3kBY",
"object": "alert",
"brand": "br_031CQGx2DNM4mxT2CO7BL3",
"market": "FR",
"kind": "price_hallucination",
"severity": "critical",
"status": "new",
"product": {
"id": "prod_031CQNg2fZXIIClKM3I8uF",
"title": "Grizl CF SL 7"
},
"query": {
"id": "qry_031CQSmQyxphdXPSkx2QxP",
"text": "meilleur vélo gravel carbone à moins de 3000 €"
},
"competitor": null,
"model": "chatgpt",
"models": [
{
"model": "chatgpt",
"occurrences": 2
},
{
"model": "gemini",
"occurrences": 1
}
],
"occurrences": 3,
"claimed": {
"price": 2199,
"price_max": null,
"price_kind": "exact",
"period": null,
"unit": null,
"scope": "offer",
"currency": "EUR",
"min": 2199,
"max": 2199,
"gap": 0.12,
"runs": 3
},
"truth": {
"price": 2499,
"min": 2499,
"max": 2499,
"currency": "EUR",
"period": null,
"unit": null,
"annual_min": null,
"annual_max": null,
"max_with_addons": 2499,
"open_ended": false,
"addons": [],
"scope": "offer",
"variants": 4,
"checked_at": "2026-09-21T02:40:00Z"
},
"persisted": false,
"verifications": 0,
"first_seen_at": "2026-09-21T02:40:00Z",
"last_seen_at": "2026-09-21T02:40:00Z",
"treated_at": null,
"dismissed_at": null,
"close_reason": null,
"last_verification_at": null,
"resolved_at": null,
"livemode": true,
"created": 1790000000
}Verify an alert
POST/v1/brands/{brand}/alerts/{alert}/verify
Re-samples the alert’s query on every model to check the fix. The
alert must be treated. Answers 202 when a verification starts, 200
when one already in flight is reused; the verdict arrives later as
alert.resolved (or alert.updated with persisted: true).
Re-samplings are capped per brand and per day — see the
Skoup-Quota-Verifications header.
Paramètres
brandstringobligatoireBrand id (
br_…).alertstringobligatoireAlert id (
alrt_…).
Retour
Renvoie l’objet alert. Lève une erreur en cas de problème.
curl
curl -X POST https://api.skoup.ai/v1/brands/br_034CyfRFSXUqzrbzV6MAfZ/alerts/alrt_034sOvSY3W2DUqG0hp23SH/verify \
-H "Authorization: Bearer skoup_test_4eC39HqLyjWDarjtT1zdp7dc"{
"id": "alrt_031CQlTxUKUOFYaHSd3kBY",
"object": "alert",
"brand": "br_031CQGx2DNM4mxT2CO7BL3",
"market": "FR",
"kind": "price_hallucination",
"severity": "critical",
"status": "new",
"product": {
"id": "prod_031CQNg2fZXIIClKM3I8uF",
"title": "Grizl CF SL 7"
},
"query": {
"id": "qry_031CQSmQyxphdXPSkx2QxP",
"text": "meilleur vélo gravel carbone à moins de 3000 €"
},
"competitor": null,
"model": "chatgpt",
"models": [
{
"model": "chatgpt",
"occurrences": 2
},
{
"model": "gemini",
"occurrences": 1
}
],
"occurrences": 3,
"claimed": {
"price": 2199,
"price_max": null,
"price_kind": "exact",
"period": null,
"unit": null,
"scope": "offer",
"currency": "EUR",
"min": 2199,
"max": 2199,
"gap": 0.12,
"runs": 3
},
"truth": {
"price": 2499,
"min": 2499,
"max": 2499,
"currency": "EUR",
"period": null,
"unit": null,
"annual_min": null,
"annual_max": null,
"max_with_addons": 2499,
"open_ended": false,
"addons": [],
"scope": "offer",
"variants": 4,
"checked_at": "2026-09-21T02:40:00Z"
},
"persisted": false,
"verifications": 0,
"first_seen_at": "2026-09-21T02:40:00Z",
"last_seen_at": "2026-09-21T02:40:00Z",
"treated_at": null,
"dismissed_at": null,
"close_reason": null,
"last_verification_at": null,
"resolved_at": null,
"livemode": true,
"created": 1790000000
}