Partially update a single section#

Description#

Updates the properties of a section.

This is a long running operation. Responses include a Location header, which indicates where to poll for results. For more details on long-running job polling, see Operations endpoint.

Options#

Path

PATCH Operations Supported

Value Type

/name

replace

string

/parent

replace

Section, null

/parent/id

replace

string

/index

replace

integer

/nonPrinting

replace

boolean

/customFields

add, remove, replace, test

map of string to boolean, string, integer, number

/customFields/<customFieldId>

add, remove, replace, test

boolean, string, integer, number

/lock

replace

SectionLockType, null

/properties/margins/top

replace

number

/properties/margins/bottom

replace

number

/properties/margins/right

replace

number

/properties/margins/left

replace

number

/properties/pageBreakBefore

replace

boolean

/properties/exhibit

replace

boolean, null

/properties/edgarKeepTogether

replace

boolean, null

/properties/pageNumber/reset

replace

boolean

/properties/pageNumber/startAt

replace

integer

/properties/background/color

replace

Color, null

/properties/background/image

replace

string, null

/properties/restartFootnoteNumbering

replace

boolean

/properties/footnotes/style

replace

FootnoteStyle, null

/properties/footnotes/sequenceStarts

replace

integer, null

/properties/footnotes/restartsAt

replace

FootnoteRestartsAt, null

/properties/footnotes/prefix

replace

string, null

/properties/footnotes/suffix

replace

string, null

/properties/footnotes/line/enabled

replace

boolean, null

/properties/footnotes/line/weight

replace

number, null

/properties/footnotes/line/length

replace

number, null

/properties/footnotes/line/style

replace

FootnoteLineStyle, null

/properties/footnotes/line/color

replace

RGBAColor, null

/properties/header/alternatingPage

replace

boolean

/properties/header/differentFirstPage

replace

boolean

/properties/header/differentLastPage

replace

boolean

/properties/header/margin/right

replace

number, null

/properties/header/margin/left

replace

number, null

/properties/header/matchSectionMargins

replace

boolean

/properties/header/positionFromTop

replace

number, null

/properties/header/sameAsPrevious

replace

boolean

/properties/footer/alternatingPage

replace

boolean

/properties/footer/differentFirstPage

replace

boolean

/properties/footer/differentLastPage

replace

boolean

/properties/footer/margin/right

replace

number, null

/properties/footer/margin/left

replace

number, null

/properties/footer/matchSectionMargins

replace

boolean

/properties/footer/positionFromBottom

replace

number, null

/properties/footer/sameAsPrevious

replace

boolean

/properties/trackChanges

replace

boolean

Examples#

Update the name of a section#

[
  {
    "op": "replace",
    "path": "/name",
    "value": "Introduction"
  }
]

Update the parent of a section (preserving its index)#

[
  {
    "op": "replace",
    "path": "/parent",
    "value": {
      "id": "b9b3ddb587744a27aafda3c9865f1f0a_1"
    }
  }
]

Update the parent of a section (making it the first child)#

[
  {
    "op": "replace",
    "path": "/parent",
    "value": {
      "id": "b9b3ddb587744a27aafda3c9865f1f0a_1"
    }
  },
  {
    "op": "replace",
    "path": "/index",
    "value": 0
  }
]

Add a custom field value#

[
  {
    "op": "add",
    "path": "/customFields/com.workiva.gsr.legal_entity",
    "value": "Workiva"
  }
]

Remove a custom field value#

[
  {
    "op": "remove",
    "path": "/customFields/com.workiva.gsr.legal_entity"
  }
]

Replace a custom field value#

[
  {
    "op": "replace",
    "path": "/customFields/com.workiva.gsr.legal_entity",
    "value": "Workiva, Inc."
  }
]

PATCH /documents/{documentId}/sections/{sectionId}

Required OAuth Scopes

file:write

Parameters#

Parameter

In

Type

Required

Description

X-Version

header

string

true

Version of the API (2026-01-01)

documentId

path

string

true

The unique identifier of the document

sectionId

path

string

true

The unique identifier of the section

body

body

JSONPatchDocument

true

A collection of patch operations to apply to the section.

Body parameter example#

[
  {
    "op": "replace",
    "path": "/name",
    "value": "My Section"
  }
]

Code Samples#

curl -X PATCH https://api.app.wdesk.com/documents/{documentId}/sections/{sectionId} \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer {access-token}' \
    -H 'X-Version: 2026-01-01'
http PATCH https://api.app.wdesk.com/documents/{documentId}/sections/{sectionId} \
    X-Version:2026-01-01 \
    Content-Type:application/json \
    Accept:application/json \
    Authorization:"Bearer {access-token}"
wget --method=PATCH "https://api.app.wdesk.com/documents/{documentId}/sections/{sectionId}" \
    --output-document -  \ 
    --header 'Content-Type: application/json' \ 
    --header 'Accept: application/json' \ 
    --header 'Authorization: Bearer {access-token}' \
    --header 'X-Version: 2026-01-01'
import requests

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

r = requests.patch('https://api.app.wdesk.com/documents/{documentId}/sections/{sectionId}', headers = headers)

print(r.headers['Location'])

Returns#

202 - Accepted#

Response body for asynchronous operations. Contains an operationLocation field that specifies the URL to poll for the operation result. This URL can also be found in the Location header on the response.

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#

{
  "operationLocation": "https://api.app.wdesk.com/operations/128f274395254cf17eda6b3eb3d021b9"
}
{
  "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"
}