Integrations & API

If you can do it in the app,
you can do it with curl.

Zergboard treats the UI as one client, not the source of truth. Every feature ships to the API in the same release. Anything else is backwards.

100%
Features in the API
3
Official SDKs (TS / Py / Go)
14
Webhook events
1
MCP server (for agents)

01 · The shape of it

REST + webhooks. Boring on purpose.

Read

# List boards in a workspace
GET /v1/workspaces/acme-eng/boards
Authorization: Bearer $ZB_TOKEN

# Get a card with full history
GET /v1/cards/card_8f2a?expand=history,comments

# Search across the workspace
GET /v1/search?q="5xx errors"&workspace=acme-eng

Write

# Create a card (idempotent)
POST /v1/cards
Idempotency-Key: req_a8f...
{
  "board": "board_42",
  "title": "User reports billing 5xx",
  "column": "triage",
  "labels": ["bug", "p1"]
}

# Move + comment in one call
PATCH /v1/cards/card_8f2a
{ "column": "shipped", "comment": "v3.2.1" }

02 · Webhooks

Push, not just pull.

Subscribe once, get every change as a signed POST. Retries, dead-letter queue, and replay all built in. We send the events you'd expect — and let you wildcard them.

card.created card.moved card.updated card.deleted comment.created comment.updated workspace.member.added workspace.member.removed board.created board.archived automation.fired audit.event sla.breached attachment.uploaded
# Webhook payload (signed via HMAC-SHA256 in header)
{
  "event": "card.moved",
  "id": "evt_b91c...",
  "workspace": "acme-eng",
  "timestamp": "2026-04-30T14:22:18Z",
  "actor": { "type": "agent",
              "id": "agent_claude-code" },
  "data": {
    "card_id": "card_8f2a",
    "from_column": "in_progress",
    "to_column": "shipped",
    "comment": "Deployed in v3.2.1"
  }
}

# Verify with one HMAC check — example header:
# X-Zergboard-Signature: t=1714400538,v1=8d2...

03 · SDKs

First-class for the languages you actually use.

TypeScript

import { Zergboard } from "@zergboard/sdk";

const zb = new Zergboard({
  token: process.env.ZB_TOKEN,
});

await zb.cards.create({
  board: "board_42",
  title: "Fix billing 5xx",
});

Python

from zergboard import Zergboard

zb = Zergboard(token=os.environ["ZB_TOKEN"])

zb.cards.create(
    board="board_42",
    title="Fix billing 5xx",
)

Go

zb := zergboard.New(os.Getenv("ZB_TOKEN"))

card, err := zb.Cards.Create(ctx, &zergboard.CardCreate{
  Board: "board_42",
  Title: "Fix billing 5xx",
})

04 · Agents

An MCP server. So your agents already know how to use it.

Zergboard ships an official Model Context Protocol server. Plug it into Claude Code, Cursor, or any MCP-compatible runtime — your agent can list boards, create cards, move them, and post comments using standard MCP tool calls. No glue code.

Standard MCP transport

stdio & SSE. Pin the version, scope the tools, audit the calls.

Built-in scopes

Hand an agent a token scoped to cards:write on one workspace. Done.

Idempotent writes

Agents retry. Idempotency keys mean no duplicate cards.

# Add Zergboard to Claude Code in one line
claude mcp add zergboard -- npx @zergboard/mcp

# Or in your config:
{
  "mcpServers": {
    "zergboard": {
      "command": "npx",
      "args": ["@zergboard/mcp"],
      "env": { "ZB_TOKEN": "$ZB_TOKEN" }
    }
  }
}

# Agent now has these tools:
  - zergboard_list_boards
  - zergboard_create_card
  - zergboard_move_card
  - zergboard_comment
  - zergboard_search

05 · Pre-built integrations

The handful you actually need.

We don't ship 800 half-broken integrations. We ship the dozen people ask for, maintain them, and document the API for the rest.

GitHub

Auto-link PRs to cards. Move on merge.

GitLab

Same as GitHub, self-hosted included.

Slack

Card events → channels. Slash-command create.

Discord

Channel notifications, board summaries.

Sentry

Issue → triage card with stack trace.

Datadog

Monitors → cards. SLA timers tied to severity.

PagerDuty

Incidents create cards. Resolution closes them.

Linear

One-shot importer. Bring your tickets.

Jira

Importer + bidirectional sync (beta).

Trello

One-click migrate, including Power-Ups.

Asana

Importer with project hierarchy mapping.

Email

Inbound: workspace@in.zergboard.com.

Zapier

300+ apps for the long tail.

n8n

Self-hosted automation, open-source.

Webhook out

14 events, 7-day retry, signed payloads.

+ your own

Anything we don't ship, you can build in an afternoon.

Built like a tool, not a fortress

Hand it to your team. Hand it to your agents.

Free for teams under ten. The API is the same on every tier.