Duplicate Detection Service
API Contract
REST
/api/v1/duplicate-checks
5 endpoints
GET
/api/v1/duplicate-checks/api/v1/duplicate-checks
List duplicate candidates
Public
Response Example
{
"data": [
{
"id": "dc-7841",
"peer_id": "peer-0091",
"activity_type_id": "act-type-03",
"date": "2026-03-20",
"status": "pending",
"confidence_score": 0.94,
"duplicate_count": 2,
"created_at": "2026-03-25T08:14:22Z",
"last_updated_at": "2026-03-25T08:14:22Z"
},
{
"id": "dc-7842",
"peer_id": "peer-0105",
"activity_type_id": "act-type-07",
"date": "2026-03-21",
"status": "reviewed",
"confidence_score": 0.81,
"duplicate_count": 1,
"created_at": "2026-03-24T14:30:00Z",
"last_updated_at": "2026-03-25T09:00:00Z"
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 2
}
}
GET
/api/v1/duplicate-checks/api/v1/duplicate-checks/:id
Get a duplicate check by ID
Public
Response Example
{
"id": "dc-7841",
"peer_id": "peer-0091",
"activity_type_id": "act-type-03",
"date": "2026-03-20",
"status": "pending",
"confidence_score": 0.94,
"duplicate_count": 2,
"candidates": [
{
"activity_id": "act-2847",
"submitted_at": "2026-03-19T16:00:00Z",
"submitted_by": "peer-0091",
"similarity_reason": "Same activity type, peer, and date"
},
{
"activity_id": "act-2901",
"submitted_at": "2026-03-20T09:15:00Z",
"submitted_by": "coord-12",
"similarity_reason": "Same activity type and peer within 24 hours"
}
],
"created_at": "2026-03-25T08:14:22Z",
"last_updated_at": "2026-03-25T08:14:22Z"
}
POST
/api/v1/duplicate-checks/api/v1/duplicate-checks
Initiate a duplicate check
Public
Request Example
{
"peer_id": "peer-0091",
"activity_type_id": "act-type-03",
"date": "2026-03-25",
"draft_activity": {
"title": "Peer Support Session",
"duration_minutes": 60,
"location": "Room 4B",
"notes": "Follow-up one-on-one session."
}
}
Response Example
{
"id": "dc-7843",
"peer_id": "peer-0091",
"activity_type_id": "act-type-03",
"date": "2026-03-25",
"status": "pending",
"confidence_score": 0.89,
"duplicate_count": 1,
"candidates": [
{
"activity_id": "act-2847",
"submitted_at": "2026-03-25T08:00:00Z",
"submitted_by": "peer-0091",
"similarity_reason": "Same activity type, peer, and date"
}
],
"created_at": "2026-03-26T10:00:00Z",
"last_updated_at": "2026-03-26T10:00:00Z"
}
PUT
/api/v1/duplicate-checks/api/v1/duplicate-checks/:id
Mark a duplicate check as reviewed
Public
Request Example
{
"status": "reviewed",
"reviewer_id": "coord-12",
"review_notes": "Verified — peer submitted the same session twice."
}
Response Example
{
"id": "dc-7841",
"peer_id": "peer-0091",
"activity_type_id": "act-type-03",
"date": "2026-03-20",
"status": "reviewed",
"reviewer_id": "coord-12",
"review_notes": "Verified — peer submitted the same session twice.",
"reviewed_at": "2026-03-26T11:05:00Z",
"last_updated_at": "2026-03-26T11:05:00Z"
}
DELETE
/api/v1/duplicate-checks/api/v1/duplicate-checks/:id
Delete a duplicate check record
Public
Response Example
{
"message": "Duplicate check dc-7841 deleted successfully."
}