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."
}

Additional Metadata

{
  "contract_summary": {
    "total_contracts": 410,
    "total_endpoints": 2416,
    "api_styles_used": [
      "rest"
    ]
  },
  "generated_at": "2026-03-26T06:55:53.316Z"
}