Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Concurrent rows appending in Google Sheets API v4

We are using Google Sheets API v4 for getting and appending rows in a sheet. There is an issue when several requests for rows appending are sent simultaneously, e.g. 4 concurrent requests. Sometimes such requests are intersected and some of the appended rows are overwritten by another requests. For instance if each request has only 1 row for append and 4 such requests are sent at the same moment, only 3 rows are created. This issue doesn't appear in case of sequential requests. Is it known issue? Is there any workaround how we can achieve that rows are not overwritten by concurrent append requests?

For sending an append request we are using batch update request endpoint:
POST https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}:batchUpdate

The body of batch update request has "appendCells" property with appropriate append cells request data:

  1. "sheetId": appropriate sheet ID;
  2. "rows": only one row;
  3. "fields": "*"
like image 701
Alexander Shyronosov Avatar asked Jul 25 '26 16:07

Alexander Shyronosov


1 Answers

Consider using the values.append API with InsertDataOption.INSERT_ROWS. Each request should go to its own new row.

like image 147
Sam Berlin Avatar answered Jul 28 '26 16:07

Sam Berlin