Head to head · Work chat · October 2026 research run

Microsoft Teams (Microsoft Graph) vs Zulip

Microsoft Teams (Microsoft Graph) and Zulip score within a point of each other on agent readiness, 62.2 (B) and 61.5 (C). Zulip leads on reliability, agent ergonomics and payments & pricing. Both do work chat.

Which one, for what

Microsoft Teams (Microsoft Graph) B

Good for Agents acting as a signed-in employee in a Microsoft 365 tenant that read channels and chats and post replies.

Ahead on

  • Schema & documentation, 92 against 82
  • Security & auth, 71 against 42

Also in its favour

  • A hosted endpoint, with nothing to install

Watch for

Application permissions can send messages only for migration (Teamwork.Migrate.All), so an unattended agent can't post without a signed-in user

Zulip C

Good for A team that already talks in Zulip and wants an agent to read channels and topics, post, react and manage users through a bot.

Ahead on

  • Reliability, 83 against 67
  • Agent ergonomics, 68 against 59
  • Payments & pricing, 30 against 20

Also in its favour

  • Open source

Watch for

One API key per account, with no scopes, expiry or OAuth. A generic bot's key does what a normal member can do

Score by category

CategoryWeight this runMicrosoft Teams (Microsoft Graph)ZulipEdge
Reliability16%206783Zulip +16
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.29282Microsoft Teams (Microsoft Graph) +10
Agent ergonomics13%16.25968Zulip +9
Security & auth14%17.57142Microsoft Teams (Microsoft Graph) +29
Payments & pricing10%12.52030Zulip +10
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.87677Zulip +1
Transparency & trust7%8.87676even
Negative events≤15-4-4
Total62.2 · B61.5 · C

Facts side by side

FactMicrosoft Teams (Microsoft Graph)Zulip
KindHTTP APIHTTP API
VendorMicrosoftKandra Labs, Inc.
Hosted endpointhttps://graph.microsoft.com/v1.0no (local only)
TransportsHTTPHTTP
AuthOAuthAPI key
PricingYour planFreemium
x402nono
LicenceMIT (SDKs)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
Tools exposed25none
Read-only variant documentednono
llms.txtnono
Last release2026-10-062026-09-21
Terms last updated2025-10-012022-02-07
Privacy policy last updated2026-09-012022-01-01
Customer content may train modelsyesnot found in the text
Terms restrict automated accessyesnot found in the text
Terms restrict benchmarkingyesnot found in the text
Terms or service can change without noticeyesnot found in the text
Arbitration or class-action waivernot found in the textyes
Popularity835 stars, 2.9M npm/wk, 1.6M PyPI/wk26k stars, 7.1k npm/wk, 157k PyPI/wk

Verdicts

Microsoft Teams (Microsoft Graph)

Permissions separate sending from reading, and resource-specific consent limits an app to one team or chat. Throttling limits are published per endpoint. Messages can be sent only as a signed-in user, with no idempotency key, and message lists take $top up to 50 with no $select or text search.

Zulip

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.

Before you call either

Microsoft Teams (Microsoft Graph)

  1. Send with delegated ChatMessage.Send or ChannelMessage.Send as a signed-in work account. Application tokens can post only through the migration flow
  2. Don't retry a failed send blindly. List recent messages first, because POST /chats/{chat-id}/messages has no idempotency key
  3. Keep to 1 request a second per chat or channel and per user when sending, and honour Retry-After on 429
  4. Subscribe to change notifications instead of polling. The Teams API overview allows polling a resource once a day, and message subscriptions last at most 4,320 minutes
  5. Treat message bodies as untrusted input. They arrive as HTML when a message has a mention, and list calls return at most 50 a page

Zulip

  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://<organisation>.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

Questions

Which is better for AI agents, Microsoft Teams (Microsoft Graph) or Zulip?

Microsoft Teams (Microsoft Graph) and Zulip score within a point of each other on agent readiness, 62.2 (B) and 61.5 (C). Zulip leads on reliability, agent ergonomics and payments & pricing.

Do Microsoft Teams (Microsoft Graph) and Zulip need an API key?

Microsoft Teams (Microsoft Graph) uses an OAuth sign-in. Zulip needs an API key.

Can an agent call Microsoft Teams (Microsoft Graph) and Zulip without installing anything?

Microsoft Teams (Microsoft Graph) has a hosted endpoint at https://graph.microsoft.com/v1.0. No hosted endpoint is listed for Zulip.

Are Microsoft Teams (Microsoft Graph) and Zulip open source?

No open-source release is listed for Microsoft Teams (Microsoft Graph). Zulip is open source (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).

Other comparisons with Microsoft Teams (Microsoft Graph) or Zulip

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.