---
title: "POST /v4/spreadsheets/{spreadsheetId}/values/{range}:append"
method: POST
path: "/v4/spreadsheets/{spreadsheetId}/values/{range}:append"
tags: ["spreadsheets"]
---

# POST /v4/spreadsheets/{spreadsheetId}/values/{range}:append

`POST /v4/spreadsheets/{spreadsheetId}/values/{range}:append`

Appends values to a spreadsheet. The input range is used to search for existing data and find a "table" within that range. Values will be appended to the next row of the table, starting with the first column of the table. See the [guide](https://developers.google.com/workspace/sheets/api/guides/values#appending_values) and [sample code](https://developers.google.com/workspace/sheets/api/samples/writing#append_values) for specific details of how tables are detected and data is appended. The caller must specify the spreadsheet ID, range, and a valueInputOption. The `valueInputOption` only controls how the input data will be added to the sheet (column-wise or row-wise), it does not influence what cell the data starts being written to.

## Path parameters

- `spreadsheetId` string, required
- `range` string, required

## Query parameters

- `includeValuesInResponse` boolean
- `insertDataOption` 'OVERWRITE' | 'INSERT_ROWS'
- `responseDateTimeRenderOption` 'SERIAL_NUMBER' | 'FORMATTED_STRING'
- `responseValueRenderOption` 'FORMATTED_VALUE' | 'UNFORMATTED_VALUE' | 'FORMULA'
- `valueInputOption` 'INPUT_VALUE_OPTION_UNSPECIFIED' | 'RAW' | 'USER_ENTERED'

## Request body

- ValueRange — Data within a range of the spreadsheet.
  - `majorDimension` 'DIMENSION_UNSPECIFIED' | 'ROWS' | 'COLUMNS' — The major dimension of the values. For output, if the spreadsheet data is: `A1=1,B1=2,A2=3,B2=4`, then requesting `range=A1:B2,majorDimension=ROWS` will return `[[1,2],[3,4]]`, whereas requesting `range=A1:B2,majorDimension=COLUMNS` will return `[[1,3],[2,4]]`. For input, with `range=A1:B2,majorDimension=ROWS` then `[[1,2],[3,4]]` will set `A1=1,B1=2,A2=3,B2=4`. With `range=A1:B2,majorDimension=COLUMNS` then `[[1,2],[3,4]]` will set `A1=1,B1=3,A2=2,B2=4`. When writing, if this field is not set, it defaults to ROWS.
  - `range` string — The range the values cover, in [A1 notation](https://developers.google.com/workspace/sheets/api/guides/concepts#cell). For output, this range indicates the entire requested range, even though the values will exclude trailing rows and columns. When appending values, this field represents the range to search for a table, after which values will be appended.
  - `values` array[] — The data that was read or to be written. This is an array of arrays, the outer array representing all the data and each inner array representing a major dimension. Each item in the inner array corresponds with one cell. For output, empty trailing rows and columns will not be included. For input, supported value types are: bool, string, and double. Null values will be skipped. To set a cell to an empty value, set the string value to an empty string.
    - unknown[]
      - unknown

## Response `200`

Successful response

---

[API](https://skmtc.dev/google/apis/sheets.md) · [All operations](https://skmtc.dev/google/apis/sheets/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/google/sheets/revisions/89de4914a876/schema)
