Adobe Workfront Planning API v1

Version 1 of the Workfront Planning API, published by Adobe as an OpenAPI 3.0.1 document covering records, record types and workspaces across 7 paths and 10 operations. Released July 2024 and still the version the Workfront Planning connector for Workfront Fusion targets.

OpenAPI Specification

workfront-planning-v1-openapi.json Raw ↑
{
  "openapi": "3.0.1",
  "info": {
    "title": "Workfront Planning API Version 1",
    "description": "This is Workfront Planning Service API documentation. Workfront Planning Service is responsible for creating and managing new workspace, field, record, record type objects across the Workfront application and Adobe DX infrastructure."
  },
  "servers": [
    {
      "url": "https://{customer-domain}/maestro/api",
      "description": "Workfront Planning Service Url"
    }
  ],
  "tags": [
    {
      "name": "Workspaces",
      "description": "Workspace Controller"
    },
    {
      "name": "Record Types",
      "description": "Record Type Controller"
    },
    {
      "name": "Records",
      "description": "Record Controller"
    }
  ],
  "paths": {
    "/v1/records/{id}": {
      "get": {
        "tags": [
          "Records"
        ],
        "summary": "Get Record",
        "description": "Retrieve a specific record by its ID along with optional attributes.",
        "operationId": "getRecord",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the record to be retrieved",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "aliased",
            "in": "query",
            "description": "Flag to include alias support",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "attributes",
            "in": "query",
            "description": "List of attributes to be included in the response",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": [
                "*"
              ]
            },
            "example": "ALL"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/RecordDto"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Records"
        ],
        "summary": "Update Record",
        "description": "Update an existing record with the given ID and details.",
        "operationId": "updateRecord",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the record to be updated",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/RecordDto"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Records"
        ],
        "summary": "Delete Record by ID",
        "description": "Delete a specific record by its ID.",
        "operationId": "deleteRecord",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the record to be deleted",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/v1/records": {
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Create Record",
        "description": "Create a new record with the given details.",
        "operationId": "createRecord",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/RecordDto"
                }
              }
            }
          }
        }
      }
    },
    "/v1/records/search": {
      "get": {
        "tags": [
          "Records"
        ],
        "summary": "Search Records by field values",
        "description": "Search for records based on specific field values.",
        "operationId": "searchRecordsGet",
        "parameters": [
          {
            "name": "recordTypeId",
            "in": "query",
            "description": "Id of the record type",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "recordTypeAlias",
            "in": "query",
            "description": "Alias of the record type",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "aliased",
            "in": "query",
            "description": "Flag to include alias support",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "description": "Filters",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "groupingFieldIds",
            "in": "query",
            "description": "Grouping field ids",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Offset",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Limit",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 500
            }
          },
          {
            "name": "rowOrderViewId",
            "in": "query",
            "description": "Row order view id",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "attributes",
            "in": "query",
            "description": "List of attributes to be included in the response",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": [
                "*"
              ]
            },
            "example": "ALL"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/GroupedRecordsDto"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Records"
        ],
        "summary": "Search Records by field values",
        "description": "Search for records based on specific field values.",
        "operationId": "searchRecordsPost",
        "parameters": [
          {
            "name": "recordTypeAlias",
            "in": "query",
            "description": "Alias of the record type",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "aliased",
            "in": "query",
            "description": "Flag to include alias support",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "attributes",
            "in": "query",
            "description": "List of attributes to be included in the response",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": [
                "*"
              ]
            },
            "example": "ALL"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RecordSearchDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/GroupedRecordsDto"
                }
              }
            }
          }
        }
      }
    },
    "/v1/workspaces": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "summary": "Get All Workspaces",
        "description": "Retrieve a list of all workspaces along with optional attributes.",
        "operationId": "getWorkspaces",
        "parameters": [
          {
            "name": "attributes",
            "in": "query",
            "description": "List of attributes to be included in the response",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": [
                "*"
              ]
            },
            "example": "ALL"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceListDto"
                }
              }
            }
          }
        }
      }
    },
    "/v1/workspaces/{id}": {
      "get": {
        "tags": [
          "Workspaces"
        ],
        "summary": "Get Workspace",
        "description": "Retrieve a workspace by its ID along with optional attributes.",
        "operationId": "getWorkspace",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the workspace to be retrieved",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "attributes",
            "in": "query",
            "description": "List of attributes to be included in the response",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": [
                "*"
              ]
            },
            "example": "ALL"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/WorkspaceDto"
                }
              }
            }
          }
        }
      }
    },
    "/v1/record-types": {
      "get": {
        "tags": [
          "Record Types"
        ],
        "summary": "Get Record Types of specified Workspace",
        "description": "Retrieve a list of record types associated with a specified workspace. If a user has view access to workspaces, they gain visibility into all record types.",
        "operationId": "getRecordTypes",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "query",
            "description": "ID of the workspace",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "attributes",
            "in": "query",
            "description": "List of attributes to be included in the response",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": [
                "*"
              ]
            },
            "example": "ALL"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RecordTypeDto"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/record-types/{id}": {
      "get": {
        "tags": [
          "Record Types"
        ],
        "summary": "Get Record Type by ID",
        "description": "Retrieve a specific record type by its ID along with optional attributes.",
        "operationId": "getRecordType",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of the record type to be retrieved",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "attributes",
            "in": "query",
            "description": "List of attributes to be included in the response",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": [
                "*"
              ]
            },
            "example": "ALL"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/RecordTypeDto"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "CoverImage": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "position": {
            "type": "integer",
            "format": "int32"
          }
        },
        "readOnly": true
      },
      "RecordDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdBy": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "customerId": {
            "type": "string"
          },
          "imsOrgId": {
            "type": "string"
          },
          "recordTypeId": {
            "type": "string"
          },
          "data": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "recordExternalOptions": {
            "$ref": "#/components/schemas/RecordExternalOptions"
          },
          "thumbnailUrl": {
            "type": "string",
            "readOnly": true
          },
          "coverImage": {
            "$ref": "#/components/schemas/CoverImage"
          }
        }
      },
      "RecordExternalOptions": {
        "type": "object",
        "properties": {
          "connection": {
            "type": "string",
            "enum": [
              "WORKFRONT",
              "AEM"
            ]
          },
          "object": {
            "type": "string",
            "enum": [
              "PROJECT",
              "PORTFOLIO",
              "PROGRAM",
              "COMPANY",
              "GROUP",
              "ASSET"
            ]
          },
          "externalId": {
            "type": "string"
          },
          "connectionOptions": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "link": {
            "type": "string"
          }
        }
      },
      "JsonNode": {
        "type": "object"
      },
      "RecordSearchDto": {
        "type": "object",
        "properties": {
          "recordTypeId": {
            "type": "string"
          },
          "recordTypeAlias": {
            "type": "string"
          },
          "filters": {
            "$ref": "#/components/schemas/JsonNode"
          },
          "groupingFieldIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sorting": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecordSorting"
            }
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "rowOrderViewId": {
            "type": "string"
          }
        }
      },
      "RecordSorting": {
        "type": "object",
        "properties": {
          "fieldId": {
            "type": "string"
          },
          "direction": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ]
          }
        }
      },
      "GroupedRecordsDto": {
        "type": "object",
        "properties": {
          "records": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecordDto"
            }
          },
          "groups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecordGroupDto"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "RecordGroupDto": {
        "type": "object",
        "properties": {
          "fieldId": {
            "type": "string"
          },
          "value": {
            "type": "object"
          },
          "recordIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "FieldDateOptionsDto": {
        "type": "object",
        "properties": {
          "dateFormat": {
            "type": "string",
            "enum": [
              "locale",
              "standard",
              "friendly",
              "european",
              "iso"
            ]
          },
          "timeFormat": {
            "type": "string",
            "enum": [
              "h12",
              "h24"
            ]
          }
        }
      },
      "FieldDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdBy": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "customerId": {
            "type": "string"
          },
          "imsOrgId": {
            "type": "string"
          },
          "alias": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "linkedField": {
            "$ref": "#/components/schemas/FieldDto"
          },
          "description": {
            "type": "string"
          },
          "options": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FieldOptionDto"
            }
          },
          "dateOptions": {
            "$ref": "#/components/schemas/FieldDateOptionsDto"
          },
          "numberOptions": {
            "$ref": "#/components/schemas/FieldNumberOptionsDto"
          },
          "referenceOptions": {
            "$ref": "#/components/schemas/FieldReferenceOptionsDto"
          },
          "lookupOptions": {
            "$ref": "#/components/schemas/FieldLookupOptionsDto"
          },
          "formulaOptions": {
            "$ref": "#/components/schemas/FieldFormulaOptionsDto"
          },
          "userOptions": {
            "$ref": "#/components/schemas/FieldUserOptionsDto"
          },
          "hasError": {
            "type": "boolean"
          }
        }
      },
      "FieldFormulaOptionsDto": {
        "type": "object",
        "properties": {
          "formula": {
            "type": "string"
          }
        }
      },
      "FieldLookupOptionsDto": {
        "type": "object",
        "properties": {
          "referenceFieldId": {
            "type": "string"
          },
          "rollup": {
            "type": "string"
          },
          "sourceField": {
            "$ref": "#/components/schemas/FieldDto"
          }
        }
      },
      "FieldNumberOptionsDto": {
        "type": "object",
        "properties": {
          "precision": {
            "type": "integer",
            "format": "int32"
          },
          "allowNegatives": {
            "type": "boolean"
          },
          "currency": {
            "type": "string",
            "enum": [
              "AED",
              "AFN",
              "ALL",
              "AMD",
              "AON",
              "ARS",
              "AUD",
              "AZN",
              "BAM",
              "BBD",
              "BDT",
              "BGL",
              "BHD",
              "BIF",
              "BND",
              "BOB",
              "BRL",
              "BSD",
              "BTN",
              "BWP",
              "BYN",
              "BZD",
              "CAD",
              "CDF",
              "CHF",
              "CLP",
              "CNY",
              "COP",
              "CRC",
              "CUP",
              "CVE",
              "DJF",
              "DKK",
              "DOP",
              "DZD",
              "EGP",
              "ERN",
              "ETB",
              "EUR",
              "FJD",
              "GBP",
              "GEL",
              "GHC",
              "GMD",
              "GNF",
              "GTQ",
              "GYD",
              "HNL",
              "HRK",
              "HTG",
              "HUF",
              "IDR",
              "ILS",
              "INR",
              "IQD",
              "IRR",
              "ISK",
              "JMD",
              "JOD",
              "JPY",
              "KES",
              "KGS",
              "KHR",
              "KMF",
              "KPW",
              "KRW",
              "KWD",
              "KZT",
              "LAK",
              "LBP",
              "LKR",
              "LRD",
              "LSL",
              "LYD",
              "MAD",
              "MDL",
              "MGA",
              "MKD",
              "MMK",
              "MNT",
              "MRU",
              "MUR",
              "MVR",
              "MWK",
              "MXN",
              "MYR",
              "MZM",
              "NAD",
              "NGN",
              "NIO",
              "NOK",
              "NPR",
              "NZD",
              "OMR",
              "PAB",
              "PEN",
              "PGK",
              "PHP",
              "PKR",
              "PLN",
              "PYG",
              "QAR",
              "RON",
              "RSD",
              "RUB",
              "RWF",
              "SAR",
              "SBD",
              "SCR",
              "SDG",
              "SEK",
              "SGD",
              "SLL",
              "SOS",
              "SRD",
              "SSP",
              "STN",
              "SYP",
              "SZL",
              "THB",
              "TJS",
              "TMT",
              "TND",
              "TOP",
              "TRY",
              "TTD",
              "TZS",
              "UAH",
              "UGS",
              "USD",
              "UYU",
              "UZS",
              "VEF",
              "VND",
              "VUV",
              "WST",
              "XAF",
              "XCD",
              "XOF",
              "YER",
              "ZAR",
              "ZMK",
              "ZWD"
            ]
          }
        }
      },
      "FieldOptionDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "color": {
            "type": "string"
          }
        }
      },
      "FieldReferenceExternalOptionsDto": {
        "type": "object",
        "properties": {
          "connectionName": {
            "type": "string"
          },
          "objectName": {
            "type": "string"
          },
          "connectionOptions": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "FieldReferenceLookupFieldDto": {
        "type": "object",
        "properties": {
          "fieldId": {
            "type": "string"
          },
          "rollup": {
            "type": "string"
          }
        }
      },
      "FieldReferenceOptionsDto": {
        "type": "object",
        "properties": {
          "multiple": {
            "type": "boolean"
          },
          "recordTypeId": {
            "type": "string"
          },
          "isExternal": {
            "type": "boolean"
          },
          "externalOptions": {
            "$ref": "#/components/schemas/FieldReferenceExternalOptionsDto"
          },
          "filters": {
            "type": "object",
            "additionalProperties": {
              "type": "object"
            }
          },
          "lookupFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FieldReferenceLookupFieldDto"
            }
          }
        }
      },
      "FieldUserOptionsDto": {
        "type": "object",
        "properties": {
          "multipleUsersAllowed": {
            "type": "boolean"
          }
        }
      },
      "RecordTypeDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdBy": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "customerId": {
            "type": "string"
          },
          "imsOrgId": {
            "type": "string"
          },
          "alias": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "permission": {
            "type": "string",
            "enum": [
              "manage",
              "edit",
              "view",
              "none"
            ]
          },
          "primaryFieldId": {
            "type": "string"
          },
          "icon": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FieldDto"
            }
          },
          "isExternal": {
            "type": "boolean"
          },
          "externalOptions": {
            "$ref": "#/components/schemas/RecordTypeExternalOptionsDto"
          }
        }
      },
      "RecordTypeExternalOptionsDto": {
        "type": "object",
        "properties": {
          "connectionName": {
            "type": "string"
          },
          "objectName": {
            "type": "string"
          },
          "fields": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "RecordTypeSectionDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "recordTypeIds": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "WorkspaceDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "createdBy": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "updatedBy": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "customerId": {
            "type": "string"
          },
          "imsOrgId": {
            "type": "string"
          },
          "alias": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "permission": {
            "type": "string",
            "enum": [
              "manage",
              "edit",
              "view",
              "none"
            ]
          },
          "icon": {
            "type": "string"
          },
          "recordTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecordTypeDto"
            }
          },
          "recordTypeSections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecordTypeSectionDto"
            }
          }
        }
      },
      "WorkspaceListDto": {
        "type": "object",
        "properties": {
          "workspaces": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkspaceDto"
            }
          },
          "permission": {
            "type": "string",
            "enum": [
              "manage",
              "edit",
              "view",
              "none"
            ]
          }
        }
      }
    }
  }
}