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 fieldTypeRequiredDescription / Constraints
enablebooleanRequiredMaster switch for the connect capability.
urlstringRequiredBase URL of the connector's REST API.
securityobjectconditionalAuthentication configuration.
routesarrayRequiredREST route (action) definitions. Max 100 routes.
incoming_webhooksarrayRequiredIncoming webhook definitions.
mcpobjectRequiredMCP server configuration.

Common reasons connect is disabled

The manifest tool will disable the connect schema portion of the manifest JSON for the following:

  • enable is false.
  • enable is empty and the following are also empty: url, security, routes, incoming_webhooks.