POST
Create Integration

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
display_name
string
required
Required string length: 1 - 120
provider
enum<string>
required
Available options:
custom_mcp,
google_calendar,
cal_com,
calendly,
asana,
jira,
hubspot,
exa,
tavily,
resend,
rocketreach,
telegram
allowed_tools
string[] | null
Minimum array length: 1
Required string length: 1 - 200
credentials_ref
string | null
Required string length: 1 - 16384
mcp_config
Mcp Config · object
metadata
Metadata · object
provider_account_info
Provider Account Info · object
tools_namespace
string | null
Pattern: ^$|^[a-z][a-z0-9_]{0,23}$
webhook_config
Webhook Config · object

Response

Successful Response

Public API representation of an integration (HTTP + CoPilot).

allowed_tools
string[] | null
required
auth_type
enum<string>
required
Available options:
oauth,
manual
capabilities
IntegrationCapabilities · object
required

Complete capabilities projection — always the same shape for every provider.

Derived from ProviderSpec at response time; never stored in the DB.

created_at
string<date-time>
required
credentials_ref
string | null
required
display_name
string
required
id
string<uuid>
required
logo_url
string | null
required
mcp_config
Mcp Config · object
required
metadata
Metadata · object
required
provider
enum<string>
required
Available options:
custom_mcp,
google_calendar,
cal_com,
calendly,
asana,
jira,
hubspot,
exa,
tavily,
resend,
rocketreach,
telegram
provider_account_info
Provider Account Info · object
required
provider_label
string
required
status
enum<string>
required
Available options:
active,
disabled,
needs_reconnect,
error
tools_namespace
string
default:""
required
updated_at
string<date-time>
required
webhook_config
Webhook Config · object
required
webhook_setup
IntegrationWebhookSetup · object | null
required

Where the provider delivers, and whether anything has arrived yet.

Status rather than instructions: a chat provider registers its own webhook when a trigger is enabled, so nobody has to paste this URL anywhere. It is here for support — "has anything ever arrived on this connection".