Initiate a spreadsheet export#

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 exports a spreadsheet as .XLSX, .PDF, or .CSV.

Responses include a Location header, which indicates where to poll for export results. For more details on long-running job polling, see Operations endpoint. When the export completes, its status will be completed, and the response body includes a resourceURL. To download the exported file, perform a GET on the resourceURL with the same authentication credentials and flow as the export request. For more details, see Authentication documentation.

Note: To export to .PDF, the spreadsheet can have no more than 250,000 cells.

POST /platform/v1/spreadsheets/{spreadsheetId}/export

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

body

body

PlatformSpreadsheetExport

true

Details about the spreadsheet export, including its format and options

Body parameter example#

{
  "format": "xlsx",
  "sheets": [
    "7c8d8c4a46784455bg68t36f9d8232d8",
    "54bgd83b471e5902f1a8e8c9a299c9fb"
  ],
  "xlsxOptions": {
    "exportAsFormulas": true,
    "exportPrecision": "displayed"
  }
}

Code Samples#

curl -X POST https://api.app.wdesk.com/platform/v1/spreadsheets/{spreadsheetId}/export \
    -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}/export \
    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}/export" \
    --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}/export', 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.

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#

{
  "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"
}