Integrations
List available integrations and resolve dynamic properties.
Integrations
The Integrations API lets you discover available integrations, view their actions and triggers, and resolve dynamic input values that depend on a live connection.
List Integrations
/api/v1/integrationsList all available integrations, or fetch a specific one by name. This endpoint does not require authentication.
Query Parameters
| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | Fetch a specific integration by name |
Response (list)
{
"integrations": [
{
"name": "slack",
"displayName": "Slack",
"description": "Send messages and manage channels",
"logoUrl": "data:image/svg+xml;base64,...",
"categories": ["communication"],
"auth": {
"type": ["OAUTH2"],
"oauth2": { "authUrl": "https://slack.com/oauth/v2/authorize" }
},
"actions": {
"send_channel_message": {
"name": "send_channel_message",
"displayName": "Send Channel Message",
"description": "Send a message to a Slack channel",
"props": {}
}
},
"triggers": {}
}
],
"total": 34,
"registered": ["slack", "gmail", "github"]
}The registered array lists integration names that have at least one connection or MCP server tool configured in your organization.
Response (single, with ?name=slack)
{
"integration": {
"name": "slack",
"displayName": "Slack",
"description": "Send messages and manage channels",
"logoUrl": "data:image/svg+xml;base64,...",
"categories": ["communication"],
"auth": { "type": ["OAUTH2"] },
"actions": { "send_channel_message": { ... } },
"triggers": {}
}
}Example
curl https://api.weavz.io/api/v1/integrationsErrors
| Status | Code | Description |
|---|---|---|
404 | INTEGRATION_NOT_FOUND | Integration with the given name not found |
Resolve Input Options
/api/v1/integrations/:integrationName/properties/optionsResolve available options for select inputs in an action or trigger. This fetches available values from the connected service (e.g., list of Slack channels, Google Sheets spreadsheets).
Path Parameters
| Field | Type | Description |
|---|---|---|
integrationName | string | Integration name |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
propertyName | string | Yes | Property to resolve options for |
actionName | string | No | Action containing the property |
triggerName | string | No | Trigger containing the property |
connectionExternalId | string | No | Connection for authenticated requests |
workspaceId | string (uuid) | No | Workspace scope |
endUserId | string | No | Your end-user's identifier for per-user connection resolution |
input | object | No | Current form values (for inputs that depend on other field values) |
searchValue | string | No | Filter options by search text |
Provide either actionName or triggerName, not both.
Response
{
"options": [
{ "label": "#general", "value": "C0123456789" },
{ "label": "#engineering", "value": "C9876543210" }
],
"disabled": false
}Example
curl -X POST https://api.weavz.io/api/v1/integrations/slack/properties/options \
-H "Authorization: Bearer wvz_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"propertyName": "channel",
"actionName": "send_channel_message",
"connectionExternalId": "slack-main"
}'Errors
| Status | Code | Description |
|---|---|---|
400 | NOT_DROPDOWN | Property does not support value resolution |
400 | NO_OPTIONS_FN | No values available to resolve |
400 | OPTIONS_FAILED | Options function threw an error |
404 | INTEGRATION_NOT_FOUND | Integration not found |
Resolve Dynamic Properties
/api/v1/integrations/:integrationName/properties/resolveResolve a dynamic property schema. Dynamic properties are properties whose schema depends on runtime values (e.g., column fields that change based on a selected spreadsheet).
Path Parameters
| Field | Type | Description |
|---|---|---|
integrationName | string | Integration name |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
propertyName | string | Yes | Dynamic property to resolve |
actionName | string | No | Action containing the property |
triggerName | string | No | Trigger containing the property |
connectionExternalId | string | No | Connection for authenticated requests |
workspaceId | string (uuid) | No | Workspace scope |
endUserId | string | No | Your end-user's identifier for per-user connection resolution |
input | object | No | Current form values |
Response
The response is the resolved property schema, which varies per integration:
{
"column_a": {
"type": "SHORT_TEXT",
"displayName": "Name",
"required": true
},
"column_b": {
"type": "NUMBER",
"displayName": "Amount",
"required": false
}
}Example
curl -X POST https://api.weavz.io/api/v1/integrations/google-sheets/properties/resolve \
-H "Authorization: Bearer wvz_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"propertyName": "columns",
"actionName": "insert_row",
"connectionExternalId": "google-sheets-main",
"input": {
"spreadsheet_id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgVE2upms",
"sheet_id": "Sheet1"
}
}'Errors
| Status | Code | Description |
|---|---|---|
400 | NOT_DYNAMIC | Property is not a dynamic type |
400 | NO_PROPS_FN | Property has no resolve function |
400 | RESOLVE_FAILED | Resolve function threw an error |
404 | INTEGRATION_NOT_FOUND | Integration not found |
Get OAuth Status
/api/v1/integrations/oauth-statusCheck which integrations have OAuth apps configured (either platform-provided or custom).
Response
{
"configured": ["slack", "google-sheets", "github", "gmail", "notion", "discord", "hubspot"]
}Example
curl https://api.weavz.io/api/v1/integrations/oauth-status \
-H "Authorization: Bearer wvz_your_api_key"