Skip to main content
POST
Connect a provider. The credentials are checked with a live test, then stored encrypted. Secrets are never returned. Two results can come back with 201:
  • Connected. The live test passed. status is connected.
  • Stored with an error. The request was valid, but the live test failed. status is error and last_error says why. Fix the credentials and run Test integration, or update the fields.
Invalid input is refused with 400 or 422, and nothing is stored. A custom webhook also returns its signing_secret in this response, once. See Custom webhooks.

Request

Headers

string
required
Bearer token with your API key (scope agents)
string
required
application/json

Body

string
required
A provider key from the catalog, such as hubspot, mcp or webhook
string
1 to 64 characters, unique in the workspace. Defaults to the catalog name
object
default:"{}"
The field values, keyed by each field’s key from the catalog. Text values are up to 4,096 characters. A custom webhook also takes a JSON object for parameters and body_template. Unknown keys are refused. Required fields must be present. See Connect an integration

Response

201 Created with the connection. The fields match List integrations.
For a custom webhook, the response also has "signing_secret": "whsec_…". It is shown only here. For a custom webhook, config is { "actions": [...] }. used_by lists the agents that hold the connection’s tools. A new connection has none, so it is [].

Errors

Example