Webinar Extension API Reference
Webinar Extension API Reference
Webinar Extension API Reference
Reference
for Dynamics 365 for Marketing
(Version 1.0)
Contents
Introduction .................................................................................................................................................. 3
Base URI ........................................................................................................................................................ 3
/auth ............................................................................................................................................................. 3
get/auth/authorize ................................................................................................................................... 3
post/auth/token........................................................................................................................................ 4
/webinars ...................................................................................................................................................... 6
post /webinars .......................................................................................................................................... 6
/webinars/{webinarId} ............................................................................................................................ 13
delete/webinars/{webinarId} ................................................................................................................. 13
put /webinars/{webinarId} ..................................................................................................................... 16
/webinars/{webinarId}/registrations ...................................................................................................... 23
get /webinars/{webinarId}/registrations ................................................................................................ 23
post /webinars/{webinarId}/registrations .............................................................................................. 30
/webinars/{webinarId}/registrations/{webinarRegistrationId} .............................................................. 36
delete /webinars/{webinarId}/registrations/{webinarRegistrationId} ................................................... 36
put /webinars/{webinarId}/registrations/{webinarRegistrationId} ....................................................... 39
/webinars/{webinarId}/attendees .......................................................................................................... 45
get /webinars/{webinarId}/attendees .................................................................................................... 45
/webinars/types ...................................................................................................................................... 53
get /webinars/types ................................................................................................................................ 53
/healthcheck ............................................................................................................................................... 56
get/healthcheck ...................................................................................................................................... 56
Copyright ..................................................................................................................................................... 60
Introduction
This document provides reference information about the Webinar Extension API that you can use to
extend the Event Management feature in Dynamics 365 for Marketing to support more webinar
providers. More information: Extend Event Management to support more webinar providers
Base URI
https://{domain}/api/{version}/client/{clientId}
/auth
get/auth/authorize
Starts the OAuth 2.0 authorization flow
1. Request
2. Response
Request
Query Parameters
The grant type requested. Since the three logged OAuth flow is used this must be 'code'
• state: (string)
A unique string used to identify the request that is passed back to the redirect URI. Used
to protect against cross-site request forgery
Body
Type: object
Example:
https://{baseUrl}/api/auth/authorize?response_type=code&client_id=abcdef&redirect_uri
=https%3A%2F%2Fredirect.to%2FauthResult&state=123abc
Response
HTTP status code 200
Since this url is a webpage, there is no return value. After the user authorizes your app they will
be sent to the redirect URI. Upon successful authorization the authorization code will be passed
to the redirect URI.
Body
Type: object
Example:
https://redirect.to/auth?code=ABCDEF&state=123456
If an error occurs, including if the authorization fails, an error parameter will be passed to the
redirect URI
Body
Type: object
Example:
https://redirect.to/auth?error=some%20error%20message
post/auth/token
This endpoint is called to acquire a bearer token after the authorization code has been
obtained, or to refresh an expired access token.
• Request
• Response
Request
Body
Type: object
Example:
{
"code": "The authorization code acquired by calling the /auth/authorize
endpoint",
"refresh_token": "A valid refresh token",
"grant_type": "The grant type. This must be 'authorization_code' or
'refresh_token'. For 'authorization_code' the [code] query string parameter must be
set, for 'refresh_token' the [refresh_token] must be passed as a query parameter.",
"client_id": "The client id associated with the CRM organization",
"client_secret": "The client secret associated with the CRM organization",
"redirect_uri": "The redirect URI that was provided for the original
/auth/authorize call. If provided they must match."
}
Response
HTTP status code 200
If the call is successful, a JSON object containing an access token (access_token), token
type(token_type), account id (account_id) a refresh token(refresh_token) and the token
lifespan in minutes (expires_in) will be provided. The token type should always be 'bearer'.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"access_token": {
"type": "string",
"required": true
},
"refresh_token": {
"type": "string",
"required": true
},
"expires_in": {
"type": "integer",
"required": true
},
"token_type": {
"type": "string",
"required": true
},
"account_id": {
"type": "string",
"required": true
}
}
}
Example:
{
"access_token": "abcakd2gef",
"refresh_token": "bb7djjrie",
"expires_in": 400,
"token_type": "bearer",
"account_id": "webinarUser123"
}
/webinars
post /webinars
Creates a webinar. This API supports OAuth 2.0 for authenticating all API requests.
• Request
• Response
• Security
Request
Body
Type: json
Content:
{
"type": "object",
"properties": {
"title": {
"type": "string",
"title": "The title.",
"required": true,
"examples": [
"Webinar title"
]
},
"description": {
"type": "string",
"title": "The description.",
"required": true,
"examples": [
"Webinar description"
]
},
"startDate": {
"type": "integer",
"title": "The start UNIX epoch timestamp.",
"required": true,
"examples": [
"1522068168"
]
},
"endDate": {
"type": "integer",
"title": "The end UNIX epoch timestamp.",
"required": true,
"examples": [
"1522068168"
]
},
"timeZone": {
"type": "string",
"title": "The timezone.",
"required": true,
"examples": [
"Central Europe Standard Time"
]
},
"webinarType": {
"type": "string",
"title": "The webinar type.",
"required": true,
"examples": [
"ondemand"
]
},
"language": {
"type": "string",
"title": "The language.",
"required": true,
"examples": [
"english"
]
}
}
}
Example:
{
"title": "MyWebinar",
"description": "This is the description for MyWebinar.",
"startDate": 1522068168,
"endDate": 1522068168,
"timeZone": "Central Europe Standard Time",
"webinarType": "ondemand",
"language": "english"
}
Response
HTTP status code 201
Webinar created
Body
Type: json
Content:
{
"type": "object",
"properties": {
"id": {
"type": "string",
"title": "The webinar id.",
"required": true,
"examples": [
"webinarId"
]
},
"title": {
"type": "string",
"title": "The title.",
"required": true,
"examples": [
"Webinar title"
]
},
"description": {
"type": "string",
"title": "The description.",
"required": true,
"examples": [
"Webinar description"
]
},
"startDate": {
"type": "integer",
"title": "The start UNIX epoch timestamp.",
"required": true,
"examples": [
"1522068168"
]
},
"endDate": {
"type": "integer",
"title": "The end UNIX epoch timestamp.",
"required": true,
"examples": [
"1522068168"
]
},
"timeZone": {
"type": "string",
"title": "The timezone.",
"required": true,
"examples": [
"Central Europe Standard Time"
]
},
"webinarType": {
"type": "string",
"title": "The webinar type.",
"required": true,
"examples": [
"ondemand"
]
},
"language": {
"type": "string",
"title": "The language.",
"required": true,
"examples": [
"english"
]
},
"webinarUrl": {
"type": "string",
"title": "The webinar url.",
"required": true,
"examples": [
"https://company.com/webinar/webinarId/presentation/join"
]
},
"presentationManagerUrl": {
"type": "string",
"title": "The webinar presentation manager url.",
"required": true,
"examples": [
"https://company.com/webinar/webinarId/presentation/manage"
]
}
}
}
Example:
{
"id": "webinarId",
"title": "MyWebinar",
"description": "This is the description for MyWebinar.",
"startDate": 1522068168,
"endDate": 1522068168,
"timeZone": "Central Europe Standard Time",
"webinarType": "ondemand",
"language": "english",
"webinarUrl": "https://company.com/webinar/webinarId/presentation/join",
"presentationManagerUrl":
"https://company.com/webinar/webinarId/presentation/manage"
}
There is an issue
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
HTTP status code 404
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
HTTP status code 429
Throttled
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Security
Secured by oauth_2_0
Headers
Bad or expired token. This can happen if the user or the API revoked or expired an access token. You
should re-authenticate the user.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Re-authenticating
the user won't help here.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
/webinars/{webinarId}
delete/webinars/{webinarId}
Deletes the webinar. This API supports OAuth 2.0 for authenticating all API requests.
• Request
• Response
• Security
Request
URI Parameters
Response
HTTP status code 204
Webinar deleted
HTTP status code 404
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Throttled
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Security
Secured by oauth_2_0
Headers
Bad or expired token. This can happen if the user or the API revoked or expired an access token.
You should re-authenticate the user.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Re-authenticating
the user won't help here.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
put /webinars/{webinarId}
Updates a webinar. This API supports OAuth 2.0 for authenticating all API requests.
• Request
• Response
• Security
Request
URI Parameters
Body
Type: json
Content:
{
"type": "object",
"properties": {
"title": {
"type": "string",
"title": "The title.",
"examples": [
"Webinar title"
]
},
"description": {
"type": "string",
"title": "The description.",
"examples": [
"Webinar description"
]
},
"startDate": {
"type": "integer",
"title": "The start UNIX epoch timestamp.",
"examples": [
"1522068168"
]
},
"endDate": {
"type": "integer",
"title": "The end UNIX epoch timestamp.",
"examples": [
"1522068168"
]
},
"timeZone": {
"type": "string",
"title": "The timezone.",
"examples": [
"Central Europe Standard Time"
]
},
"webinarType": {
"type": "string",
"title": "The webinar type.",
"examples": [
"ondemand"
]
},
"language": {
"type": "string",
"title": "The language.",
"examples": [
"english"
]
}
}
}
Example:
{
"title": "MyWebinar",
"description": "This is the description for MyWebinar.",
"startDate": 1522068168,
"endDate": 1522068168,
"timeZone": "Central Europe Standard Time",
"webinarType": "ondemand",
"language": "english"
}
Response
HTTP status code 200
Webinar updated
Body
Type: json
Content:
{
"type": "object",
"properties": {
"id": {
"type": "string",
"title": "The webinar id.",
"required": true,
"examples": [
"webinarId"
]
},
"title": {
"type": "string",
"title": "The title.",
"required": true,
"examples": [
"Webinar title"
]
},
"description": {
"type": "string",
"title": "The description.",
"required": true,
"examples": [
"Webinar description"
]
},
"startDate": {
"type": "integer",
"title": "The start UNIX epoch timestamp.",
"required": true,
"examples": [
"1522068168"
]
},
"endDate": {
"type": "integer",
"title": "The end UNIX epoch timestamp.",
"required": true,
"examples": [
"1522068168"
]
},
"timeZone": {
"type": "string",
"title": "The timezone.",
"required": true,
"examples": [
"Central Europe Standard Time"
]
},
"webinarType": {
"type": "string",
"title": "The webinar type.",
"required": true,
"examples": [
"ondemand"
]
},
"language": {
"type": "string",
"title": "The language.",
"required": true,
"examples": [
"english"
]
},
"webinarUrl": {
"type": "string",
"title": "The webinar url.",
"required": true,
"examples": [
"https://company.com/webinar/webinarId/presentation/join"
]
},
"presentationManagerUrl": {
"type": "string",
"title": "The webinar presentation manager url.",
"required": true,
"examples": [
"https://company.com/webinar/webinarId/presentation/manage"
]
}
}
}
Example:
{
"id": "webinarId",
"title": "MyWebinar",
"description": "This is the description for MyWebinar.",
"startDate": 1522068168,
"endDate": 1522068168,
"timeZone": "Central Europe Standard Time",
"webinarType": "ondemand",
"language": "english",
"webinarUrl": "https://company.com/webinar/webinarId/presentation/join",
"presentationManagerUrl":
"https://company.com/webinar/webinarId/presentation/manage"
}
There is an issue
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
HTTP status code 404
Body
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
HTTP status code 429
Throttled
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Security
Secured by oauth_2_0
Headers
Bad or expired token. This can happen if the user or the API revoked or expired an access token.
You should re-authenticate the user.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Re-authenticating
the user won't help here.
Body
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
/webinars/{webinarId}/registrations
get /webinars/{webinarId}/registrations
Gets the registrations, should provide real time data. This API supports OAuth 2.0 for
authenticating all API requests.
• Request
• Response
• Security
Request
URI Parameters
Query Parameters
• from: (integer)
Example:
1522068168
• to: (integer)
Return records before the given UNIX epoch timestamp.
Example:
1522068168
Skip over a number of records by specifying an offset value for the query
Example:
20
Example:
80
Response
HTTP status code 200
Body
Type: json
Content:
{
"type": "object",
"properties": {
"meta": {
"type": "object",
"required": true,
"properties": {
"webinar": {
"type": "string",
"title": "The webinar id.",
"required": true,
"examples": [
"webinarId"
]
},
"count": {
"type": "integer",
"title": "The registration count of the current page.",
"required": true,
"examples": [
1
]
},
"total": {
"type": "integer",
"title": "The total registration count.",
"required": true,
"examples": [
1
]
},
"from": {
"type": "integer",
"title": "The start UNIX epoch timestamp.",
"required": true,
"examples": [
1522068168
]
},
"to": {
"type": "integer",
"title": "The end UNIX epoch timestamp.",
"required": true,
"examples": [
1522068168
]
},
"limit": {
"type": "integer",
"title": "The maximum number of records on the current page, comes from the
request.",
"required": true,
"examples": [
100
]
},
"offset": {
"type": "integer",
"title": "The record offset, comes from the request.",
"required": true,
"examples": [
0
]
}
}
},
"registrations": {
"type": "array",
"required": true,
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"title": "The webinar registration id.",
"required": true,
"examples": [
"webinarRegistrationId"
]
},
"firstname": {
"type": "string",
"title": "The firstname.",
"required": true,
"examples": [
"John"
]
},
"lastname": {
"type": "string",
"title": "The lastname.",
"required": true,
"examples": [
"Doe"
]
},
"email": {
"type": "string",
"title": "The e-mail address.",
"required": true,
"examples": [
"[email protected]"
]
},
"company": {
"type": "string",
"title": "The company.",
"required": true,
"examples": [
"MyCompany"
]
}
}
}
}
}
}
Example:
{
"meta": {
"webinar": "webinarId",
"count": 1,
"total": 1,
"from": 1522068168,
"to": 1522068168,
"limit": 100,
"offset": 0
},
"registrations": [
{
"id": "webinarRegistrationId",
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]",
"company": "MyCompany"
}
]
}
There is an issue
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Throttled
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Security
Secured by oauth_2_0
Headers
Bad or expired token. This can happen if the user or the API revoked or expired an access token.
You should re-authenticate the user.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Re-authenticating
the user won't help here.
Body
Type: json
Content:
{{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
post /webinars/{webinarId}/registrations
Creates a webinar registration. This API supports OAuth 2.0 for authenticating all API requests.
• Request
• Response
• Security
Request
URI Parameters
Body
Type: json
Content:
{
"type": "object",
"properties": {
"id": {
"type": "string",
"title": "The webinar registration id.",
"required": true,
"examples": [
"webinarRegistrationId"
]
},
"firstname": {
"type": "string",
"title": "The firstname.",
"required": true,
"examples": [
"John"
]
},
"lastname": {
"type": "string",
"title": "The lastname.",
"required": true,
"examples": [
"Doe"
]
},
"email": {
"type": "string",
"title": "The e-mail address.",
"required": true,
"examples": [
"[email protected]"
]
},
"company": {
"type": "string",
"title": "The company.",
"required": true,
"examples": [
"MyCompany"
]
}
}
}
Example:
{
"id": "webinarRegistrationId",
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]",
"company": "MyCompany"
}
Response
HTTP status code 201
Body
Type: json
Content:
{
"type": "object",
"properties": {
"id": {
"type": "string",
"title": "The webinar registration id.",
"required": true,
"examples": [
"webinarRegistrationId"
]
},
"firstname": {
"type": "string",
"title": "The firstname.",
"required": true,
"examples": [
"John"
]
},
"lastname": {
"type": "string",
"title": "The lastname.",
"required": true,
"examples": [
"Doe"
]
},
"email": {
"type": "string",
"title": "The e-mail address.",
"required": true,
"examples": [
"[email protected]"
]
},
"company": {
"type": "string",
"title": "The company.",
"required": true,
"examples": [
"MyCompany"
]
}
}
}
Example:
{
"id": "webinarRegistrationId",
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]",
"company": "MyCompany"
}
HTTP status code 400
There is an issue
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Body
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Throttled
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Security
Secured by oauth_2_0
Headers
Bad or expired token. This can happen if the user or the API revoked or expired an access token.
You should re-authenticate the user.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Re-authenticating
the user won't help here.
Body
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
/webinars/{webinarId}/registrations/{webinarRegistrationId}
delete /webinars/{webinarId}/registrations/{webinarRegistrationId}
Deletes the webinar registration. This API supports OAuth 2.0 for authenticating all API
requests.
• Request
• Response
• Security
Request
URI Parameters
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Response
HTTP status code 429
Throttled
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Security
Secured by oauth_2_0
Headers
Bad or expired token. This can happen if the user or the API revoked or expired an access token.
You should re-authenticate the user.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Re-authenticating
the user won't help here.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
put /webinars/{webinarId}/registrations/{webinarRegistrationId}
Updates a webinar registration. This API supports OAuth 2.0 for authenticating all API requests.
• Request
• Response
• Security
Request
URI Parameters
Body
Type: json
Content:
{
"type": "object",
"properties": {
"id": {
"type": "string",
"title": "The webinar registration id.",
"required": true,
"examples": [
"webinarRegistrationId"
]
},
"firstname": {
"type": "string",
"title": "The firstname.",
"required": true,
"examples": [
"John"
]
},
"lastname": {
"type": "string",
"title": "The lastname.",
"required": true,
"examples": [
"Doe"
]
},
"email": {
"type": "string",
"title": "The e-mail address.",
"required": true,
"examples": [
"[email protected]"
]
},
"company": {
"type": "string",
"title": "The company.",
"required": true,
"examples": [
"MyCompany"
]
}
}
}
Example:
{
"id": "webinarRegistrationId",
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]",
"company": "MyCompany"
}
Response
HTTP status code 200
Body
Type: json
Content:
{
"type": "object",
"properties": {
"id": {
"type": "string",
"title": "The webinar registration id.",
"required": true,
"examples": [
"webinarRegistrationId"
]
},
"firstname": {
"type": "string",
"title": "The firstname.",
"required": true,
"examples": [
"John"
]
},
"lastname": {
"type": "string",
"title": "The lastname.",
"required": true,
"examples": [
"Doe"
]
},
"email": {
"type": "string",
"title": "The e-mail address.",
"required": true,
"examples": [
"[email protected]"
]
},
"company": {
"type": "string",
"title": "The company.",
"required": true,
"examples": [
"MyCompany"
]
}
}
}
Example:
{
"id": "webinarRegistrationId",
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]",
"company": "MyCompany"
}
There is an issue
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
}
Example:
{
"message": "Some message"
}
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Throttled
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Security
Secured by oauth_2_0
Headers
Bad or expired token. This can happen if the user or the API revoked or expired an access token.
You should re-authenticate the user.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Re-authenticating
the user won't help here.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
/webinars/{webinarId}/attendees
get /webinars/{webinarId}/attendees
Gets the attendees, should provide real time data. This API supports OAuth 2.0 for
authenticating all API requests.
• Request
• Response
• Security
Request
URI Parameters
Query Parameters
• from: (integer)
• to: (integer)
Example:
1522068168
Skip over a number of records by specifying an offset value for the query
Example:
20
Example:
80
Response
HTTP status code 200
Body
Type: json
Content:
{
"type": "object",
"properties": {
"meta": {
"type": "object",
"required": true,
"properties": {
"webinar": {
"type": "string",
"title": "The webinar id.",
"required": true,
"examples": [
"webinarId"
]
},
"count": {
"type": "integer",
"title": "The attendee count of the current page.",
"required": true,
"examples": [
1
]
},
"total": {
"type": "integer",
"title": "The total attendee count.",
"required": true,
"examples": [
1
]
},
"from": {
"type": "integer",
"title": "The start UNIX epoch timestamp.",
"required": true,
"examples": [
1522068168
]
},
"to": {
"type": "integer",
"title": "The end UNIX epoch timestamp.",
"required": true,
"examples": [
1522068168
]
},
"limit": {
"type": "integer",
"title": "The maximum number of records on the current page, comes from the
request.",
"required": true,
"examples": [
100
]
},
"offset": {
"type": "integer",
"title": "The record offset, comes from the request.",
"required": true,
"examples": [
0
]
}
}
},
"attendees": {
"type": "array",
"required": true,
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"title": "The attendee id.",
"required": true,
"examples": [
"id"
]
},
"registration": {
"type": "string",
"title": "The webinar registration id.",
"required": true,
"examples": [
"registrationId"
]
},
"checkInTime": {
"type": "integer",
"title": "The check-in UNIX epoch timestamp.",
"required": true,
"examples": [
"1522068168"
]
},
"checkOutTime": {
"type": "integer",
"title": "The check-out UNIX epoch timestamp.",
"required": true,
"examples": [
"1522068168"
]
},
"duration": {
"type": "integer",
"title": "The duration in minutes.",
"required": true,
"examples": [
10
]
},
"numberOfCheckins": {
"type": "integer",
"title": "The number of check-ins.",
"required": true,
"examples": [
1
]
},
"numberOfInteractions": {
"type": "integer",
"title": "The number of interactions.",
"required": true,
"examples": [
1
]
}
}
}
}
}
}
Example:
{
"meta": {
"webinar": "webinarId",
"count": 1,
"total": 1,
"from": 1522068168,
"to": 1522068168,
"limit": 100,
"offset": 0
},
"attendees": [
{
"id": "attendeeId",
"registration": "webinarRegistrationId",
"checkInTime": 1522068168,
"checkOutTime": 1522068168,
"duration": 10,
"numberOfCheckins": 1,
"numberOfInteractions": 5
}
]
}
There is an issue
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Throttled
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Security
Secured by oauth_2_0
Headers
Bad or expired token. This can happen if the user or the API revoked or expired an access token.
You should re-authenticate the user.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Re-authenticating
the user won't help here.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
/webinars/types
get /webinars/types
Gets the supported webinar types. This API supports OAuth 2.0 for authenticating all API
requests.
• Response
• Security
Response
HTTP status code 200
Body
Type: json
Content:
{
"type": "object",
"properties": {
"types": {
"type": "array",
"title": "The supported webinar type collection",
"required": true,
"items": {
"type": "string",
"title": "The supported webinar type",
"default": "",
"examples": [
"type",
"otherType"
]
}
}
}
}
Example:
{
"types": [
"type",
"otherType"
]
}
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Throttled
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Security
Secured by oauth_2_0
Headers
Bad or expired token. This can happen if the user or the API revoked or expired an access token.
You should re-authenticate the user.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
HTTP status code 403
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Re-authenticating
the user won't help here.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
/healthcheck
get/healthcheck
Checks if the client account is alive and the credentials are correct. The parameter is the one
provided for OAuth
This API supports OAuth 2.0 for authenticating all API requests.
• Response
• Security
Response
HTTP status code 204
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Throttled
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Security
Secured by oauth_2_0
Headers
Bad or expired token. This can happen if the user or the API revoked or expired an access token.
You should re-authenticate the user.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Bad OAuth request (wrong consumer key, bad nonce, expired timestamp...). Re-authenticating
the user won't help here.
Body
Type: json
Content:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"required": true,
"examples": [
"message"
]
}
}
}
Example:
{
"message": "Some message"
}
Copyright
This document is provided "as-is". Information and views expressed in this document, including URL and
other internet web site references, may change without notice.
Some examples depicted herein are provided for illustration only and are fictitious. No real association
or connection is intended or should be inferred.
This document does not provide you with any legal rights to any intellectual property in any Microsoft
product. You may copy and use this document for your internal, reference purposes. This document is
confidential and proprietary to Microsoft. It is disclosed and can be used only pursuant to a non-
disclosure agreement.
Microsoft is a trademark of the Microsoft group of companies. All other trademarks are property of their
respective owners.