Skip to content

Violations API

The Violations API allows platforms to track, manage, and resolve violations of protected identities.

List violations detected on your platform.

GET /v1/lmif/violations
const violations = await lmif.violations.list({
status: 'pending',
limit: 20
});
ParameterTypeDescription
statusstringpending, resolved, enforced, appealed, dismissed
boxIdstringFilter by box ID
severitystringlow, medium, high, critical
limitintegerMax items
offsetintegerItems to skip
{
"data": [
{
"id": "viol_abc123",
"boxId": "box_xyz789",
"identityName": "Taylor Swift",
"status": "pending",
"severity": "high",
"detectedAt": "2024-01-15T10:00:00Z",
"avatar": {
"id": "avatar_123",
"name": "Taylor AI",
"creatorId": "creator_456",
"userCount": 5000
},
"detection": {
"confidence": 0.95,
"layer": 1,
"classification": "EXACT_MATCH"
},
"gracePeriod": {
"id": "gp_abc123",
"expiresAt": "2024-02-14T10:00:00Z",
"daysRemaining": 29
}
}
],
"meta": {
"total": 47,
"limit": 20,
"offset": 0
}
}

Get details of a specific violation.

GET /v1/lmif/violations/{id}
const violation = await lmif.violations.get('viol_abc123');
{
"data": {
"id": "viol_abc123",
"boxId": "box_xyz789",
"identityName": "Taylor Swift",
"policy": "MONETIZE",
"status": "pending",
"severity": "high",
"detectedAt": "2024-01-15T10:00:00Z",
"avatar": {
"id": "avatar_123",
"name": "Taylor AI",
"description": "AI companion version of Taylor",
"imageUrl": "https://...",
"creatorId": "creator_456",
"creatorName": "John Doe",
"userCount": 5000,
"createdAt": "2023-06-01T00:00:00Z"
},
"detection": {
"confidence": 0.95,
"layer": 1,
"classification": "EXACT_MATCH",
"matchedVariations": ["Taylor Swift", "T. Swift"],
"imageMatchScore": 0.92,
"parodyLikelihood": 0.02
},
"gracePeriod": {
"id": "gp_abc123",
"status": "active",
"startedAt": "2024-01-15T10:00:00Z",
"expiresAt": "2024-02-14T10:00:00Z",
"daysRemaining": 29,
"notifications": {
"day0": { "sent": true, "at": "2024-01-15T10:00:00Z" },
"day7": { "sent": false },
"day21": { "sent": false },
"day28": { "sent": false }
}
},
"resolutionOptions": [
{ "type": "license", "description": "Obtain a license" },
{ "type": "remove", "description": "Remove the avatar" },
{ "type": "modify", "description": "Modify to remove likeness" },
{ "type": "appeal", "description": "Appeal the detection" }
]
}
}

Mark a violation as resolved.

POST /v1/lmif/violations/{id}/resolve
await lmif.violations.resolve('viol_abc123', {
resolution: 'removed',
avatarId: 'avatar_123',
notes: 'Avatar removed by creator'
});
FieldTypeRequiredDescription
resolutionstringYesResolution type (see below)
avatarIdstringYesID of the affected avatar
licenseIdstringNoLicense ID if resolved by licensing
notesstringNoAdditional notes
TypeDescription
licensedObtained a license
removedAvatar was removed
modifiedAvatar was modified to remove likeness
parodyMarked as parody (if allowed)
{
"data": {
"id": "viol_abc123",
"status": "resolved",
"resolution": "removed",
"resolvedAt": "2024-01-16T14:00:00Z",
"gracePeriod": {
"id": "gp_abc123",
"status": "resolved"
}
}
}

Appeal a violation detection.

POST /v1/lmif/violations/{id}/appeal
const appeal = await lmif.violations.appeal('viol_abc123', {
reason: 'parody',
explanation: 'This is clearly a parody account with satirical content',
evidence: [
'https://example.com/screenshot1.jpg',
'https://example.com/screenshot2.jpg'
]
});
FieldTypeRequiredDescription
reasonstringYesAppeal reason (see below)
explanationstringYesDetailed explanation
evidencestring[]NoURLs to supporting evidence
ReasonDescription
parodyContent is parody/satire
false_positiveDetection is incorrect
common_nameName is common, not the protected identity
authorizedHave verbal/informal authorization
otherOther reason
{
"data": {
"id": "viol_abc123",
"status": "appealed",
"appeal": {
"id": "appeal_xyz789",
"reason": "parody",
"status": "pending",
"submittedAt": "2024-01-16T10:00:00Z",
"estimatedReviewTime": "24-48 hours"
},
"gracePeriod": {
"id": "gp_abc123",
"status": "paused"
}
}
}
StatusDescription
pendingIn grace period, awaiting resolution
resolvedCreator complied
enforcedGrace period expired, avatar deactivated
appealedUnder human review
dismissedFalse positive, no action needed
SeverityDescriptionTypical Grace Period
criticalHigh-profile identity, major violation30 days
highClear match, significant user base30 days
mediumModerate confidence match30 days
lowLow confidence, may be false positive30 days