live_video.violation_detected
You will receive this event when SafetyKit detects a policy violation in a livestream ingested through the Streams API.
Webhooks are only sent for violations. Frames and transcripts that do not produce a violation do not generate webhooks.
Example Payload
Section titled “Example Payload”{ "type": "live_video.violation_detected", "namespace": "example_live_streams", "stream_id": "230980923", "frame_id": "frame_45000", "violation_id": "230980923:45000", "request_id": "example_live_streams:230980923:frame_45000", "occurred_at_ms": 45000, "url": "https://app.safetykit.com/t/example/video-review?view=events&namespace=example_live_streams&streamId=230980923&frameTimestamp=45000", "violation": { "summary": "The seller directed abusive language at a viewer.", "policies": [ { "label": "content.abusive_language", "evidence": "The seller used targeted abusive language toward a chat participant.", "confidence": "high" } ] }}Fields
Section titled “Fields”type: Event type (live_video.violation_detected)namespace: Namespace the stream was ingested intostream_id: Originalstream_idprovided when the stream content was ingestedframe_id: Originalframe_idprovided when the frame was ingestedviolation_id: Identifier for this violationrequest_id: Request identifier from ingestion, in the formatnamespace:stream_id:frame_idoccurred_at_ms: Milliseconds from stream start at which the violation occurredurl: Link to the stream playback view in SafetyKitviolation.summary: Explanation of the detected violationviolation.policies: Flagged policies, each with alabel, supportingevidence, and aconfidencelevel (low,medium, orhigh)
Minimal validation checklist
Section titled “Minimal validation checklist”- verify signature and timestamp before parsing
- require
type === "live_video.violation_detected" - require non-empty
namespace,stream_id, andviolation_id - handle multiple entries in
violation.policies— a single violation can flag more than one policy