Retrieve data from a sheet#

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#

Retrieve data from a range in a sheet. Includes the value & formatting of cells, visibility of columns and cells, merged ranges, etc. Limit the results to particular fields by providing a comma-separated list of paths, rooted at the data object. Example: $fields=cells.calculatedValue,cells.formats.valueFormat

Note: This endpoint is rate-limited. You may experience rates as low as 600 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.

GET /platform/v1/spreadsheets/{spreadsheetId}/sheets/{sheetId}/sheetdata

Required OAuth Scopes

file:read

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

$cellrange

query

string

false

The range to query. If not provided, the entire sheet will be queried.

$maxcellsperpage

query

integer

false

The maximum number of cells to retrieve. The default is 50000. The maximum allowed value is 50000.

$next

query

string

false

Pagination cursor for next set of results.

$fields

query

string

false

A restricted set of fields for a given resource.

Detailed descriptions#

$cellrange: The range to query. If not provided, the entire sheet will be queried. A1 style representation of a cell or range. A range my be unbounded in any/all directions by leaving off the corresponding column or row.

Code Samples#

curl -X GET https://api.app.wdesk.com/platform/v1/spreadsheets/{spreadsheetId}/sheets/{sheetId}/sheetdata \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer {access-token}' \
    -H 'X-Version: 2022-01-01'
http GET https://api.app.wdesk.com/platform/v1/spreadsheets/{spreadsheetId}/sheets/{sheetId}/sheetdata \
    X-Version:2022-01-01 \
    Accept:application/json \
    Authorization:"Bearer {access-token}"
wget --method=GET "https://api.app.wdesk.com/platform/v1/spreadsheets/{spreadsheetId}/sheets/{sheetId}/sheetdata" \
    --output-document -  \ 
    --header 'Accept: application/json' \ 
    --header 'Authorization: Bearer {access-token}' \
    --header 'X-Version: 2022-01-01'
import requests

headers = {
  'X-Version': '2022-01-01',
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.get('https://api.app.wdesk.com/platform/v1/spreadsheets/{spreadsheetId}/sheets/{sheetId}/sheetdata', headers = headers)

print(r.json())

Returns#

200 - OK#

Returns a JSON object with data and @nextLink properties. data contains a SheetData object, and @nextLink provides the URL to the next set of results. If there are no additional results, @nextLink doesn’t appear.

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.

401 - Unauthorized#

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.

503 - Service Unavailable#

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#

{
  "@nextLink": "<opaque_url>",
  "data": {
    "cells": [
      [
        {
          "calculatedValue": 2,
          "effectiveFormats": {
            "cellFormat": {
              "backgroundColor": "#d0e8ff",
              "borders": {
                "bottom": {
                  "color": "#000",
                  "style": "SINGLE",
                  "weight": 1
                },
                "left": {
                  "color": "#000",
                  "style": "SINGLE",
                  "weight": 1
                },
                "right": null,
                "top": {
                  "color": "#000",
                  "style": "SINGLE",
                  "weight": 1
                }
              },
              "horizontalAlign": "RIGHT",
              "indent": {
                "unit": "INCHES",
                "value": 0
              },
              "leaderDots": null,
              "textRotation": null,
              "verticalAlign": "BOTTOM"
            },
            "textFormat": {
              "bold": true,
              "fontColor": "#000000",
              "fontFamily": "Arial",
              "fontSize": 10,
              "italic": false,
              "strikethrough": false,
              "underline": false
            },
            "valueFormat": {
              "currencySymbol": {
                "currency": {
                  "code": "EUR",
                  "display": "SYMBOL"
                },
                "generic": null
              },
              "dateAbbreviateMonth": null,
              "dateFormatString": null,
              "dateUppercaseAll": null,
              "displayZeroAs": "ZERO",
              "enteredIn": "ONES",
              "numbersAsWordsOptions": {
                "capitalizeFirstWord": false,
                "displayZeroAs": null
              },
              "percentSymbol": null,
              "periodFormat": null,
              "precision": {
                "auto": false,
                "value": 2
              },
              "prefix": "",
              "showCurrencySymbol": true,
              "showLeadingZero": true,
              "showNumbersAsWords": false,
              "showPositiveSign": false,
              "showSignRoundedZero": false,
              "showThousandsSeparator": true,
              "shownIn": "ONES",
              "suffix": "",
              "symbolAlign": "SYMBOL DEFAULT",
              "useParensForNegatives": false,
              "valueFormatType": "CURRENCY"
            }
          },
          "formats": {
            "cellFormat": {
              "backgroundColor": "#d0e8ff",
              "borders": {
                "bottom": {
                  "color": "#000",
                  "style": "SINGLE",
                  "weight": 1
                },
                "left": {
                  "color": "#000",
                  "style": "SINGLE",
                  "weight": 1
                },
                "right": null,
                "top": {
                  "color": "#000",
                  "style": "SINGLE",
                  "weight": 1
                }
              },
              "horizontalAlign": null,
              "indent": null,
              "leaderDots": null,
              "textRotation": null,
              "verticalAlign": null
            },
            "textFormat": {
              "bold": true,
              "fontColor": null,
              "fontFamily": null,
              "fontSize": null,
              "italic": null,
              "strikethrough": null,
              "underline": null
            },
            "valueFormat": {
              "currencySymbol": {
                "currency": {
                  "code": "EUR",
                  "display": "SYMBOL"
                },
                "generic": null
              },
              "dateAbbreviateMonth": null,
              "dateFormatString": null,
              "dateUppercaseAll": null,
              "displayZeroAs": "ZERO",
              "enteredIn": "ONES",
              "numbersAsWordsOptions": {
                "capitalizeFirstWord": false,
                "displayZeroAs": null
              },
              "percentSymbol": null,
              "periodFormat": null,
              "precision": {
                "auto": false,
                "value": 2
              },
              "prefix": "",
              "showCurrencySymbol": true,
              "showLeadingZero": true,
              "showNumbersAsWords": false,
              "showPositiveSign": null,
              "showSignRoundedZero": false,
              "showThousandsSeparator": true,
              "shownIn": "ONES",
              "suffix": "",
              "symbolAlign": null,
              "useParensForNegatives": false,
              "valueFormatType": "CURRENCY"
            }
          },
          "value": "=1+1"
        }
      ]
    ],
    "columnMetadata": [
      {
        "hidden": false,
        "size": 75
      }
    ],
    "merges": [
      {
        "startColumn": 0,
        "startRow": 0,
        "stopColumn": 1,
        "stopRow": 0
      }
    ],
    "range": {
      "startColumn": 0,
      "startRow": 0,
      "stopColumn": 0,
      "stopRow": 0
    },
    "rowMetadata": [
      {
        "filtered": false,
        "hidden": false,
        "size": 16
      }
    ]
  }
}
{
  "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"
}