Edit

Share via


Virtual events webinar API use cases

Microsoft Graph virtual events webinar APIs allow you to get Teams webinar data and programmatically create, update, and cancel a Teams webinar.

For you to make the best use of the Graph virtual events webinar APIs, it’s helpful to understand the personas for the users who access the Teams webinar experience:

  • Organizers are employees (in your organization) who manage the webinar. They're the authority on schedule and participants. They configure webinar attributes such as title, theme, attendee experience, and email rules.  
  • Presenters are employees (in your organization) or guests who lead the webinar.  
  • Registrants are users (in or outside of your organization) who registered for a webinar. They can be registered, waitlisted, or rejected. They can choose to cancel their webinar registration.  
  • Attendees are registrants who joined the webinar. They need to register through a portal and answer registration questions.
  • Teams tenant administrator must authorize custom applications with appropriate permissions.

You can use the following resource types to build your webinar solution:

  • virtualEventWebinar – Used to create, get, update, publish, cancel, and list Teams webinars.
  • virtualEventRegistration – Used to create, get, cancel, and list registration records of registrants of a webinar. Provides the unique Teams webinar join URL for the registered registrant.
  • virtualEventRegistrationQuestion – Used to create, list, and delete either custom registration questions or predefined registration questions for registrants to answer when they register for a webinar.
  • virtualEventRegistrationConfiguration – Contains information about a webinar registration configuration that stores the registration portal URL of the webinar.
  • virtualEventPresenter – Used to create, get, list, update, and delete a presenter for a Teams webinar.
  • virtualEventSession – A webinar created via Microsoft Graph APIs only has one session that inherits the properties of online meetings.
  • meetingAttendanceReport – Each time a webinar ends, an attendance report is generated for the session but doesn’t include attendee data.
  • attendanceRecord – Provides webinar attendee data in the attendance report.
  • virtual event webhooks – Can receive notifications for changes to a webinar, webinar registration, session, attendance report, and so on.

Solutions you can build

The following table lists some solutions you can build by using the Teams client and Microsoft Graph webinar APIs and webhooks.

Solutions Description
Create/update/cancel Programmatically create, update, and cancel Teams webinars.
Data sync Pull Teams webinar data in a custom application (like attendees, registration questions, attendance report, and more).
Registration Host your own registration portal experience for a Teams webinar and sync the registration data to the Teams client.
Email communication Use your own email infrastructure to send out webinar-related notification emails.

Note

To build any Microsoft Graph solutions, you need to register and give the right permissions to your application. For more information, see Authentication and authorization basics.

Resource-specific consent (RSC) allows apps to request permissions scoped to a specific webinar or town hall instead of requiring global admin privileges. The RSC permissions improves security, simplifies consent flows, and enables developers to build integrations that respect organizational boundaries.

Enabled Microsoft Graph virtual events APIs and RSC permissions

RSC permission APIs Description
VirtualEvent.Read.Chat Webinar and town hall Read information for this webinar or town hall, including schedules, speakers, event settings, and webinar registrations.
OnlineMeetingArtifact.Read.Chat Attendance report and attendance record Read attendance reports and attendance records for this webinar or town hall.
VirtualEventRegistration-Anon.ReadWrite.Chat Virtual event registrations Register attendees and cancel registrations for this webinar.

Traditional authentication flow

If RSC isn't required or feasible, you can use the following traditional OAuth flows:

  • App-only token flow: Use it for backend services or automation scenarios where the app acts without user context.
  • Delegated (user) token flow: Use when actions require user context and consent.

When to use RSC vs. traditional token flow

Scenario Recommended approach
App needs access to a specific webinar or town hall only RSC
App requires tenant-wide access to multiple events App-only token flow
User-driven actions like organizer managing events Delegated token flow
Compliance or security mandates require least privilege RSC

Getting started using RSC permissions

The following steps describe how to get started with setting up your app and using RSC permissions:

  1. Register your app and define RSC permissions in the app manifest.
  2. Publish your app via the Teams developer portal or partner center.
  3. Admin grants RSC in the Teams admin center.
  4. Use the Microsoft Graph APIs for webinars and town halls with scoped permissions.

Create/update/cancel

  • Use the Create webinar API to create a draft of the event, followed by the Publish webinar API to complete the creation and make it visible to its audience.
    • The webinar created via Microsoft Graph APIs is a Teams webinar that’s visible and editable in the Teams client.
    • Just like in Teams, only the organizer can create, publish, and cancel webinar events. The create webinar API only supports delegated permissions on behalf of the organizer.
  • Like in Teams, coorganizers can update webinars. To update webinars, use the Update webinar API with delegated permissions on behalf of the coorganizer.
  • Subscribe to change notifications to get updates about any changes made to the webinar. 

Data sync

Registration

  • Use Create registration to programmatically register users to your webinar. Organizers, coorganizers, and presenters don’t need to register. Whether or not registrants have Microsoft Entra accounts affects the permissions you need to call the API.
  • CREATE registration questions (predefined or custom) attendees have to answer required questions during registration.
  • After the registrant registers for the webinar, use List sessions to get the unique joinWebURL for the webinar.

Email communication

  • You can turn off email communications to attendees when you create the webinar. In the settings property, set isAttendeeEmailNotificationEnabled to false. Emails are still send to organizers, coorganizers, and presenters (internal and external).
  • You can subscribe to change notifications to build your own customized email communication system.