Retrieve a customSchema#

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 2027-01-31.

Description#

Retrieves the CustomSchema, which has the complete schema of custom fields and groups for the entire workspace, optionally filtering to a historical revision.

For example, to get the CustomSchema as of revision 7:

GET /customSchema?$filter=revision eq 7

Note: This endpoint is rate-limited. You may experience rates as low as 6000 requests per minute. This limit is enforced per workspace and is inclusive of both API and UI based requests. When polling for updates, examine the Retry-After header and retry after that many seconds.

GET /prototype/platform/customSchema

Required OAuth Scopes

file:read

Parameters#

Parameter

In

Type

Required

Description

X-Version

header

string

false

Version of the API (2022-01-01)

$filter

query

string

false

The properties to filter the results by.

Code Samples#

curl -X GET https://api.app.wdesk.com/prototype/platform/customSchema \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer {access-token}' \
    -H 'X-Version: 2022-01-01'
http GET https://api.app.wdesk.com/prototype/platform/customSchema \
    X-Version:2022-01-01 \
    Accept:application/json \
    Authorization:"Bearer {access-token}"
wget --method=GET "https://api.app.wdesk.com/prototype/platform/customSchema" \
    --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/prototype/platform/customSchema', headers = headers)

print(r.json())

Returns#

200 - OK#

The complete workspace-wide schema of custom fields, custom field groups, and mapping of custom fields to each group represented as custom field group memberships.

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#

{
  "customFieldGroupMemberships": {
    "gsr.legal_entity": [
      "gsr"
    ]
  },
  "customFieldGroups": {
    "Document": {
      "builtin": {
        "description": "Custom fields that apply to every Document",
        "id": "Document",
        "name": "All Documents",
        "objectTypes": [
          "Document"
        ],
        "state": "Active"
      }
    },
    "Presentation": {
      "builtin": {
        "description": "Custom fields that apply to every Presentation",
        "id": "Presentation",
        "name": "All Presentations",
        "objectTypes": [
          "Presentation"
        ],
        "state": "Active"
      }
    },
    "Section": {
      "builtin": {
        "description": "Custom fields that apply to every Section",
        "id": "Section",
        "name": "All Sections",
        "objectTypes": [
          "Section"
        ],
        "state": "Active"
      }
    },
    "Sheet": {
      "builtin": {
        "description": "Custom fields that apply to every Sheet",
        "id": "Sheet",
        "name": "All Sheets",
        "objectTypes": [
          "Sheet"
        ],
        "state": "Active"
      }
    },
    "Slide": {
      "builtin": {
        "description": "Custom fields that apply to every Slide",
        "id": "Slide",
        "name": "All Slides",
        "objectTypes": [
          "Slide"
        ],
        "state": "Active"
      }
    },
    "Spreadsheet": {
      "builtin": {
        "description": "Custom fields that apply to every Spreadsheet",
        "id": "Spreadsheet",
        "name": "All Spreadsheets",
        "objectTypes": [
          "Spreadsheet"
        ],
        "state": "Active"
      }
    },
    "gsr": {
      "userDefined": {
        "description": "Custom fields relevant to GSR reporting",
        "id": "gsr",
        "modified": {
          "datetime": "2019-10-30T15:03:27Z",
          "user": {
            "id": "V0ZVc2VyHzQ4Mjk1OTA4NjYzNjIzNjg"
          }
        },
        "name": "GSR Reporting",
        "objectTypes": [
          "Document",
          "Spreadsheet",
          "Presentation",
          "Section",
          "Sheet",
          "Slide"
        ],
        "state": "Active"
      }
    }
  },
  "customFields": {
    "gsr.legal_entity": {
      "userDefined": {
        "id": "gsr.legal_entity",
        "modified": {
          "datetime": "2019-10-30T15:03:27Z",
          "user": {
            "id": "V0ZVc2VyHzQ4Mjk1OTA4NjYzNjIzNjg"
          }
        },
        "schema": {
          "state": "Active",
          "title": "Legal Entity",
          "type": "string"
        }
      }
    }
  },
  "revision": 1487267209
}
{
  "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"
}