Bildiriş hadisəsi
Bildiriş ünvanınıza göndərilən imzalı gövdə. İmza `X-DarkRadar-Signature` başlığındadır.
Sahələr
idstringÇatdırılmanın kimliyi (`evt_…`); `X-DarkRadar-Delivery` başlığı ilə eynidir. Eyni kimliyi ikinci dəfə alsanız emal etməyin.
typestringHadisə növü: `leak.created`, `leak.shared` (paneldən əl ilə paylaşım), `scan.finished`, `scan.failed`, `hunter.finding.created`, `webhook.test`.
createdAtstringHadisənin göndərilmək üçün yaradıldığı vaxt (ISO 8601).
Hadisəyə görə dəyişən məzmun. Sızma hadisələrində hadisə sahələri, tarama hadisələrində tarama sahələri.
data.eventIdstringSızma hadisəsi kimliyi — `GET /v1/leak-events/{eventId}` ilə təfərrüat alınır. (sızma hadisələri)
data.leakTypestringSızmanın nə ilə uyğunlaşdığı: `domain`, `email`, `username`, `ip`, `hwid`, `application`. (sızma hadisələri)
data.typestringKimin sızması: `employee`, `customer` (360), `third_party`. (sızma hadisələri)
data.severitystringCiddiyyət: `critical`, `high`, `medium`, `low`, `unknown`. (sızma hadisələri)
data.statusstringSızma hadisələrində hadisənin statusu (`open` …); tarama hadisələrində `completed` və ya `failed`.
data.eventDatestringSızmanın baş verdiyi tarix (yoluxma tarixi). (sızma hadisələri)
data.stealerFamilystringOğurlayıcı proqram ailəsi. (sızma hadisələri)
data.groupIdstringƏlaqəli qoruma resursu qrupu.
data.scanIdstringTarama kimliyi — `GET /v1/scans/{scanId}`. (tarama hadisələri)
data.completedAtstringTaramanın bitdiyi vaxt. (tarama hadisələri)
data.statsobjectTarama nəticə sayları; uğursuz taramada sıfır. (tarama hadisələri)
data.stats.totalMatchesnumberÜmumi uyğunluq.
data.stats.newMatchesnumberBu taramada ilk dəfə tapılan uyğunluq.
data.stats.severitiesobjectCiddiyyət səviyyəsinə görə uyğunluq sayları.
data.stats.severities.criticalnumberKritik.
data.stats.severities.highnumberYüksək.
data.stats.severities.mediumnumberOrta.
data.stats.severities.lownumberAşağı.
data.stats.severities.infonumberMəlumat.
data.stats.severities.unknownnumberNaməlum.
data.messagestringTəsvir. (yalnız `webhook.test`)
data.targetIdstringYeni tapıntı çıxan izləmə hədəfi — `GET /v1/hunter/findings?targetId=…`. (`hunter.finding.created`)
data.targetKindstringHədəf növü (məs. `domain`, `email`). (`hunter.finding.created`)
data.newFindingsnumberBu taramada əlavə olunan tapıntı sayı; `data.severity` ən yüksək ciddiyyətdir. (`hunter.finding.created`)
JSON Sxemi
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://darkradar.com/docs/schemas/webhook-event.schema.json",
"title": "Bildiriş hadisəsi",
"description": "Bildiriş ünvanınıza göndərilən imzalı gövdə. İmza `X-DarkRadar-Signature` başlığındadır.",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Çatdırılmanın kimliyi (`evt_…`); `X-DarkRadar-Delivery` başlığı ilə eynidir. Eyni kimliyi ikinci dəfə alsanız emal etməyin."
},
"type": {
"type": "string",
"description": "Hadisə növü: `leak.created`, `leak.shared` (paneldən əl ilə paylaşım), `scan.finished`, `scan.failed`, `hunter.finding.created`, `webhook.test`."
},
"createdAt": {
"type": "string",
"description": "Hadisənin göndərilmək üçün yaradıldığı vaxt (ISO 8601)."
},
"data": {
"type": "object",
"description": "Hadisəyə görə dəyişən məzmun. Sızma hadisələrində hadisə sahələri, tarama hadisələrində tarama sahələri.",
"properties": {
"eventId": {
"type": "string",
"description": "Sızma hadisəsi kimliyi — `GET /v1/leak-events/{eventId}` ilə təfərrüat alınır. (sızma hadisələri)"
},
"leakType": {
"type": "string",
"description": "Sızmanın nə ilə uyğunlaşdığı: `domain`, `email`, `username`, `ip`, `hwid`, `application`. (sızma hadisələri)"
},
"type": {
"type": "string",
"description": "Kimin sızması: `employee`, `customer` (360), `third_party`. (sızma hadisələri)"
},
"severity": {
"type": "string",
"description": "Ciddiyyət: `critical`, `high`, `medium`, `low`, `unknown`. (sızma hadisələri)"
},
"status": {
"type": "string",
"description": "Sızma hadisələrində hadisənin statusu (`open` …); tarama hadisələrində `completed` və ya `failed`."
},
"eventDate": {
"type": "string",
"description": "Sızmanın baş verdiyi tarix (yoluxma tarixi). (sızma hadisələri)"
},
"stealerFamily": {
"type": "string",
"description": "Oğurlayıcı proqram ailəsi. (sızma hadisələri)"
},
"groupId": {
"type": "string",
"description": "Əlaqəli qoruma resursu qrupu."
},
"scanId": {
"type": "string",
"description": "Tarama kimliyi — `GET /v1/scans/{scanId}`. (tarama hadisələri)"
},
"completedAt": {
"type": "string",
"description": "Taramanın bitdiyi vaxt. (tarama hadisələri)"
},
"stats": {
"type": "object",
"description": "Tarama nəticə sayları; uğursuz taramada sıfır. (tarama hadisələri)",
"properties": {
"totalMatches": {
"type": "number",
"description": "Ümumi uyğunluq."
},
"newMatches": {
"type": "number",
"description": "Bu taramada ilk dəfə tapılan uyğunluq."
},
"severities": {
"type": "object",
"description": "Ciddiyyət səviyyəsinə görə uyğunluq sayları.",
"properties": {
"critical": {
"type": "number",
"description": "Kritik."
},
"high": {
"type": "number",
"description": "Yüksək."
},
"medium": {
"type": "number",
"description": "Orta."
},
"low": {
"type": "number",
"description": "Aşağı."
},
"info": {
"type": "number",
"description": "Məlumat."
},
"unknown": {
"type": "number",
"description": "Naməlum."
}
}
}
}
},
"message": {
"type": "string",
"description": "Təsvir. (yalnız `webhook.test`)"
},
"targetId": {
"type": "string",
"description": "Yeni tapıntı çıxan izləmə hədəfi — `GET /v1/hunter/findings?targetId=…`. (`hunter.finding.created`)"
},
"targetKind": {
"type": "string",
"description": "Hədəf növü (məs. `domain`, `email`). (`hunter.finding.created`)"
},
"newFindings": {
"type": "number",
"description": "Bu taramada əlavə olunan tapıntı sayı; `data.severity` ən yüksək ciddiyyətdir. (`hunter.finding.created`)"
}
}
}
}
}