Stay organized with collections
Save and categorize content based on your preferences.
A matter is a container for all of the data related to a specific topic, such as a litigation case or an investigation. A matter includes:
Saved search queries
Holds
Accounts with which the matter is shared
Export sets
Audit trail
To work with Vault resources, the account must have the required Vault
privileges and access to the
matter. To access a matter, the account must have created the matter, have the
matter shared with them, or have the View All Matters privilege.
A matter has the following states:
State
Description
Open
The matter is active, and you can create holds, run searches, and export data within it.
Closed
Usually when an investigation is complete, the matter is closed.
Closed matters can be reopened at any time.
Deleted
A matter can be deleted so that it becomes completely unavailable.
A deleted matter will remain in Trash for approximately 30 days, during which time it can be restored. After that period, the matter is permanently purged.
Create a matter
The following example creates a new matter with the specified name and description.
The following example shows how to list matters of a specified state.
Java
// Only get open matters.ListopenMattersList=client.matters().list().setState("OPEN").execute().getMatters();// Only get closed matters.ListclosedMattersList=client.matters().list().setState("CLOSED").execute().getMatters();// Only get deleted matters.ListdeletedMattersList=client.matters().list().setState("DELETED").execute().getMatters();
Python
# Only get open matters.openMattersList=client.matters().list(state='OPEN').execute()# Only get closed matters.closedMattersList=client.matters().list(state='CLOSED').execute()# Only get deleted matters.deletedMattersList=client.matters().list(state='DELETED').execute()
Update a matter
The following example updates the name and description of a matter.
The following example shows how to close a matter.
Java
StringmatterId="matterId";// If the matter still has holds, this operation will fail.client.matters().close(matterId,newCloseMatterRequest()).execute();
The following example shows how to delete, undelete, or reopen a matter.
Java
Mattermatter=client.matters().get(matterId).execute();// Delete the matter.client.matters().delete(matter.getMatterId());// Undelete the matter.client.matters().undelete(matter.getMatterId(),newUndeleteRequest());// Reopen the matter.client.matters().reopen(matter.getMatterId(),newReopenMatterRequest());
Each matter has a permission set of who can access or edit it. You can view this by getting the FULL view of a matter.
Java
StringmatterId="Matter Id";StringaccountId="Account Id";// List permissions for a matter.Mattermatter=client.matters().get(matterId).setView("FULL").execute();ListmatterPermissions=matter.getMatterPermissions();// Add a user to the permission set.client.matters().addPermissions(matterId).setMatterPermissionAccountId(accountId).setMatterPermissionRole("COLLABORATOR").execute();// Remove a user from the permission set.client.matters().removePermissions(matterId).setAccountId(accountId).execute();
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-04 UTC."],[],[],null,["# Manage Matters\n\nA matter is a container for all of the data related to a specific topic, such as a litigation case or an investigation. A matter includes:\n\n- Saved search queries\n- Holds\n- Accounts with which the matter is shared\n- Export sets\n- Audit trail\n\nTo work with Vault resources, the account must have the [required Vault\nprivileges](https://support.google.com/vault/answer/2799699) and access to the\nmatter. To access a matter, the account must have created the matter, have the\nmatter shared with them, or have the **View All Matters** privilege.\n\nA matter has the following states:\n\n| State | Description |\n|---------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Open | The matter is active, and you can create holds, run searches, and export data within it. |\n| Closed | Usually when an investigation is complete, the matter is closed. Closed matters can be reopened at any time. \u003cbr /\u003e | **Note:** Before closing a matter, all holds associated with it need to be deleted. |\n| Deleted | A matter can be deleted so that it becomes completely unavailable. A deleted matter will remain in Trash for approximately 30 days, during which time it can be restored. After that period, the matter is permanently purged. \u003cbr /\u003e | **Note:** Only closed matters can be deleted. |\n\n\u003cbr /\u003e\n\nCreate a matter\n---------------\n\nThe following example creates a new matter with the specified name and description. \n\n### Java\n\n```java\nMatter matter = new Matter();\nmatter.setName(\"Matter Name\");\nmatter.setDescription(\"Matter Description\");\nMatter createdMatter = client.matters().create(matter).execute();\n \n```\n\n### Python\n\n```python\ndef create_matter(service):\n matter_content = {\n 'name': 'Matter Name',\n 'description': 'Matter Description',\n }\n matter = service.matters().create(body=matter_content).execute()\n return matter\n```\n\nGet a matter\n------------\n\nThere are two views of a matter: BASIC (default) and FULL. The FULL view adds [matter permissions](#matter_permissions) to the BASIC view.\n\nThe following example retrieves the specified matter. \n\n### Java\n\n```java\nclient.matters().get(matterId).execute(); // Returns BASIC view.\nclient.matters().get(matterId).setView(\"BASIC\").execute();\nclient.matters().get(matterId).setView(\"FULL\").execute();\n```\n\n### Python\n\n```python\nmatter_id = getMatterId()\nservice.matters().get(matterId=matter_id).execute(); // Returns BASIC view.\nservice.matters().get(matterId=matter_id, view='BASIC').execute();\nservice.matters().get(matterId=matter_id, view='FULL').execute();\n```\n\nList matters\n------------\n\nThe following example shows how to list all open, closed, and deleted matters (up to the default 100 per request). \n\n### Java\n\n```java\nList mattersList = client.matters().list().execute().getMatters();\n```\n\n### Python\n\n```python\nmattersList = client.matters().list().execute()\n```\n\nThe following example shows how to list all open, closed, and deleted matters over multiple requests. \n\n### Java\n\n```java\nListMattersResponse firstPageResponse = client.matters().list().setPageSize(20).execute();\n \nString nextPageToken = firstPageResponse.getNextPageToken());\nif (nextPageToken != null) {\n client.matters().list().setPageToken(nextPageToken).setPageSize(20).execute();\n}\n```\n\n### Python\n\n```python\nlist_response1 = service.matters().list(\n view='FULL', pageSize=10).execute()\nfor matter in list_response1['matters']:\n print(matter)\n\nif 'nextPageToken' in list_response1:\n list_response2 = service.matters().list(\n pageSize=10, pageToken=list_response1['nextPageToken']).execute()\n for matter in list_response2['matters']:\n print(matter)\n```\n\nThe following example shows how to list matters of a specified state. \n\n### Java\n\n```java\n// Only get open matters.\nList openMattersList = client.matters().list().setState(\"OPEN\").execute().getMatters();\n\n// Only get closed matters.\nList closedMattersList = client.matters().list().setState(\"CLOSED\").execute().getMatters();\n\n// Only get deleted matters.\nList deletedMattersList = client.matters().list().setState(\"DELETED\").execute().getMatters();\n```\n\n### Python\n\n```python\n# Only get open matters.\nopenMattersList = client.matters().list(\n state='OPEN').execute()\n\n# Only get closed matters.\nclosedMattersList = client.matters().list(\n state='CLOSED').execute()\n\n# Only get deleted matters.\ndeletedMattersList = client.matters().list(\n state='DELETED').execute()\n```\n\nUpdate a matter\n---------------\n\nThe following example updates the name and description of a matter. \n\n### Java\n\n```java\nString matterId = \"matterId\";\nMatter matter = new Matter().setName(\"New Name\").setDescription(\"New Description\");\nvault.matters().update(matterId, matter).execute();\n```\n\n### Python\n\n```python\ndef update_matter(service, matter_id):\n wanted_matter = {\n 'name': 'New Matter Name',\n 'description': 'New Description'\n }\n updated_matter = service.matters().update(\n matterId=matter_id, body=wanted_matter).execute()\n return updated_matter\n```\n\nClose a matter\n--------------\n\nThe following example shows how to close a matter. \n\n### Java\n\n```java\nString matterId = \"matterId\";\n// If the matter still has holds, this operation will fail.\nclient.matters().close(matterId, new CloseMatterRequest()).execute();\n \n```\n\n### Python\n\n```python\ndef close_matter(service, matter_id):\n close_response = service.matters().close(\n matterId=matter_id, body={}).execute()\n return close_response['matter']\n \n```\n\nDelete, undelete, or reopen a matter\n------------------------------------\n\nThe following example shows how to delete, undelete, or reopen a matter. \n\n### Java\n\n```java\nMatter matter = client.matters().get(matterId).execute();\n \n// Delete the matter.\nclient.matters().delete(matter.getMatterId());\n// Undelete the matter.\nclient.matters().undelete(matter.getMatterId(), new UndeleteRequest());\n// Reopen the matter.\nclient.matters().reopen(matter.getMatterId(), new ReopenMatterRequest());\n \n```\n\n### Python\n\n```python\ndef reopen_matter(service, matter_id):\n reopen_response = service.matters().reopen(\n matterId=matter_id, body={}).execute()\n return reopen_response['matter']\n\ndef delete_matter(service, matter_id):\n service.matters().delete(matterId=matter_id).execute()\n return get_matter(matter_id)\n\ndef undelete_matter(service, matter_id):\n undeleted_matter = service.matters().undelete(\n matterId=matter_id, body={}).execute()\n return undeleted_matter\n\n \n```\n\nMatter permissions\n------------------\n\nEach matter has a permission set of who can access or edit it. You can view this by getting the FULL view of a matter. \n\n### Java\n\n```java\nString matterId = \"Matter Id\";\nString accountId = \"Account Id\";\n \n// List permissions for a matter.\nMatter matter = client.matters().get(matterId).setView(\"FULL\").execute();\nList matterPermissions = matter.getMatterPermissions();\n \n// Add a user to the permission set.\nclient\n .matters()\n .addPermissions(matterId)\n .setMatterPermissionAccountId(accountId)\n .setMatterPermissionRole(\"COLLABORATOR\")\n .execute();\n \n// Remove a user from the permission set.\nclient\n .matters()\n .removePermissions(matterId)\n .setAccountId(accountId)\n .execute();\n```\n\n### Python\n\n```python\ndef list_matter_permission(service, matter_id):\n matter = service.matters().get(matterId=matter_id, view='FULL').execute()\n return matter['matterPermissions']\n \ndef add_matter_permission(service, matter_id, account_id):\n permission = service.matters().addPermissions(\n matterId=matter_id,\n matterPermission_accountId=account_id,\n matterPermission_role='COLLABORATOR',\n sendEmails='False',\n ccMe='False').execute()\n return permission\n\ndef remove_matter_permission(service, matter_id, account_id):\n service.matters().removePermissions(\n matterId=matter_id, accountId=account_id).execute()\n \n```"]]