eavz

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

GET/api/v1/integrations

List all available integrations, or fetch a specific one by name. This endpoint does not require authentication.

Query Parameters

FieldTypeRequiredDescription
namestringNoFetch a specific integration by name

Response (list)

json
{
  "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)

json
{
  "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

bash
curl https://api.weavz.io/api/v1/integrations

Errors

StatusCodeDescription
404INTEGRATION_NOT_FOUNDIntegration with the given name not found

Resolve Input Options

POST/api/v1/integrations/:integrationName/properties/options

Resolve 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

FieldTypeDescription
integrationNamestringIntegration name

Request Body

FieldTypeRequiredDescription
propertyNamestringYesProperty to resolve options for
actionNamestringNoAction containing the property
triggerNamestringNoTrigger containing the property
connectionExternalIdstringNoConnection for authenticated requests
workspaceIdstring (uuid)NoWorkspace scope
endUserIdstringNoYour end-user's identifier for per-user connection resolution
inputobjectNoCurrent form values (for inputs that depend on other field values)
searchValuestringNoFilter options by search text

Provide either actionName or triggerName, not both.

Response

json
{
  "options": [
    { "label": "#general", "value": "C0123456789" },
    { "label": "#engineering", "value": "C9876543210" }
  ],
  "disabled": false
}

Example

bash
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

StatusCodeDescription
400NOT_DROPDOWNProperty does not support value resolution
400NO_OPTIONS_FNNo values available to resolve
400OPTIONS_FAILEDOptions function threw an error
404INTEGRATION_NOT_FOUNDIntegration not found

Resolve Dynamic Properties

POST/api/v1/integrations/:integrationName/properties/resolve

Resolve 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

FieldTypeDescription
integrationNamestringIntegration name

Request Body

FieldTypeRequiredDescription
propertyNamestringYesDynamic property to resolve
actionNamestringNoAction containing the property
triggerNamestringNoTrigger containing the property
connectionExternalIdstringNoConnection for authenticated requests
workspaceIdstring (uuid)NoWorkspace scope
endUserIdstringNoYour end-user's identifier for per-user connection resolution
inputobjectNoCurrent form values

Response

The response is the resolved property schema, which varies per integration:

json
{
  "column_a": {
    "type": "SHORT_TEXT",
    "displayName": "Name",
    "required": true
  },
  "column_b": {
    "type": "NUMBER",
    "displayName": "Amount",
    "required": false
  }
}

Example

bash
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

StatusCodeDescription
400NOT_DYNAMICProperty is not a dynamic type
400NO_PROPS_FNProperty has no resolve function
400RESOLVE_FAILEDResolve function threw an error
404INTEGRATION_NOT_FOUNDIntegration not found

Get OAuth Status

GET/api/v1/integrations/oauth-status

Check which integrations have OAuth apps configured (either platform-provided or custom).

Response

json
{
  "configured": ["slack", "google-sheets", "github", "gmail", "notion", "discord", "hubspot"]
}

Example

bash
curl https://api.weavz.io/api/v1/integrations/oauth-status \
  -H "Authorization: Bearer wvz_your_api_key"