Documentation
Documentation
https://learn.microsoft.com/en-us/microsoftteams/platform/
APIReference
https://learn.microsoft.com/en-us/graph/teams-concept-overview
openapi: 3.1.0
info:
title: Microsoft Teams API
description: >-
Build apps and bots for Microsoft Teams via Microsoft Graph. Manage teams,
channels, messages, members, and tabs programmatically.
version: '1.0'
contact:
name: Microsoft Teams Developer Support
url: https://developer.microsoft.com/en-us/microsoft-teams
termsOfService: https://www.microsoft.com/en-us/legal/terms-of-use
externalDocs:
description: Microsoft Teams API Overview
url: https://learn.microsoft.com/en-us/graph/teams-concept-overview
servers:
- url: https://graph.microsoft.com/v1.0
description: Microsoft Graph v1.0 Production
tags:
- name: Channels
description: Manage channels within teams
- name: Members
description: Manage team membership
- name: Messages
description: Send and manage channel messages
- name: Teams
description: Manage teams
security:
- oauth2: []
paths:
/teams:
get:
operationId: listTeams
summary: Microsoft List all teams
description: List all teams in an organization.
tags:
- Teams
parameters:
- $ref: '#/components/parameters/select'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/top'
responses:
'200':
description: List of teams
content:
application/json:
schema:
$ref: '#/components/schemas/TeamCollection'
'401':
description: Unauthorized
post:
operationId: createTeam
summary: Microsoft Create a team
description: Create a new team.
tags:
- Teams
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateTeamRequest'
responses:
'202':
description: Team creation accepted
headers:
Location:
schema:
type: string
description: URL to poll for team creation status
'400':
description: Invalid request
'401':
description: Unauthorized
/teams/{teamId}:
get:
operationId: getTeam
summary: Microsoft Get a team
description: Retrieve the properties and relationships of the specified team.
tags:
- Teams
parameters:
- $ref: '#/components/parameters/teamId'
responses:
'200':
description: Team details
content:
application/json:
schema:
$ref: '#/components/schemas/Team'
'401':
description: Unauthorized
'404':
description: Team not found
patch:
operationId: updateTeam
summary: Microsoft Update a team
description: Update the properties of a team.
tags:
- Teams
parameters:
- $ref: '#/components/parameters/teamId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateTeamRequest'
responses:
'204':
description: Team updated
'400':
description: Invalid request
'401':
description: Unauthorized
'404':
description: Team not found
delete:
operationId: deleteTeam
summary: Microsoft Delete a team
description: Delete a team and its associated group.
tags:
- Teams
parameters:
- $ref: '#/components/parameters/teamId'
responses:
'204':
description: Team deleted
'401':
description: Unauthorized
'404':
description: Team not found
/teams/{teamId}/channels:
get:
operationId: listChannels
summary: Microsoft List channels
description: Retrieve the list of channels in a team.
tags:
- Channels
parameters:
- $ref: '#/components/parameters/teamId'
- $ref: '#/components/parameters/select'
- $ref: '#/components/parameters/filter'
responses:
'200':
description: List of channels
content:
application/json:
schema:
$ref: '#/components/schemas/ChannelCollection'
'401':
description: Unauthorized
post:
operationId: createChannel
summary: Microsoft Create a channel
description: Create a new channel in a team.
tags:
- Channels
parameters:
- $ref: '#/components/parameters/teamId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateChannelRequest'
responses:
'201':
description: Channel created
content:
application/json:
schema:
$ref: '#/components/schemas/Channel'
'400':
description: Invalid request
'401':
description: Unauthorized
/teams/{teamId}/channels/{channelId}:
get:
operationId: getChannel
summary: Microsoft Get a channel
description: Retrieve the properties of a channel.
tags:
- Channels
parameters:
- $ref: '#/components/parameters/teamId'
- $ref: '#/components/parameters/channelId'
responses:
'200':
description: Channel details
content:
application/json:
schema:
$ref: '#/components/schemas/Channel'
'401':
description: Unauthorized
'404':
description: Channel not found
delete:
operationId: deleteChannel
summary: Microsoft Delete a channel
description: Delete a channel in a team.
tags:
- Channels
parameters:
- $ref: '#/components/parameters/teamId'
- $ref: '#/components/parameters/channelId'
responses:
'204':
description: Channel deleted
'401':
description: Unauthorized
'404':
description: Channel not found
/teams/{teamId}/channels/{channelId}/messages:
get:
operationId: listChannelMessages
summary: Microsoft List channel messages
description: Retrieve the list of messages in a channel.
tags:
- Messages
parameters:
- $ref: '#/components/parameters/teamId'
- $ref: '#/components/parameters/channelId'
- $ref: '#/components/parameters/top'
responses:
'200':
description: List of messages
content:
application/json:
schema:
$ref: '#/components/schemas/ChatMessageCollection'
'401':
description: Unauthorized
post:
operationId: sendChannelMessage
summary: Microsoft Send a channel message
description: Send a new message to a channel.
tags:
- Messages
parameters:
- $ref: '#/components/parameters/teamId'
- $ref: '#/components/parameters/channelId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateChatMessageRequest'
responses:
'201':
description: Message sent
content:
application/json:
schema:
$ref: '#/components/schemas/ChatMessage'
'400':
description: Invalid request
'401':
description: Unauthorized
/teams/{teamId}/members:
get:
operationId: listTeamMembers
summary: Microsoft List team members
description: Get the members of a team.
tags:
- Members
parameters:
- $ref: '#/components/parameters/teamId'
responses:
'200':
description: List of team members
content:
application/json:
schema:
$ref: '#/components/schemas/MemberCollection'
'401':
description: Unauthorized
post:
operationId: addTeamMember
summary: Microsoft Add a team member
description: Add a new member to a team.
tags:
- Members
parameters:
- $ref: '#/components/parameters/teamId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AddMemberRequest'
responses:
'201':
description: Member added
content:
application/json:
schema:
$ref: '#/components/schemas/Member'
'400':
description: Invalid request
'401':
description: Unauthorized
components:
securitySchemes:
oauth2:
type: oauth2
description: OAuth 2.0 via Microsoft identity platform
flows:
authorizationCode:
authorizationUrl: https://login.microsoftonline.com/common/oauth2/v2.0/authorize
tokenUrl: https://login.microsoftonline.com/common/oauth2/v2.0/token
scopes:
Team.ReadBasic.All: Read teams
Team.Create: Create teams
Channel.ReadBasic.All: Read channels
ChannelMessage.Read.All: Read channel messages
ChannelMessage.Send: Send channel messages
TeamMember.Read.All: Read team members
parameters:
teamId:
name: teamId
in: path
required: true
description: Team unique identifier
schema:
type: string
channelId:
name: channelId
in: path
required: true
description: Channel unique identifier
schema:
type: string
select:
name: $select
in: query
description: Properties to include in the response
schema:
type: string
filter:
name: $filter
in: query
description: OData filter expression
schema:
type: string
top:
name: $top
in: query
description: Maximum number of items to return
schema:
type: integer
schemas:
TeamCollection:
type: object
properties:
'@odata.context':
type: string
value:
type: array
items:
$ref: '#/components/schemas/Team'
Team:
type: object
properties:
id:
type: string
displayName:
type: string
description:
type: string
isArchived:
type: boolean
webUrl:
type: string
visibility:
type: string
enum:
- private
- public
funSettings:
type: object
properties:
allowGiphy:
type: boolean
allowStickersAndMemes:
type: boolean
memberSettings:
type: object
properties:
allowCreateUpdateChannels:
type: boolean
allowDeleteChannels:
type: boolean
allowAddRemoveApps:
type: boolean
CreateTeamRequest:
type: object
required:
- displayName
properties:
displayName:
type: string
description:
type: string
visibility:
type: string
enum:
- private
- public
UpdateTeamRequest:
type: object
properties:
displayName:
type: string
description:
type: string
visibility:
type: string
ChannelCollection:
type: object
properties:
'@odata.context':
type: string
value:
type: array
items:
$ref: '#/components/schemas/Channel'
Channel:
type: object
properties:
id:
type: string
displayName:
type: string
description:
type: string
membershipType:
type: string
enum:
- standard
- private
- shared
email:
type: string
webUrl:
type: string
CreateChannelRequest:
type: object
required:
- displayName
properties:
displayName:
type: string
description:
type: string
membershipType:
type: string
enum:
- standard
- private
- shared
ChatMessageCollection:
type: object
properties:
'@odata.context':
type: string
value:
type: array
items:
$ref: '#/components/schemas/ChatMessage'
ChatMessage:
type: object
properties:
id:
type: string
messageType:
type: string
createdDateTime:
type: string
format: date-time
from:
type: object
properties:
user:
type: object
properties:
id:
type: string
displayName:
type: string
body:
type: object
properties:
contentType:
type: string
enum:
- text
- html
content:
type: string
importance:
type: string
enum:
- normal
- high
- urgent
CreateChatMessageRequest:
type: object
required:
- body
properties:
body:
type: object
required:
- content
properties:
contentType:
type: string
enum:
- text
- html
default: text
content:
type: string
importance:
type: string
enum:
- normal
- high
- urgent
MemberCollection:
type: object
properties:
'@odata.context':
type: string
value:
type: array
items:
$ref: '#/components/schemas/Member'
Member:
type: object
properties:
id:
type: string
displayName:
type: string
roles:
type: array
items:
type: string
userId:
type: string
email:
type: string
AddMemberRequest:
type: object
required:
- '@odata.type'
- roles
- user@odata.bind
properties:
'@odata.type':
type: string
default: '#microsoft.graph.aadUserConversationMember'
roles:
type: array
items:
type: string
user@odata.bind:
type: string
description: URL reference to the user to add