Microsoft Teams API Authentication
How to authenticate Microsoft Teams API requests: one Bearer API key plus a connectionId. MindCloud runs the OAuth flow and refreshes tokens for you.
Every Microsoft Teams API request through MindCloud needs two things: a MindCloud API Key and a connectionId for your Microsoft Teams account. This page covers both, plus exactly how to send them, so you do not need to visit any other page to get authenticated.
Steps to authenticate
- Create a MindCloud account at app.mindcloud.co if you do not already have one.
- Generate a MindCloud API Key in API Keys. This is the Bearer token you send on every request. Keep it on your server.
- Create a Microsoft Teams connection in Connections. Microsoft Teams uses OAuth. When you create the connection, you are redirected to sign in to Microsoft Teams and approve access — MindCloud stores the resulting tokens and refreshes them automatically, so your integration never has to.
- Copy the connection’s
connectionId— you will send it on every request alongside your MindCloud API Key.
How requests are authenticated
Authentication has two layers. Your MindCloud API Key authenticates the request to MindCloud, sent as a Bearer token in the Authorization header. The connectionId selects the connected Microsoft Teams account that should run the action. MindCloud stores and refreshes the Microsoft Teams credentials behind that connection, so you never send provider tokens with your requests.
Pass connectionId in the query string for GET and DELETE actions, and in the JSON body for POST, PUT, and PATCH actions.
For example, calling List Joined Teams with an Microsoft Teams connection looks like this:
curl --request GET \
--url "https://connect.mindcloud.co/v1/universal/microsoftTeams/latest/actions/list-joined-teams" \
--header "Authorization: Bearer $MINDCLOUD_API_KEY" \
--get \
--data-urlencode "connectionId=$CONNECTION_ID"The Authorization: Bearer <your MindCloud API Key> header authenticates you to MindCloud; the connectionId tells MindCloud which Microsoft Teams account to run the action against. Missing or invalid Authorization returns 401, and a missing or mismatched connectionId returns 400.
Set up Microsoft Entra OAuth for Microsoft Teams
You need a Microsoft Entra tenant with Microsoft Teams enabled. The selected Microsoft Graph Teams endpoints use delegated work-or-school permissions; personal Microsoft accounts are not supported.
- Create an app registration
In Microsoft Entra admin center, create an app registration for MindCloud. Use a work or school tenant that has Microsoft Teams enabled.
- Add the MindCloud redirect URI
Open Authentication for the app registration and add the redirect URI shown in the MindCloud connection dialog as a Web redirect URI.
- Create a client secret
Create a client secret and copy the value immediately. Use the client ID and client secret when creating the MindCloud connection.
- Add delegated Microsoft Graph permissions
Add delegated permissions for the selected action set: User.Read, Team.ReadBasic.All, TeamMember.Read.All, Channel.ReadBasic.All, ChannelSettings.ReadWrite.All, Channel.Create, ChannelMember.Read.All, Files.Read.All, TeamsTab.Read.All, TeamsAppInstallation.ReadForTeam, ChannelMessage.Read.All, ChannelMessage.Send, Chat.ReadWrite, ChatMessage.Send, Chat.Create, and TeamsAppInstallation.ReadForChat. Request offline_access in the OAuth scope string so MindCloud can receive refresh tokens.
- Grant tenant consent when required
If your organization requires administrator approval for these delegated permissions, grant admin consent before testing the MindCloud connection.
- Connect from MindCloud
Return to MindCloud, enter the client ID and client secret, and complete OAuth sign-in with a work or school account that can access the target Teams tenant.
Keep your key safe
Keep your MindCloud API Key on your server; do not ship it in browser code, mobile apps, public repositories, or logs. Anyone with the key can call the Universal API as your MindCloud account, across every connection you have created.