The legal hold object

⚠️
Preview — this feature is being built; the design below is the spec.

The legal_hold object as the API returns it. Every field below appears in every response that returns this object; fields with no value are null rather than missing.

Example

{
  "id": "hold_01JD02A4C6E8G0J2L4N6",
  "type": "legal_hold",
  "name": "Matter 2026-117",
  "user_ids": [
    "user_01J9Y0A2C4E6G8J0L2N4"
  ],
  "kinds": [
    "chats",
    "projects",
    "code_sessions",
    "files"
  ],
  "starting_at": "2026-06-01T00:00:00Z",
  "ending_at": null,
  "status": "active",
  "created_by": "adminkey_01JC0Z2B4D6F8H0K2M4P",
  "created_at": "2026-11-05T10:00:00Z",
  "released_at": null,
  "preserved": {
    "chats": 412,
    "projects": 3,
    "code_sessions": 58,
    "files": 120
  }
}

Fields

FieldTypeDescription
idstringUnique id of this object.
typestringThe object type, always legal_hold.
namestringName shown in the Console and in reports.
user_idsarrayNested detail; see the endpoint pages below.
kindsarrayRecord kinds kept under hold.
starting_atstringSee the endpoint pages below.
ending_atstring or nullnull covers records created up to the moment the hold is released.
statusstringactive or released. While active, matching records are not deleted by retention, by the person, or by the delete calls above.
created_bystringWho created it.
created_atstringWhen it was created, RFC 3339 UTC (some older objects use Unix seconds).
released_atstring or nullSee the endpoint pages below.
preservedobjectNested detail; see the endpoint pages below.

Returned by

Was this page helpful?