Google Vault API

Retention and eDiscovery for Google Workspace.

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. For example, to download an export, an account needs the Manage Exports privilege and the matter shared with them.


To call this service, we recommend that you use the Google-provided client libraries. If your application needs to use your own libraries to call this service, use the following information when you make the API requests.

Discovery document

A Discovery Document is a machine-readable specification for describing and consuming REST APIs. It is used to build client libraries, IDE plugins, and other tools that interact with Google APIs. One service may provide multiple discovery documents. This service provides the following discovery document:

Service endpoint

A service endpoint is a base URL that specifies the network address of an API service. One service might have multiple service endpoints. This service has the following service endpoint and all URIs below are relative to this service endpoint:


REST Resource: v1.matters

addPermissions POST /v1/matters/{matterId}:addPermissions
Adds an account as a matter collaborator.
close POST /v1/matters/{matterId}:close
Closes the specified matter.
count POST /v1/matters/{matterId}:count
Counts the accounts processed by the specified query.
create POST /v1/matters
Creates a matter with the given name and description.
delete DELETE /v1/matters/{matterId}
Deletes the specified matter.
get GET /v1/matters/{matterId}
Gets the specified matter.
list GET /v1/matters
Lists matters the requestor has access to.
removePermissions POST /v1/matters/{matterId}:removePermissions
Removes an account as a matter collaborator.
reopen POST /v1/matters/{matterId}:reopen
Reopens the specified matter.
undelete POST /v1/matters/{matterId}:undelete
Undeletes the specified matter.
update PUT /v1/matters/{matterId}
Updates the specified matter.

REST Resource: v1.matters.exports

create POST /v1/matters/{matterId}/exports
Creates an export.
delete DELETE /v1/matters/{matterId}/exports/{exportId}
Deletes an export.
get GET /v1/matters/{matterId}/exports/{exportId}
Gets an export.
list GET /v1/matters/{matterId}/exports
Lists details about the exports in the specified matter.

REST Resource: v1.matters.holds

addHeldAccounts POST /v1/matters/{matterId}/holds/{holdId}:addHeldAccounts
Adds accounts to a hold.
create POST /v1/matters/{matterId}/holds
Creates a hold in the specified matter.
delete DELETE /v1/matters/{matterId}/holds/{holdId}
Removes the specified hold and releases the accounts or organizational unit covered by the hold.
get GET /v1/matters/{matterId}/holds/{holdId}
Gets the specified hold.
list GET /v1/matters/{matterId}/holds
Lists the holds in a matter.
removeHeldAccounts POST /v1/matters/{matterId}/holds/{holdId}:removeHeldAccounts
Removes the specified accounts from a hold.
update PUT /v1/matters/{matterId}/holds/{holdId}
Updates the scope (organizational unit or accounts) and query parameters of a hold.

REST Resource: v1.matters.holds.accounts

create POST /v1/matters/{matterId}/holds/{holdId}/accounts
Adds an account to a hold.
delete DELETE /v1/matters/{matterId}/holds/{holdId}/accounts/{accountId}
Removes an account from a hold.
list GET /v1/matters/{matterId}/holds/{holdId}/accounts
Lists the accounts covered by a hold.

REST Resource: v1.matters.savedQueries

create POST /v1/matters/{matterId}/savedQueries
Creates a saved query.
delete DELETE /v1/matters/{matterId}/savedQueries/{savedQueryId}
Deletes the specified saved query.
get GET /v1/matters/{matterId}/savedQueries/{savedQueryId}
Retrieves the specified saved query.
list GET /v1/matters/{matterId}/savedQueries
Lists the saved queries in a matter.

REST Resource: v1.operations

cancel POST /v1/{name=operations/**}:cancel
Starts asynchronous cancellation on a long-running operation.
delete DELETE /v1/{name=operations/**}
Deletes a long-running operation.
get GET /v1/{name=operations/**}
Gets the latest state of a long-running operation.
list GET /v1/{name}
Lists operations that match the specified filter in the request.