Connect
The information in the connect section of the manifest JSON represents the values on the Connect page of the app build flow.
You use connect to authenticate third-party applications and integrate data into your Zoom app.
Manifest JSON
This is a display of the full connect schema populated with sample values. Include only the fields that are relevant to your app or use case, and omit any others.
{
"connect": {
"enable": true,
"url": "https://api.example.com",
"security": {
"type": 36,
"oauth_config": {
"authorize_url": "https://app.example.com/oauth/authorize",
"access_token_url": "https://app.example.com/oauth/token",
"refresh_url": "https://app.example.com/oauth/token",
"client_id": "abc123",
"client_secret": "s3cr3t",
"scope": "read write",
"client_authentication": "header",
"code_challenge_method": "S256",
"advanced_config": {
"token_config": {
"send_in": "BODY",
"values": [
{
"key": "audience",
"value": "https://api.example.com"
}
]
}
}
}
},
"routes": [
{
"name": "Get the current user",
"path": "/users/me",
"method": "GET",
"key": "example_get_current_user",
"description": "Returns the authenticated user.",
"parameters": [
{
"name": "include",
"displayName": "Include",
"description": "Related resources to include.",
"in": "query",
"required": false,
"schema": { "type": "string" }
}
],
"response": {
"description": "Current user",
"content": "application/json"
}
},
{
"name": "Create item",
"path": "/items",
"method": "POST",
"key": "example_create_item",
"request_body": {
"required": true,
"content": "application/json",
"schema": {
"type": "object",
"properties": [
{
"key": "title",
"name": "title",
"type": "string"
},
{
"key": "count",
"name": "count",
"type": "integer"
}
]
}
},
"response": {
"description": "Created",
"content": "application/json"
}
}
],
"incoming_webhooks": [
{
"name": "Item events",
"short_description": "Fires on item changes.",
"key": "example_item_events",
"type": "RestHook",
"status": "READY",
"state": "ON",
"authentication": {
"key": "X-Signature",
"secret": "whsec_xxx",
"algorithm": "HMAC-SHA256",
"encoding": "hex",
"prefix": "sha256="
},
"validation": {
"enabled": true,
"request_key": "challenge",
"response_key": "challenge"
},
"rest_hook": {
"subscribe": { "route_key": "example_create_item" },
"unsubscribe": { "route_key": "example_create_item" }
}
}
],
"mcp": {
"base_url": "https://mcp.example.com/sse",
"name": "Example",
"ext": {
"description": "Example MCP server",
"dcr_enabled": true,
"mcpTransportType": "SSE",
"mcpType": "NORMAL",
"execution_mode": "cloud_mcp"
}
}
}
}
Field descriptions (summary)
The connect object includes the following fields. For details about each field, see the corresponding sections below.
| JSON field | Type | Required | Description / Constraints |
|---|---|---|---|
enable | boolean | Required | Master switch for the connect capability. |
url | string | Required | Base URL of the connector's REST API. |
security | object | conditional | Authentication configuration. |
routes | array | Required | REST route (action) definitions. Max 100 routes. |
incoming_webhooks | array | Required | Incoming webhook definitions. |
mcp | object | Required | MCP server configuration. |
Common reasons connect is disabled
The manifest tool will disable the
connectschema portion of the manifest JSON for the following:
enableisfalse.enableis empty and the following are also empty:url,security,routes,incoming_webhooks.