Method: projects.instances.databases.sessions.beginTransaction

Begins a new transaction. This step can often be skipped:, sessions.executeSql and sessions.commit can begin a new transaction as a side-effect.

HTTP request


The URL uses gRPC Transcoding syntax.

Path parameters



Required. The session in which the transaction runs.

Authorization requires one or more of the following IAM permissions on the specified resource session:

  • spanner.databases.beginReadOnlyTransaction
  • spanner.databases.beginOrRollbackReadWriteTransaction

Request body

The request body contains data with the following structure:

JSON representation
  "options": {
    object (TransactionOptions)
  "requestOptions": {
    object (RequestOptions)

object (TransactionOptions)

Required. Options for the new transaction.


object (RequestOptions)

Common options for this request. Priority is ignored for this request. Setting the priority in this requestOptions struct will not do anything. To set the priority for a transaction, set it on the reads and writes that are part of this transaction instead.

Response body

If successful, the response body contains an instance of Transaction.

Authorization scopes

Requires one of the following OAuth scopes:


For more information, see the Authentication Overview.