Sheets

Spreadsheets

The contents of a spreadsheet: reading and writing ranges, appending rows, and the structural changes that move data around. Changing structure is a separate permission from writing values.

Method Endpoint Permission
POST Append rows
/v1/spreadsheets/:id/values/:range/append Adds rows after the last populated row of a range, which is what a log or an export needs.
sheets.values.write
POST Read several ranges
/v1/spreadsheets/:id/values/batch-get Reads several A1 ranges in one call, instead of a request per range.
sheets.values.read
POST Change a spreadsheet's structure
/v1/spreadsheets/:id/batch-update Inserts and deletes rows, columns and sheets, and changes merges, sorting, charts and validation. Requires sheets.structure.write, which is separate from writing values.
sheets.structure.write
POST Write several ranges
/v1/spreadsheets/:id/values/batch-update Writes several A1 ranges in one call.
sheets.values.write
POST Clear a range
/v1/spreadsheets/:id/values/:range/clear Clears the values in a range and leaves its formatting.
sheets.values.write
GET List the sheets in a spreadsheet
/v1/spreadsheets/:id Returns every sheet (tab) with its populated extent and merges, plus the workbook's named ranges, charts and validation. Read it first: it is where the sheet names and ids an A1 range needs come from.
sheets.values.read
GET Get the current state
/v1/spreadsheets/:id/state Returns the workbook's state hash, for polling and for use as a precondition on a structural change.
sheets.values.read
GET Read a range
/v1/spreadsheets/:id/values/:range Reads one A1 range: values, formulas and formatting.
sheets.values.read
PUT Write a range
/v1/spreadsheets/:id/values/:range Overwrites one A1 range.
sheets.values.write