Skip to content

Violations

In permissive mode an unknown event or trait name is accepted and flagged here, so a typo never silently drops data. Resolving a violation registers the name into the catalog pre-filled from the observed payload; dismissing silences noise from a misbehaving integration. Both are admin actions.

Fetch one violation

Auth: Clerk session token.

Response 200

{
"data": {
"id": "string",
"orgId": "string",
"environment": "development",
"kind": "event",
"name": "string",
"payload": {
"properties": {
"key": "string"
}
},
"status": "open",
"createdAt": "2026-01-15T09:30:00.000Z",
"lastSeenAt": "2026-01-15T09:30:00.000Z",
"resolvedAt": "2026-01-15T09:30:00.000Z",
"dismissedAt": "2026-01-15T09:30:00.000Z"
},
"meta": {
"requestId": "string",
"nextCursor": "string",
"hasMore": true
}
}
Field Type Required Constraints
data object yes
data.id string yes
data.orgId string yes
data.environment “development” | “production” yes
data.kind “event” | “trait” yes
data.name string yes
data.payload object | object yes
data.status “open” | “resolved” | “dismissed” yes
data.createdAt string (date-time) yes
data.lastSeenAt string (date-time) yes
data.resolvedAt string (date-time) | null yes
data.dismissedAt string (date-time) | null yes
meta object no
meta.requestId string no
meta.nextCursor string | null no
meta.hasMore boolean no

Errors follow the shared envelope and code table.

Resolve a violation into the catalog

Auth: Clerk session token.

Request body

{
"data": {
"properties": {
"key": "string"
},
"type": "string"
}
}
Field Type Required Constraints
data object yes
data.properties record<string, “string” | “number” | “boolean” | “object” | “array<any>” | “array<string>” | “array<number>” | “array<boolean>” | “array<object>”> no
data.type “string” | “number” | “boolean” | “object” | “array<any>” | “array<string>” | “array<number>” | “array<boolean>” | “array<object>” no

Response 200

{
"data": {
"id": "string",
"orgId": "string",
"environment": "development",
"kind": "event",
"name": "string",
"payload": {
"properties": {
"key": "string"
}
},
"status": "open",
"createdAt": "2026-01-15T09:30:00.000Z",
"lastSeenAt": "2026-01-15T09:30:00.000Z",
"resolvedAt": "2026-01-15T09:30:00.000Z",
"dismissedAt": "2026-01-15T09:30:00.000Z"
},
"meta": {
"requestId": "string",
"nextCursor": "string",
"hasMore": true
}
}
Field Type Required Constraints
data object yes
data.id string yes
data.orgId string yes
data.environment “development” | “production” yes
data.kind “event” | “trait” yes
data.name string yes
data.payload object | object yes
data.status “open” | “resolved” | “dismissed” yes
data.createdAt string (date-time) yes
data.lastSeenAt string (date-time) yes
data.resolvedAt string (date-time) | null yes
data.dismissedAt string (date-time) | null yes
meta object no
meta.requestId string no
meta.nextCursor string | null no
meta.hasMore boolean no

Errors follow the shared envelope and code table.

Dismiss a violation

Auth: Clerk session token.

Response 200

{
"data": {
"id": "string",
"orgId": "string",
"environment": "development",
"kind": "event",
"name": "string",
"payload": {
"properties": {
"key": "string"
}
},
"status": "open",
"createdAt": "2026-01-15T09:30:00.000Z",
"lastSeenAt": "2026-01-15T09:30:00.000Z",
"resolvedAt": "2026-01-15T09:30:00.000Z",
"dismissedAt": "2026-01-15T09:30:00.000Z"
},
"meta": {
"requestId": "string",
"nextCursor": "string",
"hasMore": true
}
}
Field Type Required Constraints
data object yes
data.id string yes
data.orgId string yes
data.environment “development” | “production” yes
data.kind “event” | “trait” yes
data.name string yes
data.payload object | object yes
data.status “open” | “resolved” | “dismissed” yes
data.createdAt string (date-time) yes
data.lastSeenAt string (date-time) yes
data.resolvedAt string (date-time) | null yes
data.dismissedAt string (date-time) | null yes
meta object no
meta.requestId string no
meta.nextCursor string | null no
meta.hasMore boolean no

Errors follow the shared envelope and code table.