Building, integrating, or customizing apps and workflows within Microsoft Teams using developer tools and APIs
Based on the details you provided, I understand that you want to create moderated online meetings using Microsoft Graph. You are exploring the use of meetingTemplateId and trying to determine if built-in, non-custom templates natively support moderated meetings, how moderators are assigned given the lack of an explicit "moderator" role in the meetingParticipants object, and whether alternative Microsoft APIs should be used if this scenario isn't directly supported.
Here is a comprehensive breakdown answering your questions based on the current Microsoft Graph implementation.
- Availability of "Moderated Meetings" in Built-In Templates
While the onlineMeeting resource includes a meetingTemplateId property, the official documentation does not describe a dedicated flow or a standard, built-in template designed specifically for creating a "moderated meeting."
As noted in the Microsoft Graph documentation, custom meeting templates allow organizations to predefine and lock specific meeting options, but utilizing these custom templates requires a Teams Premium license. If a template locks certain settings, they cannot be overwritten later via an onlineMeeting update. However, for standard/built-in templates, Microsoft Graph does not provide an out-of-the-box template that explicitly introduces a "moderator" concept.
- Role Assignment and Controlling Privileges via Microsoft Graph
For standard Microsoft Teams meetings, Microsoft Graph operates on a participant model consisting of the organizer, attendees, and specific participant roles. The meetingParticipants resource only breaks down into organizer and attendees, and the permissions are strictly defined via the meetingParticipantInfo.role property.
The officially documented and supported values for a user's role are:
-
attendee -
presenter -
producer -
coorganizer
There is no explicit "moderator" value supported or documented. Furthermore, it is important to note that you currently cannot assign the presenter or coorganizer roles to users who are not registered within Microsoft Entra ID.
If your goal is to create a controlled, "moderated-style" environment within a standard Teams meeting, the closest equivalents to a moderator are achieved by combining these parameters:
-
role: "presenter": For users allowed to present or manage aspects of the meeting. -
role: "coorganizer": For trusted users helping manage the meeting. -
allowedPresenters: "roleIsPresenter": To restrict presentation and management privileges exclusively to your designated presenters.
Example of a Controlled, "Moderated-Style" Meeting Payload:
POST https://graph.microsoft.com/v1.0/me/onlineMeetings
Content-Type: application/json
Prefer: include-unknown-enum-members
{
"startDateTime": "2026-07-15T09:00:00Z",
"endDateTime": "2026-07-15T10:00:00Z",
"subject": "Moderated-style Teams meeting",
"meetingTemplateId": "05b9ed5f-2ac3-4470-aae9-f4a0c30b1a4b",
"allowedPresenters": "roleIsPresenter",
"participants": {
"attendees": [
{
"identity": {
"user": {
"id": "USER_OBJECT_ID_1"
}
},
"upn": "******@contoso.com",
"role": "presenter"
},
{
"identity": {
"user": {
"id": "USER_OBJECT_ID_2"
}
},
"upn": "******@contoso.com",
"role": "attendee"
}
]
}
}
While this locks down the meeting tightly, it simply limits who can present and manage attendees; it does not introduce a standalone, specialized "moderator" role.
Please refer:
Create onlineMeeting
meetingParticipantInfo resource type
- Alternative APIs for Highly Structured Virtual Events
If the goal is to create a standard Teams meeting with restricted control, the closest Graph-supported approach is to configure meeting options such as allowedPresenters: "roleIsPresenter" and assign selected participants as presenter or coorganizer. This is not the same as assigning moderators, but it can cover some moderation-like scenarios.
Choose an API in Microsoft Graph to create and join online meetings
If the requirement is for a structured moderated event, such as a webinar or town hall, the better API is Microsoft Graph Virtual Events API. Webinars and town halls expose resources such as virtualEventPresenter, and are designed around organizer/presenter/attendee event roles rather than regular meeting participant roles.
Virtual events webinar API use cases
Virtual events town hall API use cases
I hope this information help.
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click ""Comment"".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.