> 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

# Connection schema

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

The `connection` object provides information that allows your app to obtain authorization from your chosen external service.

| Property      | Type                                                                                                                                   | Required?        | Description                                                                                                                        |
| ------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `name`        | `string`                                                                                                                               | Yes              | The name of the connection. This value must be unique.                                                                             |
| `id`          | `string`                                                                                                                               | System-generated | The system-generated ID of the connection. This property is read-only. Do **not** include it when uploading your initial manifest. |
| `description` | `string`                                                                                                                               | Yes              | The description of the connection.                                                                                                 |
| `type`        | `string`                                                                                                                               | Yes              | Connection type. Valid values:- `oauth2`                                                                                           |
| `params`      | [Connection parameters object](/extension-apps/extension-app-reference/app-manifest-reference/connection#connection-parameters-schema) | Yes              | An object containing the parameters required to access an external platform API.                                                   |

### Connection: Parameters schema

| Property       | Type                                                                                                                                            | Required? | Description                                                                                                                                                                                                                                                                                                                                                                                                                      |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `provider`     | `string`                                                                                                                                        | Yes       | Valid values:- `CUSTOM`                                                                                                                                                                                                                                                                                                                                                                                                          |
| `scopes`       | `string[]`                                                                                                                                      | Yes       | The scopes to request.                                                                                                                                                                                                                                                                                                                                                                                                           |
| `clientId`     | `string`                                                                                                                                        | Yes       | The client ID provided by the external platform. Maximum length: 191 characters                                                                                                                                                                                                                                                                                                                                                  |
| `clientSecret` | `string`                                                                                                                                        | Yes       | The client secret provided by the external platform. Maximum length: 191 characters                                                                                                                                                                                                                                                                                                                                              |
| `grantType`    | `string`                                                                                                                                        | No        | The type of [authorization](/extension-apps/build-an-extension-app/it-infrastructure/authorization) that the extension app uses to obtain permission to send requests to the external API service. Valid values:- `authorization_code` (default): Authorization Code Grant
- `client_credentials`: Client Credentials GrantClient Credentials Grant is supported only for private extension apps and only for clients in the US. |
| `customConfig` | [Custom configuration object](/extension-apps/extension-app-reference/app-manifest-reference/connection#connection-custom-configuration-schema) | Yes       | An object to store custom configuration information.                                                                                                                                                                                                                                                                                                                                                                             |

### Connection: Custom configuration schema

| Property              | Type     | Required?                                                                                                                                                                      | Description                                                                                                                                                                        |
| --------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `authorizationUrl`    | `string` | Yes, if the [authorization](/extension-apps/build-an-extension-app/it-infrastructure/authorization) method is Authorization Code Grant. Not used for Client Credentials Grant. | The OAuth2 authorization endpoint. The URL’s top-level domain must be one of the following:- `.com`
- `.net`
- `.org`
- `.app`
- `.cloud`Do not include `docusign.` in the domain. |
| `tokenUrl`            | `string` | Yes                                                                                                                                                                            | OAuth2 token endpoint.                                                                                                                                                             |
| `authorizationParams` | `object` | No                                                                                                                                                                             | An object to store any query parameters required for the authorization URL.                                                                                                        |
| `authorizationMethod` | `string` | No                                                                                                                                                                             | Valid values:- `header` (default)
- `body`                                                                                                                                         |
| `scopeSeparator`      | `string` | No                                                                                                                                                                             | The delimiter used to separate the scopes. The default value is a comma.                                                                                                           |

A connection object looks like this:

```text
{
  "name": "authentication",
  "description": "secure connection to proxy",
  "type": "oauth2",
  "params": {
    "provider": "CUSTOM",
    "scopes": [],
    "clientId": "230546a7-xxxx-xxxx-xxxx-af205d5494ad",
    "clientSecret": "119376b2-xxxx-xxxx-xxxx-aa951d7878eb",
    "grantType": "authorization_code",
    "customConfig": {
      "authorizationUrl": "https://example.com/auth",
      "tokenUrl": "https://example.com/token",
      "authorizationParams": {
        "access_type": "offline",
        "prompt": "consent"
      }
    }
  }
}
```