Microsoft Teams Chat
MICROSOFT 365 · MESSAGING
Send and read chat messages as the person, not as a shared bot.
Connect Microsoft Teams Chat with Fabriq Developer
Your user consents at Microsoft Teams Chat. The credential lands in a vault your agent cannot read, and the tool list it gets back is the intersection of that user’s grant and the agent’s own scopes.
Provider names are surfaces, not vendors, and the authoritative list is the capabilities endpoint rather than any page including this one — an unknown name returns 400 with the valid list. Fabriq Developer is free to start and needs no provider paperwork. Start free or read the quickstart.
Connecting Microsoft Teams Chat in practice
Teams throttles on four independent dimensions at once — per app, per app per tenant, per resource and per user — and the one that bites is per resource: posting a message is 1 request per second per channel or per chat. On top of that a sustained rate of roughly 83 percent of the listed limit is evaluated over a longer window, so running continuously at the published number still throttles.
Scopes that draw scrutiny
ChannelMessage.Read.AllAdmin consent required for both the delegated and the application form. It reads channel messages across the tenant, which is what a retrieval agent wants and what a compliance team asks about.Chat.Read.AllApplication permission only — there is no delegated variant — and it requires admin consent. Private chat content has no user-scoped route.User.Read.AllAdmin consent for both forms; needed to resolve message authors to people, so it usually rides along with the message scopes.
Rate limits
- POST /teams/{team-id}/channels/{channel-id}/messages: 500 rps per app, 50 rps per app per tenant, 1 rps per channel, 1 rps per user.
- POST /chats/{chat-id}/messages: 200 rps per app, 20 rps per app per tenant, 1 rps per chat, 1 rps per user.
- Adding members: POST /teams/{team-id}/members and POST /chats/{chat-id}/members are 4 requests per minute per team or chat.
- Default limits for anything unlisted: GET 1,500 rps per app and 30 per app per tenant; POST, PUT and PATCH 300 and 30; DELETE 150 and 15.
- Bulk export: getAllMessages is 1,000 rps per app and 200 rps per app per tenant.
Who has to approve
The Teams message permissions all require tenant admin consent in Microsoft Entra. Separately, Microsoft documents that "Some metered APIs and services in Microsoft Graph are protected and require additional validation beyond permissions and admin consent. Before you can use these protected APIs, you must submit a request."
Worth knowing
- A request is throttled when it exceeds any one of the four dimensions, so the design target is the lowest limit your call pattern touches, not the headline per-app number.
- Since 25 August 2025 the Teams APIs are no longer metered and the model query parameter is ignored when supplied, so older integration guides that configure billing are out of date.
- Bulk provisioning is minutes, not seconds: 4 member additions per minute per team means a 200-person migration is a scheduled job.
- Posting to one busy channel is capped at 1 rps per channel no matter how much per-tenant headroom the app has, so fan-out has to be across conversations.
Checked against Microsoft Graph service-specific throttling limits (2026-09-29), Microsoft Graph permissions reference (2026-09-29), Metered APIs and services in Microsoft Graph (2026-09-29)
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
Often connected alongside
Put Microsoft Teams Chat behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.