# Zulip (slim) > Zulip is open-source team chat organised into channels and topics, from Kandra Labs, hosted as Zulip Cloud or self-hosted. Agents reach it through a REST API with bot accounts, an events queue and Python and JavaScript client libraries. - Full: https://www.anchorterminal.com/tools/zulip.md (~7,400 tokens) · this version ~1,780 tokens · JSON https://www.anchorterminal.com/tools/zulip.json · canonical https://www.anchorterminal.com/tools/zulip - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-09 **C · 61.5/100 · rank #422 of 842 · #2 in Work & productivity · not agent-ready · confidence medium** Assessment: The REST API is the one Zulip's own apps use, with a public OpenAPI file of 166 operations, a changelog by feature level and a status page showing no incidents in 90 days. Each account has one API key with no scopes, and the server took 13 security advisories in twelve months, all fixed and published. ## Facts - Kind: HTTP API · vendor: Kandra Labs, Inc. · category: Work & productivity · legal entity: Kandra Labs, Inc. · provenance 74/100 - Local only (HTTP): pypi `zulip`, npm `zulip-js` - Auth: API key · pricing: Freemium · x402: no · licence: Apache 2.0 for the server. The hosted Zulip Cloud service is under Kandra Labs' Terms of Service. The npm package zulip-js is MIT - Probe metrics: not measured yet (probes haven't run) - Surface graded: The REST API of the hosted Zulip Cloud service at https://.zulipchat.com/api/v1. The same API ships in the self-hosted server - API: OpenAPI 3.0.1, 166 operations on 119 paths. Users (45 operations), channels (29), server and organisation settings (28), messages (20), drafts (8), invitations (6), real-time events (5), scheduled messages (4). Request bodies are form-encoded - Messages: `POST /messages` needs `type`, `to` and `content`, plus `topic` for a channel. `GET /messages` takes a `narrow` filter with the search operators, an `anchor`, `num_before` and `num_after`, up to 5,000 a request with 1,000 recommended - Events: `POST /register` opens an event queue and `GET /events` long-polls it. Outgoing webhook bots receive mentions and direct messages by HTTP POST instead - Credentials: One API key per user or bot over HTTP Basic. No scopes, expiry or OAuth. Regenerating the key revokes the old one. Bot types are generic, incoming webhook and outgoing webhook - Rate limits: 200 API requests a minute per user in the default configuration, lower limits on login. `X-RateLimit-*` headers on every response. A 429 body has `code` `RATE_LIMIT_HIT` and `retry-after` in seconds - Errors: JSON with `result`, `msg` and a machine-readable `code` such as `INVALID_API_KEY`, `REQUEST_VARIABLE_MISSING` or `RATE_LIMIT_HIT`. Success responses list `ignored_parameters_unsupported` - Versioning: No version beyond `/api/v1`. Each change gets a feature level (513 on the main branch on 8 October 2026), returned as `zulip_feature_level` and listed in the API changelog - Client libraries: Official Python `zulip` 0.9.1 (tagged 30 September 2025) and JavaScript `zulip-js` 2.1.0. Eight user-maintained libraries are listed, among them Go, Java, C# and Ruby - Releases: Zulip Server 12.3 on 21 September 2026, 12.2 on 10 August, 12.1 on 26 June, 12.0 on 27 April. The cloud pages reported server version 12.0-1057 on the day - Status: status.zulip.com on Statuspage with nine components. No incidents from June to 8 October 2026, one minor incident on 21 May 2026 - Sub-processors: Amazon Web Services, DigitalOcean, Google, Front, Sentry, Mailgun and Stripe. The privacy policy says the service is hosted in the United States - Prices: Zulip Cloud Standard $6.67 per seat per month; Zulip Cloud Plus $10 per seat per month; Self-hosted Basic $3.50 per seat per month; Self-hosted Business $6.67 per seat per month - Scores: Reliability 83, Performance pending, Schema & documentation 82, Agent ergonomics 68, Security & auth 42, Payments & pricing 30, Task success pending, Maintenance & community 77, Transparency & trust 76 · negative events -4 · total over the 7 assessed categories - Why: Reliability, Graded on the hosted Zulip Cloud API with the hosted lines. · Schema & documentation, Public OpenAPI 3.0.1 file in the repository, 166 operations on 119 paths (25). · Agent ergonomics, `GET /messages` sizes responses with `num_before`, `num_after` and `apply_markdown`, and `POST /register` with `fetch_event_types`. · Security & auth, One revocable API key per account with no scopes or expiry, and no OAuth for API clients, read as plain revocable keys (20). · Payments & pricing, No x402, MPP or L402 (0). · Maintenance & community, Zulip Server 12.3 was released on 21 September 2026, 18 days before the check, and the main branch had a commit on 8 October (30). · Transparency & trust, The server is open source under Apache 2.0 (30). - Sources: 32, open questions: 12, both in the full twin - Capabilities: work.chat - JSON: https://www.anchorterminal.com/api/v1/tools/zulip.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/zulip.svg` or a link to https://www.anchorterminal.com/tools/zulip from a page on zulip.com or one of its subdomains, or the README of github.com/zulip/zulip, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin. ## Before you call it 1. Ask the organisation for a bot of the most limited type that fits. Use an incoming webhook bot when the task only posts messages 2. Authenticate with HTTP Basic, the bot's email as user and its API key as password, against https://.zulipchat.com/api/v1 3. Read `code`, not `msg`, on errors. `msg` is translated into the account's language 4. On `RATE_LIMIT_HIT` wait the seconds in `retry-after`. The default limit is 200 requests a minute per user 5. Fetch history with `GET /messages`, a `narrow` filter, an `anchor` and `num_before` or `num_after`, at most 1,000 a batch as the docs recommend ## Connect ```bash pip install zulip ``` ```bash curl -X POST https://your-org.zulipchat.com/api/v1/messages -u EMAIL_ADDRESS:API_KEY --data-urlencode type=stream --data-urlencode 'to="Denmark"' --data-urlencode topic=Castle --data-urlencode 'content=Hello' ``` Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/zulip ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | Basecamp | B | 67.9 | work.chat | https://www.anchorterminal.com/tools/basecamp.min.md | | Microsoft Teams (Microsoft Graph) | B | 62.2 | work.chat | https://www.anchorterminal.com/tools/microsoft-teams.min.md | | ClickUp | C | 60.9 | work.chat | https://www.anchorterminal.com/tools/clickup.min.md | | Slack MCP Server (official) | C | 59.7 | work.chat | https://www.anchorterminal.com/tools/slack-mcp.min.md | | Outline | C | 60.3 | same category | https://www.anchorterminal.com/tools/outline.min.md | ## Panel reviews (0, desk reviews from public material, no calls made)