> You are reading the Docusign Developer Documentation. For clean Markdown of any page, append .md to the page URL.
>
> Documentation indexes by section:
> - APIs and SDKs: https://docusign.docs.buildwithfern.com/docs/llms.txt
> - Platform 101: https://docusign.docs.buildwithfern.com/platform/llms.txt
> - Extension Apps: https://docusign.docs.buildwithfern.com/extension-apps/llms.txt
> - Docusign CLI: https://docusign.docs.buildwithfern.com/docusign-cli/llms.txt
>
> Authentication (OAuth, JWT Grant, M2M): https://docusign.docs.buildwithfern.com/platform/auth
> Webhooks and Connect: https://docusign.docs.buildwithfern.com/platform/webhooks
>
> OpenAPI specifications: https://docusign.docs.buildwithfern.com/openapi.json
> MCP server: https://docusign.docs.buildwithfern.com/_mcp/server

# Extension schema

> Learn about the extension object schema for your extension app manifest.

The `extension` object defines the basic data of your app. It includes the extension (defined by the `template` property) and references to the `action` objects for that extension. The `action` references are included as follows:

* Required actions and optional actions, known as [capabilities](/extension-apps/extension-apps-101/concepts/capabilities), must be included in the `actionReferences` array.
* Capabilities must also be included in the `capabilities` array.

| Property           | Type       | Required? | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ------------------ | ---------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `name`             | `String`   | Yes       | The name of the extension. For file output cloud storage and file output system of record extensions, the name will appear on the Workflow Builder workflow step selection and step configuration screens.                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `description`      | `String`   | Yes       | The description of the extension. For a file IO extension or a data IO extension, the description will appear on the Workflow Builder workflow step selection screen.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `template`         | `String`   | Yes       | Defines the contract of your extension. Valid values:* `ConnectedFields.Version1.ConnectedFields`
* `DataIO.Version6.DataInputOutput`
* `FileIO.Version1.FileInputCloudStorage`
* `FileIO.Version1.FileOutputCloudStorage`
* `FileIO.Version1.FileOutputSystemOfRecord`
* `FileIO.Version1.FileOutputTabularFormat`
* `Verify.Version1.BankAccountOwner`
* `Verify.Version3.BankAccount`
* `Verify.Version1.BusinessEntity`
* `Verify.Version1.Email`
* `Verify.Version1.PhoneNumber`
* `Verify.Version1.PostalAddress`
* `Verify.Version2.SocialSecurityNumber`
* `FileIO.Version1.FileOutputTabularFormat`
* `FileIO.Version1.FileInputSystemOfRecord` |
| `capabilities`     | `String[]` | No        | A list of capabilities that are implemented for the extension. Capabilities are defined in `action` objects and represent optional functionality for an extension. See the [extension contract](/extension-apps/extension-app-reference/extension-contracts) for details about how to reference a capability in this array. For extensions that have no capabilities, or if you choose not to implement any capabilities for the extension, omit this property from the manifest.                                                                                                                                                                        |
| `actionReferences` | `String[]` | Yes       | A list of actions and capabilities that will be implemented for the extension. > **Note**
>
>  The names in the `actionReferences` object must match the names of actions defined in the `actions` object of your extension app manifest.&#x20; This array cannot be empty.                                                                                                                                                                                                                                                                                                                                                                              |

An `extension` object looks like this.

```text
"extensions": [
  {
    "name": "My File Output Cloud Storage Extension",
    "description": "Writes files to cloud storage",
    "template": "FileIO.Version1.FileOutputCloudStorage",
    "actionReferences": [
      "list-directory-contents",
      "list-drives",
      "write-file"
    ],
    "capabilities": [
      "FileIO.Version1.ListDirectoryContents",
      "FileIO.Version1.ListDrives"
    ]
  }
]
```