Available Now

Native SDKs for
TypeScript & Python

Type-safe SDKs that wrap the Weavz REST API. Execute actions, manage connections, control MCP servers, resolve end-user identity, and build workflows with approvals, Filesystem, State KV, and Sandbox execution.

Get started in seconds

npm install @weavz/sdk
pip install weavz-sdk

TypeScript

@weavz/sdk

Compile-time action names and generated input types for all integrations. Works in Node.js, Deno, Bun, and edge runtimes.

import { WeavzClient } from "@weavz/sdk";

const client = new WeavzClient({
  apiKey: "wvz_your_api_key",
});

const workspaceId = "550e8400-e29b-41d4-a716-446655440000";

// Execute an action
const result = await client.actions.execute("slack", "send_channel_message", {
  workspaceId,
  integrationAlias: "office_slack",
  input: {
    channel: "#general",
    text: "Hello from the TypeScript SDK!",
  },
});

// Manage connections
const connections = await client.connections.list({
  integrationName: "slack",
});

// Create an MCP server
const server = await client.mcpServers.create({
  name: "My Server",
  workspaceId,
  mode: "TOOLS",
});

Python

weavz-sdk

Pythonic client with generated Pydantic input models and httpx under the hood. Designed for AI agent frameworks and backend services.

from weavz_sdk import WeavzClient
from weavz_sdk.integrations import SlackSendChannelMessageInput

client = WeavzClient(api_key="wvz_your_api_key")
workspace_id = "550e8400-e29b-41d4-a716-446655440000"

# Validate, then execute an action
result = client.actions.execute_typed(
    integration_name="slack",
    action_name="send_channel_message",
    workspace_id=workspace_id,
    integration_alias="office_slack",
    input=SlackSendChannelMessageInput(
        channel="#general",
        text="Hello from the Python SDK!",
    ),
)

# Manage connections
connections = client.connections.list(
    integration_name="slack",
)

# Create an MCP server
server = client.mcp_servers.create(
    name="My Server",
    workspace_id=workspace_id,
    mode="TOOLS",
)

What you can do

Quick examples of common operations across both SDKs.

Execute an action

TS await client.actions.execute("slack", "send_channel_message", { ... })PY client.actions.execute_typed("slack", "send_channel_message", ...)

Create a connection

TS const { token } = await client.connect.createToken({ integrationName: "gmail", ... })PY token = client.connect.create_token(integration_name="gmail", ...)

Enable a trigger

TS await client.triggers.enable({ integrationName: "stripe", triggerName: "new_payment", ... })PY client.triggers.enable(integration_name="stripe", trigger_name="new_payment", ...)

Create an end user

TS await client.endUsers.create({ externalId: "user_123", workspaceId: "550e8400-e29b-41d4-a716-446655440000" })PY client.end_users.create(external_id="user_123", workspace_id="550e8400-e29b-41d4-a716-446655440000")

Manage partials

TS await client.partials.create({ integrationName: "slack", values: { channel: "#alerts" } })PY client.partials.create(integration_name="slack", values={"channel": "#alerts"})

Write to Filesystem

TS await client.actions.execute("storage", "write_file", { integrationAlias: "files", ... })PY client.actions.execute("storage", "write_file", integration_alias="files", ...)

Every resource, one client

Every action, connection, MCP server, approval, trigger, end user, and runtime primitive is documented, generated where possible, and one import away.

Start building today

20,000 free actions/month. Install the SDK, create an API key, and start executing actions in minutes.