Skip to main content

Data Protection – Added

Added new endpoints for Legal Hold management.

Legal hold allows placing an entity under a legal hold, which prevents data deletion processes from proceeding.

Data Protection Command API

  • POST /dataprotectioncommand/api/legalholdentity/{id}
    • Creates a new legal hold for the specified entity.
    • Requires LegalHoldEdit permission.
    • Example Payload
{
"data": {
"reasonId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"details": "Legal investigation ongoing",
"durationMonths": 12,
"responsibleTeamId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"startDate": "2026-03-03T00:00:00Z"
}
}
  • PUT /dataprotectioncommand/api/legalholdentity/{id}
    • Updates an existing legal hold for the specified entity.
    • Requires LegalHoldEdit permission.
    • Example Payload
{
"data": {
"reasonId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"details": "Updated legal investigation details",
"durationMonths": 24,
"responsibleTeamId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
  • POST /dataprotectioncommand/api/legalholdentity/{id}/delete
    • Removes the legal hold from the specified entity.
    • Requires LegalHoldDelete permission.
    • Example Payload
{
"data": {
"removalReason": "Legal investigation concluded"
}
}

Data Protection Query API

  • GET /dataprotectionquery/api/legalholds/entity/{id}

    • Returns the legal hold record (active or expired) for the given entity, or 204 No Content if none exists.
    • Requires LegalHoldAccess permission.
  • GET /dataprotectionquery/api/legalholds/entity/{id}/status

    • Returns the status (Active or Expired) of the legal hold for the given entity, or 204 No Content if none exists.
    • Requires LegalHoldAccess, EntityDataAccessAndSearch, or EntityGroupManagementAccessAndSearch permission.
  • GET /dataprotectionquery/api/legalholds/active

    • Returns a paginated list of all active legal holds (expiry date in the future) for the tenant.
    • Supports paginationToken and limit (default: 100, max: 1000) query parameters.
    • Requires LegalHoldAccess permission.
  • GET /dataprotectionquery/api/legalholds/expired

    • Returns a paginated list of all expired legal holds (expiry date today or in the past) for the tenant.
    • Supports paginationToken and limit (default: 100, max: 1000) query parameters.
    • Requires LegalHoldAccess permission.