> 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 # App manifest reference > Reference for the app manifest schema. Each extension app is defined by a manifest file in JSON format. This section describes the root object of the manifest schema. **Note:** The maximum size for the manifest file is 8 MB. | Property | Type | Required? | Description | | ------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `id` | `string` | System-generated | The system-generated ID of the extension app. This property is read-only. Do **not** include it when uploading your initial manifest. | | `name` | `string` | Yes | The name of your app. This value must be unique. Maximum length is 30 characters. | | `distribution` | `string` | Yes | Determines whether your extension app will be private or public. Valid values:- `PUBLIC` (default) - `PRIVATE`Values are case-sensitive. Once the app is published, you cannot modify this value. For more information, see [Choosing private distribution instead of public](/extension-apps/extension-apps-101/choosing-private-distribution). | | `description` | `object` | Yes | An object providing a short and long description for your app. | | `description.short` | `string` | Yes | A short description of your extension app. Maximum length is 100 characters. | | `description.long` | `string` | Yes | A long description of your extension app. Maximum length is 2,000 characters. | | `publicationRegions` | `array of strings` | No | The regions in which the extension app will be available after it is published to the [Docusign App Center](/extension-apps/extension-apps-101/app-center). A production App Center user can install your extension app if their account is based in a Docusign data center that corresponds to one of the specified regions. Valid values:- `AU`: Australia. Data center: AU. - `CA`: Canada. Data center: CA. - `EU`: European Union. Data center: EU. - `JP`: Japan. Data center: JP1. - `US` (default): United States. Data centers: NA1, NA2, NA3, NA4.This example `publicationRegions` property would make your extension app available to users whose accounts are based in any of the data centers AU, CA, EU, JP1, NA1, NA2, NA3, or NA4: `"publicationRegions": ["AU","CA","EU","JP","US"]` After an extension app has been published, you can add regions, but you cannot remove them. See [Globalization](/extension-apps/extension-apps-101/globalization) for more information. | | `termsOfServiceUrl` | `string` | Yes | The URL of your app’s terms of service. | | `privacyUrl` | `string` | Yes | The URL of your app’s privacy policy. | | `supportUrl` | `string` | Yes | The URL at which users can receive support for your app. | | `signupUrl` | `string` | Not when creating your app, but required to publish the app | The URL at which users of your app can create an account with the API service to which your app connects. | | `publisher` | `object` | Yes | The app publisher’s information. Within this object, you must provide `publisher.name` and at least one of the following properties:- `publisher.email` - `publisher.phone` - `publisher.website` | | `publisher.name` | `string` | Yes | The name of the app publisher. | | `publisher.email` | `string` | Required if both `phone` and `website` are omitted | The email address of the app publisher. | | `publisher.phone` | `string` | Required if both `email` and `website` are omitted | The phone number of the app publisher. | | `publisher.website` | `string` | Required if both `email` and `phone` are omitted | The URL of the app publisher's website. | | `icon` | `object` | No | An object providing an icon for your app. | | `icon.data` | `base64` | Yes, when `icon` is included | The Base64 representation of your app’s icon. The app icon must have a 1:1 aspect ratio and be a maximum size of 100x100 pixels. The maximum file size is 5MB. | | `icon.mediaType` | `string` | Yes, when `icon` is included | The media type of the icon. Valid values:- `image/jpeg` - `image/png` | | `screenshots` | `Array of JSON objects` | No | A list of screenshots representing your app. You can provide a maximum of four images. In the Developer Console and App Center, the screenshots will be displayed in the order listed in your manifest. | | `screenshots[].data` | `base64` | Yes, for each object in the `screenshots` array | The Base64 representation of a single screenshot. The screenshot must have a 16:10 aspect ratio. The minimum dimensions are 848x530 pixels, and the maximum dimensions are 1600x1000 pixels. The maximum file size is 5 MB. | | `screenshots[].mediaType` | `string` | Yes, for each object in the `screenshots` array | The media type of the screenshot. Valid values:- `image/jpeg` - `image/png` | | `connections` | `[`[Connection object](/extension-apps/extension-app-reference/app-manifest-reference/connection)`]` | Yes | A list of connections. Each app can have a maximum of one connection. | | `extensions` | `[`[Extension object](/extension-apps/extension-app-reference/app-manifest-reference/extension)`]` | No | A list of extensions. | | `actions` | `[`[Action object](/extension-apps/extension-app-reference/app-manifest-reference/action)`]` | No | A list of [actions](/extension-apps/extension-apps-101/concepts/actions) and [capabilities](/extension-apps/extension-apps-101/concepts/capabilities) that the extension app implements. Actions and capabilities define the endpoints that invoke functionality provided by the external API service. | | `changelog` | `string` | Yes, when updating a manifest to v1.1 or higher. Cannot be set when creating an app or updating a v1.0 draft. | A brief summary of changes made to the app since it was last published. This value will be displayed in the Developer Console and App Center. The maximum length is 191 characters. | A basic manifest looks like this. ```text { "name": "Account beneficiary update", "description": { "short": "Writes beneficiary documents to cloud storage", "long": "This app is designed to write completed account beneficiary documents to a cloud storage system." }, "termsOfServiceUrl": "https://www.fontara.com/tos", "privacyUrl": "https://www.fontara.com/privacy-security", "supportUrl": "https://www.fontara.com/support", "publisher": { "name": "Fontara", "email": "sample@fontara.com" }, "connections": [ { "name": "authentication", "description": "Secure connection to sample extension app", "type": "oauth2", "params": { "provider": "CUSTOM", "clientId": "8d606a57-xxxx-xxxx-xxxx-219e80c7ed16", "clientSecret": "lfvZIUH…leaGCreU=", "scopes": [], "grantType": "authorization_code", "customConfig": { "authorizationMethod": "header", "authorizationParams": { "prompt": "consent", "access_type": "offline" }, "authorizationUrl": "https://www.fontara.com/api/oauth/authorize", "requiredScopes": [], "scopeSeparator": " ", "tokenUrl": "https://www.fontara.com/api/oauth/token", "refreshScopes": [] } } } ], "icon": { "data": "iVBORw...SuQmCC", "mediaType": "image/png" }, "screenshots": [], "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" ] } ], "actions": [ { "name": "list-directory-contents", "description": "Returns a list of folders on a cloud storage system", "template": "FileIO.Version1.ListDirectoryContents", "connectionsReference": "authentication", "params": { "uri": "https://www.fontara.com/api/listdirectorycontents" } }, { "name": "list-drives", "description": "Returns a list of drives on a cloud storage system", "template": "FileIO.Version1.ListDrives", "connectionsReference": "authentication", "params": { "uri": "https://www.fontara.com/api/listdrives" } }, { "name": "write-file", "description": "Writes a file to a cloud storage system", "template": "FileIO.Version1.WriteFile", "connectionsReference": "authentication", "params": { "uri": "https://www.fontara.com/api/writefile" } } ], "signupUrl": "https://www.fontara.com/signup", "publicationRegions": [ "US" ], "distribution": "PUBLIC" } ``` > Reference for the app manifest schema. ## Docs - [Connection schema](https://developers.docusign.com/extension-apps/extension-app-reference/app-manifest-reference/connection.md): Learn about the schema for the connection object in your extension app manifest. - [Extension schema](https://developers.docusign.com/extension-apps/extension-app-reference/app-manifest-reference/extension.md): Learn about the extension object schema for your extension app manifest. - [Action schema](https://developers.docusign.com/extension-apps/extension-app-reference/app-manifest-reference/action.md): Learn about the action object structure for your extension app manifest schema. - [Troubleshooting manifest errors](https://developers.docusign.com/extension-apps/extension-app-reference/app-manifest-reference/troubleshooting-manifest-errors.md): Learn about common manifest errors and how to resolve them.