Update sheet content#
Deprecated
This endpoint is deprecated and may be removed in a future release.
This endpoint was deprecated on 2026-02-12.
It is scheduled for sunset on 2029-01-31.
Description#
Asynchronously submits a SheetUpdate to a sheet. Each SheetUpdate can have only one update field set per request.
Note: This endpoint is rate-limited. You may experience rates as low as 60 requests per minute. This rate is shared across your workspace. When you encounter a 429, examine the Retry-After header and retry after that many seconds.
POST /platform/v1/spreadsheets/{spreadsheetId}/sheets/{sheetId}/update
Required OAuth Scopes
file:write
Parameters#
Parameter |
In |
Type |
Required |
Description |
|---|---|---|---|---|
X-Version |
header |
string |
false |
Version of the API (2022-01-01) |
spreadsheetId |
path |
string |
true |
The unique identifier of the spreadsheet |
sheetId |
path |
string |
true |
The unique identifier of the sheet |
body |
body |
true |
A SheetUpdate |
Body parameter example#
{
"applyBorders": {
"borders": [
{
"bottom": {
"color": "#000000",
"style": "SINGLE",
"weight": 2
},
"innerHorizontal": {
"color": "#808080",
"style": "DASHED1",
"weight": 1
},
"innerVertical": {
"color": "#808080",
"style": "DASHED1",
"weight": 1
},
"left": {
"color": "#000000",
"style": "SINGLE",
"weight": 2
},
"ranges": [
{
"startColumn": 0,
"startRow": 0,
"stopColumn": 3,
"stopRow": 3
}
],
"right": {
"color": "#000000",
"style": "SINGLE",
"weight": 2
},
"top": {
"color": "#000000",
"style": "SINGLE",
"weight": 2
}
}
]
},
"applyFormats": {
"formats": [
{
"cellFormat": {
"backgroundColor": "#d0e0f0"
},
"ranges": [
{
"startColumn": 0,
"startRow": 0,
"stopColumn": null,
"stopRow": 0
}
],
"textFormat": {
"bold": true
},
"valueFormat": {
"valueFormatType": "TEXT"
}
}
]
},
"clearBorders": {
"ranges": [
{
"startColumn": 0,
"startRow": 0,
"stopColumn": 3,
"stopRow": 3
}
]
},
"clearFormats": {
"cellFormatFields": [
"*"
],
"ranges": [
{
"startColumn": 0,
"startRow": 0,
"stopColumn": null,
"stopRow": 0
}
],
"textFormatFields": [
"*"
],
"valueFormatFields": [
"*"
]
},
"deleteColumns": {
"force": true,
"intervals": [
{
"end": 3,
"start": 2
}
]
},
"deleteRows": {
"force": true,
"intervals": [
{
"end": 7,
"start": 5
}
]
},
"editCells": {
"cells": [
{
"column": 0,
"row": 0,
"value": "Alpha One"
},
{
"column": 1,
"row": 0,
"value": "Bravo One"
},
{
"column": 0,
"row": 1,
"value": "Alpha Two"
},
{
"column": 1,
"row": 1,
"value": "Bravo Two"
}
]
},
"editRange": {
"range": {
"startColumn": 0,
"startRow": 0,
"stopColumn": 1,
"stopRow": 1
},
"values": [
[
"Alpha One",
"Bravo One"
],
[
"Alpha Two",
"Bravo Two"
]
]
},
"hideColumns": {
"force": true,
"intervals": [
{
"end": 5,
"start": 4
}
]
},
"hideRows": {
"force": true,
"intervals": [
{
"end": 9,
"start": 7
}
]
},
"insertColumns": {
"inheritFrom": "BEFORE",
"insertions": [
{
"count": 1,
"index": 3
}
]
},
"insertRows": {
"inheritFrom": "BEFORE",
"insertions": [
{
"count": 2,
"index": 6
}
]
},
"mergeRanges": {
"force": true,
"mergeType": "HORIZONTAL",
"ranges": [
{
"startColumn": 0,
"startRow": 4,
"stopColumn": 1,
"stopRow": 7
}
]
},
"resizeColumns": {
"resizeIntervals": [
{
"intervals": [
{
"end": 3,
"start": 0
}
],
"size": 96
}
]
},
"resizeColumnsToFit": {
"intervals": [
{
"end": 3,
"start": 0
}
]
},
"resizeRows": {
"resizeIntervals": [
{
"intervals": [
{
"end": 3,
"start": 0
}
],
"size": 24
}
]
},
"resizeRowsToFit": {
"intervals": [
{
"end": 3,
"start": 0
}
]
},
"unhideColumns": {
"intervals": [
{
"end": 5,
"start": 4
}
]
},
"unhideRows": {
"intervals": [
{
"end": 9,
"start": 7
}
]
},
"unmergeRanges": {
"ranges": [
{
"startColumn": 0,
"startRow": 4,
"stopColumn": 1,
"stopRow": 7
}
]
}
}
Code Samples#
curl -X POST https://api.app.wdesk.com/platform/v1/spreadsheets/{spreadsheetId}/sheets/{sheetId}/update \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer {access-token}' \
-H 'X-Version: 2022-01-01'
http POST https://api.app.wdesk.com/platform/v1/spreadsheets/{spreadsheetId}/sheets/{sheetId}/update \
X-Version:2022-01-01 \
Content-Type:application/json \
Accept:application/json \
Authorization:"Bearer {access-token}"
wget --method=POST "https://api.app.wdesk.com/platform/v1/spreadsheets/{spreadsheetId}/sheets/{sheetId}/update" \
--output-document - \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}' \
--header 'X-Version: 2022-01-01'
import requests
headers = {
'X-Version': '2022-01-01',
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {access-token}'
}
r = requests.post('https://api.app.wdesk.com/platform/v1/spreadsheets/{spreadsheetId}/sheets/{sheetId}/update', headers = headers)
print(r.headers['Location'])
Returns#
202 - Accepted#
Header |
Description |
|---|---|
Location |
The location to poll for the operation result. |
Retry-After |
The number of seconds to wait before polling for a result and between polling attempts. |
400 - Bad Request#
Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.
403 - Forbidden#
Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.
404 - Not Found#
Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.
409 - Conflict#
Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.
429 - Too Many Requests#
Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.
500 - Internal Server Error#
Error response that indicates that the service is not able to process the incoming request. The reason is provided in the error message.
Example Responses#
{
"code": "400BadRequest",
"message": "The request was unacceptable, often due to a missing or invalid parameter"
}
{
"code": "401Unauthorized",
"message": "No valid API token provided"
}
{
"code": "403Forbidden",
"message": "The API token does not have permissions to perform the request"
}
{
"code": "404NotFound",
"message": "The requested resource could not be found"
}
{
"code": "409Conflict",
"message": "The request conflicts with another request"
}
{
"code": "429TooManyRequests",
"message": "Too many requests have been made against the API in too short a time"
}
{
"code": "500InternalServerError",
"message": "The server encountered an unexpected condition that prevented it from fulfilling the request"
}
{
"code": "503ServiceUnavailable",
"message": "The server cannot handle the request due to a temporary overload or scheduled maintenance"
}