Skip to content

Integrations API

All integration endpoints require authentication. Admin endpoints (configure, disable, list config) require an API key (Authorization: Bearer bb_sk_...). End-user endpoints (connect, execute, connections) accept either a user JWT or an API key with a userId body field.

MethodPathAuthDescription
GET/v1/:appId/integrations/availableAPI keyList curated toolkits or search catalog
GET/v1/:appId/integrations/configAPI keyList enabled integrations
POST/v1/:appId/integrations/configureAPI keyEnable a toolkit
DELETE/v1/:appId/integrations/configure/:toolkitAPI keyDisable a toolkit
POST/v1/:appId/integrations/connectJWT or API key + userIdGenerate OAuth URL for end-user
GET/v1/:appId/integrations/callbackPublicOAuth callback handler
GET/v1/:appId/integrations/connectionsJWT or API keyList connected accounts
DELETE/v1/:appId/integrations/connections/:idJWT or API keyDisconnect an account
GET/v1/:appId/integrations/toolsJWT or API keyList available tools
POST/v1/:appId/integrations/executeJWT or API key + userIdExecute a tool

List the 10 curated toolkits, or search the full catalog with ?search=.

GET /v1/app_abc/integrations/available?search=salesforce

Response:

{
"integrations": [
{ "toolkit": "salesforce", "displayName": "Salesforce", "curated": false }
]
}

Enable a toolkit for the app.

{
"toolkit": "gmail",
"displayName": "Gmail",
"scopes": []
}
FieldTypeRequiredDescription
toolkitstringToolkit slug (e.g. gmail, google-calendar)
displayNamestringHuman-readable name shown in the dashboard
scopesstring[]OAuth scopes (defaults to platform-managed)

Generate an OAuth URL for an end-user. Redirect the user to authUrl.

{
"toolkit": "gmail",
"redirectUrl": "https://yourapp.com/settings",
"userId": "uuid"
}

userId is required when authenticating with an API key. Omit when using a user JWT.

Response:

{
"authUrl": "https://accounts.google.com/...",
"connectionRequestId": "ca_xxx"
}

Execute a tool using the authenticated user’s connected account.

{
"toolName": "GMAIL_SEND_EMAIL",
"params": { "to": "x@y.com", "subject": "Hi", "body": "Hello" },
"userId": "uuid"
}

userId is required when using an API key. Omit when using a user JWT.

Response on success:

{ "successful": true, "data": { ... } }

Response on failure (422 soft failure, 502 network error):

{
"error": {
"code": "INTEGRATIONS_EXECUTION_FAILED",
"message": "...",
"remediation": "Check the tool name and parameters. Ensure the user has a connected account."
}
}
CodeHTTPMeaning
INTEGRATIONS_NOT_CONFIGURED400Integration service not configured on the platform
INTEGRATIONS_TOOLKIT_NOT_ENABLED400Toolkit not enabled for this app — call /configure first
INTEGRATIONS_EXECUTION_FAILED422/502Tool execution failed (422 = soft failure, 502 = network error)