Method: documents.batchUpdate

Applies one or more updates to the document.

Each request is validated before being applied. If any request is not valid, then the entire request will fail and nothing will be applied.

Some requests have replies to give you some information about how they are applied. Other requests do not need to return information; these each return an empty reply. The order of replies matches that of the requests.

For example, suppose you call batchUpdate with four updates, and only the third one returns information. The response would have two empty replies, the reply to the third request, and another empty reply, in that order.

Because other users may be editing the document, the document might not exactly reflect your changes: your changes may be altered with respect to collaborator changes. If there are no collaborators, the document should reflect your changes. In any case, the updates in your request are guaranteed to be applied together atomically.

HTTP request

POST https://docs.googleapis.com/v1/documents/{documentId}:batchUpdate

The URL uses gRPC Transcoding syntax.

Path parameters

Parameters
documentId

string

The ID of the document to update.

Request body

The request body contains data with the following structure:

JSON representation
{
  "requests": [
    {
      object(Request)
    }
  ],
  "writeControl": {
    object(WriteControl)
  }
}
Fields
requests[]

object(Request)

A list of updates to apply to the document.

writeControl

object(WriteControl)

Provides control over how write requests are executed.

Response body

If successful, the response body contains data with the following structure:

Response message from a documents.batchUpdate request.

JSON representation
{
  "documentId": string,
  "replies": [
    {
      object(Response)
    }
  ],
  "writeControl": {
    object(WriteControl)
  }
}
Fields
documentId

string

The ID of the document to which the updates were applied to.

replies[]

object(Response)

The reply of the updates. This maps 1:1 with the updates, although replies to some requests may be empty.

writeControl

object(WriteControl)

The updated write control after applying the request.

Authorization Scopes

Requires one of the following OAuth scopes:

  • https://www.googleapis.com/auth/documents
  • https://www.googleapis.com/auth/drive
  • https://www.googleapis.com/auth/drive.file

For more information, see the OAuth 2.0 Overview.

WriteControl

Provides control over how write requests are executed.

JSON representation
{

  // Union field control can be only one of the following:
  "requiredRevisionId": string,
  "targetRevisionId": string
  // End of list of possible types for union field control.
}
Fields
Union field control. Determines the revision of the document to write to and how the request should behave if that revision is not the current revision of the document. control can be only one of the following:
requiredRevisionId

string

The revision ID of the document that the write request will be applied to. If this is not the latest revision of the document, the request will not be processed and will return a 400 bad request error.

When a required revision ID is returned in a response, it indicates the revision ID of the document after the request was applied.

targetRevisionId

string

The target revision ID of the document that the write request will be applied to.

If collaborator changes have occurred after the document was read using the API, the changes produced by this write request will be transformed against the collaborator changes. This results in a new revision of the document which incorporates both the changes in the request and the collaborator changes, and the Docs server will resolve conflicting changes. When using targetRevisionId, the API client can be thought of as another collaborator of the document.

The target revision ID may only be used to write to recent versions of a document. If the target revision is too far behind the latest revision, the request will not be processed and will return a 400 bad request error and the request should be retried after reading the latest version of the document. In most cases a revisionId will remain valid for use as a target revision for several minutes after it is read, but for frequently-edited documents this window may be shorter.