GoTo Webinar 2.0 REST API (2.0.0)
We recommend you use the v2 of this API. If you are still using v1, you can access v1 documentation.
Authentication Scopes
collab:
must be used when a token is requested from the Authentication API.
Use the GoTo Webinar API to:
- Schedule webinars of one or more sessions
- Tailor your webinars with panelists, polls, questions and surveys
- Accept registrations
- Manage registrants and, once the webinar starts, attendees
- View data about historical and future webinars, registrants and attendees
Refer to GoTo Webinar product documentation to review the webinar types and product functionality.
Review call bodies and example call bodies in the API calls for alternate usage.
Note: Both userKey and organizerKey used in the APIs contain the same value
- Register for a LogMeIn GoToDeveloper account.
- Create an OAuth client and include the product(s) you plan to develop with.
- Obtain a product account as needed. Trial versions will work, but last only 30 days. We recommend a full-featured account, preferably with an Admin role.
- Request an Access Token to make API calls.
- Make your first API calls. You can use cURL, Postman, or other API interfaces to make calls.
Get all webinars for an account
Retrieves the list of webinars for an account within a given date range. Page
and size
parameters are optional. Default page
is 0 and default size
is 20.
Authorizations:
path Parameters
accountKey required | integer <int64> The key of the account |
query Parameters
fromTime required | string <date-time> Example: fromTime=2020-03-13T10:00:00Z Start of the datetime range in ISO8601 UTC format. The reserved characters like '+' have to be encoded while being passed as query parameter. |
toTime required | string <date-time> Example: toTime=2020-03-13T22:00:00Z End of the datetime range in ISO8601 UTC format. The reserved characters like '+' have to be encoded while being passed as query parameter. |
page | integer <int64> The page number to be displayed. The first page is 0. |
size | integer <int64> <= 200 The size of the page. |
Responses
Response Schema: application/json
required | object (ReportingWebinars) |
required | object (page) |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/accounts/%7BaccountKey%7D/webinars', params: { fromTime: '2020-03-13T10:00:00Z', toTime: '2020-03-13T22:00:00Z', page: 'SOME_INTEGER_VALUE', size: 'SOME_INTEGER_VALUE' }, headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "_embedded": {
- "webinars": [
- {
- "webinarKey": "string",
- "webinarID": "string",
- "organizerKey": "string",
- "accountKey": "string",
- "subject": "string",
- "description": "string",
- "times": [
- {
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z"
}
], - "timeZone": "string",
- "locale": "en_US",
- "approvalType": "string",
- "registrationUrl": "string",
- "impromptu": true,
- "isPasswordProtected": true,
- "recurrenceType": "string",
- "experienceType": "string"
}
]
}, - "page": {
- "size": 0,
- "totalElements": 0,
- "totalPages": 0,
- "number": 0
}
}
Get Webinars
Returns upcoming and past webinars for the currently authenticated organizer that are scheduled within the specified date/time range. Page
and size
parameters are optional. Default page
is 0 and default size
is 20. Maximum size
is 200.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
query Parameters
fromTime required | string <date-time> Example: fromTime=2020-03-13T10:00:00Z Start of the datetime range in ISO8601 UTC format. The reserved characters like '+' have to be encoded while being passed as query parameter. |
toTime required | string <date-time> Example: toTime=2020-03-13T22:00:00Z End of the datetime range in ISO8601 UTC format. The reserved characters like '+' have to be encoded while being passed as query parameter. |
page | integer <int64> The page number to be displayed. The first page is 0. |
size | integer <int64> <= 200 The size of the page. |
Responses
Response Schema: application/json
required | object (ReportingWebinars) |
required | object (page) |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars', params: { fromTime: '2020-03-13T10:00:00Z', toTime: '2020-03-13T22:00:00Z', page: 'SOME_INTEGER_VALUE', size: 'SOME_INTEGER_VALUE' }, headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "_embedded": {
- "webinars": [
- {
- "webinarKey": "string",
- "webinarID": "string",
- "organizerKey": "string",
- "accountKey": "string",
- "subject": "string",
- "description": "string",
- "times": [
- {
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z"
}
], - "timeZone": "string",
- "locale": "en_US",
- "approvalType": "string",
- "registrationUrl": "string",
- "impromptu": true,
- "isPasswordProtected": true,
- "recurrenceType": "string",
- "experienceType": "string"
}
]
}, - "page": {
- "size": 0,
- "totalElements": 0,
- "totalPages": 0,
- "number": 0
}
}
Create webinar
Creates a single session webinar, a sequence of webinars or a series of webinars depending on the type field in the body:
"type": "single_session"
creates a single webinar session"type": "sequence"
creates a webinar with multiple meeting times where attendees are expected to be the same for all sessions"type": "series"
creates a webinar with multiple meetings times where attendees choose only one to attend
The default, if no type is declared, is "single_session"
.
A sequence webinar requires a "recurrenceStart"
object consisting of a "startTime"
and "endTime"
key
for the first webinar of the sequence, a "recurrencePattern"
of "daily",
"weekly", "monthly", and a "recurrenceEnd"
which is the last date of the sequence (for example, 2016-12-01).
A series webinar requires a "times"
array with a discrete "startTime"
and "endTime"
for each webinar in the
series.
The call requires a webinar subject and description. The "isPasswordProtected" sets whether the webinar requires a password for attendees to join. If set to True, the organizer must go to Registration Settings at My Webinars (https://global.gotowebinar.com/webinars.tmpl) and add the password to the webinar, and send the password to the registrants. The response provides a numeric webinarKey in string format for the new webinar. Once a webinar has been created with this method,you can accept registrations.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
Request Body schema: application/json
The webinar details
subject required | string The name/subject of the webinar (128 characters maximum) |
description | string A short description of the webinar (2048 characters maximum) |
required | Array of objects (DateTimeRange) Array with startTime and endTime for webinar. Since this call creates single session webinars, the array can only contain a single pair of startTime and endTime |
timeZone | string The time zone where the webinar is taking place (must be a valid time zone ID). If this parameter is not passed, the timezone of the organizer's profile will be used |
type | string Default: "single_session" Specifies the webinar type. The default type value is 'single_session', which is used to create a single webinar session. The possible values are 'single_session', 'series', 'sequence'. If type is set to 'single_session', a single webinar session is created. If type is set to 'series', a webinar series is created. In this case 2 or more timeframes must be specified for each webinar. Example: 'times': [{'startTime': '...', 'endTime': '...'},{'startTime': '...', 'endTime': '...'},{'startTime': '...', 'endTime': '...'}. If type is set to 'sequence' a sequence of webinars is created. The times object in the body must be replaced by the 'recurrenceStart' object. Example: 'recurrenceStart': {'startTime':'2012-06-12T16:00:00Z', 'endTime': '2012-06-12T17:00:00Z' }. The 'recurrenceEnd' and 'recurrencePattern' body parameter must be specified. Example: , 'recurrenceEnd': '2012-07-10', 'recurrencePattern': 'daily'. |
locale | string Enum: "en_US" "de_DE" "es_ES" "fr_FR" "it_IT" "zh_CN" The webinar language |
isPasswordProtected | boolean Default: false A boolean flag indicating if the webinar is password protected or not. |
recordingAssetKey | string The recording asset with which the simulive webinar should be created from. In case the recordingasset was created as an online recording the simulive webinar settings, poll and surveys would be copied from the webinar whose session was recorded. |
isOndemand | boolean Default: false A boolean flag indicating if the webinar should be ondemand |
isBreakout | boolean Default: false A boolean flag indicating if the webinar should be breakout |
experienceType | string Default: "CLASSIC" Specifies the experience type. The possible values are 'CLASSIC', 'BROADCAST' and 'SIMULIVE'. |
object (WebinarEmailSettings) Describes email settings of a webinar. |
Responses
Response Schema: application/json
webinarKey required | string The unique key of the webinar. |
recurrenceKey | string The recurrence key of the webinar which is received only for Series Webinars. |
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
{- "subject": "string",
- "description": "string",
- "times": [
- {
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z"
}
], - "timeZone": "string",
- "type": "single_session",
- "locale": "en_US",
- "isPasswordProtected": false,
- "recordingAssetKey": "string",
- "isOndemand": false,
- "isBreakout": false,
- "experienceType": "CLASSIC",
- "emailSettings": {
- "confirmationEmail": {
- "enabled": true
}, - "reminderEmail": {
- "enabled": true
}, - "absenteeFollowUpEmail": {
- "enabled": true
}, - "attendeeFollowUpEmail": {
- "enabled": true,
- "includeCertificate": true
}
}
}
Response samples
- 201
{- "webinarKey": "string",
- "recurrenceKey": "string"
}
Get All Insession Webinars
Returns all insession webinars for the currently authenticated organizer that are scheduled within the specified date/time range. All inession webinars are returned in case no date/time range is provided.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
query Parameters
fromTime | string <date-time> Example: fromTime=2020-03-13T10:00:00Z Start of the datetime range in ISO8601 UTC format. The reserved characters like '+' have to be encoded while being passed as query parameter. |
toTime required | string <date-time> Example: toTime=2020-03-13T22:00:00Z End of the datetime range in ISO8601 UTC format. The reserved characters like '+' have to be encoded while being passed as query parameter. |
Responses
Response Schema: application/json
numberOfRegistrants required | integer <int32> The number of registrants at the webinar |
required | Array of objects (DateTimeRange) Array with startTime and endTime for the webinar sessions |
description required | string A short description of the webinar |
subject required | string The webinar subject |
inSession required | boolean Indicates whether there is a webinar session currently in progress |
organizerKey required | integer <int64> The key of the webinar organizer |
webinarKey required | integer <int64> The unique key of the webinar |
webinarID required | string The 9-digit webinar ID |
timeZone required | string The timezone where the webinar is taking place |
registrationUrl required | string The URL the webinar invitees can use to register |
experienceType required | string Specifies the experience type. The possible values are 'classic', 'broadcast' and 'simulive'. |
required | Array of objects (CoorganizerDetails) Array with email address and organizerKey of Coorganizers |
organizerEmail required | string The email address of the organizer |
organizerName required | string The name of the webinar organizer |
impromptu required | boolean A boolean flag indicating if the webinar type is impromptu |
isOndemand required | boolean Default: false A boolean flag indicating if the webinar should be ondemand |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/insessionWebinars', params: {fromTime: '2020-03-13T10:00:00Z', toTime: '2020-03-13T22:00:00Z'}, headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
[- {
- "numberOfRegistrants": 0,
- "times": [
- {
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z"
}
], - "description": "string",
- "subject": "string",
- "inSession": true,
- "organizerKey": 0,
- "webinarKey": 0,
- "webinarID": "string",
- "timeZone": "string",
- "registrationUrl": "string",
- "experienceType": "string",
- "coorganizers": [
- {
- "email": "string",
- "organizerKey": 0
}
], - "organizerEmail": "string",
- "organizerName": "string",
- "impromptu": true,
- "isOndemand": false
}
]
Get webinar
Retrieve information on a specific webinar. If the type of the webinar is 'sequence', a sequence of future times will be provided. Webinars of type 'series' are treated the same as normal webinars - each session in the webinar series has a different webinarKey. If an organizer cancels a webinar, then a request to get that webinar would return a '404 Not Found' error.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
Responses
Response Schema: application/json
webinarKey required | integer <int64> The unique key of the webinar |
webinarID required | string The 9-digit webinar ID |
subject required | string The webinar subject. |
description required | string A short description of the webinar |
organizerKey required | integer <int64> The key of the webinar organizer |
organizerEmail required | string The email of the webinar organizer |
organizerName required | string The name of the webinar organizer |
required | Array of objects (DateTimeRange) Array with startTime and endTime for the webinar sessions |
registrationUrl required | string The URL the webinar invitees can use to register |
inSession required | boolean Indicates whether there is a webinar session currently in progress |
impromptu required | boolean A boolean flag indicating if the webinar type is impromptu |
type required | string Specifies the recurrence type. The possible values are 'single_session', 'series' and 'sequence'. |
timeZone required | string The timezone where the webinar is taking place |
numberOfRegistrants required | integer <int32> The number of registrants at the webinar |
registrationLimit required | integer <int32> The maximum number of registrants a webinar can have |
locale required | string Enum: "en_US" "de_DE" "es_ES" "fr_FR" "it_IT" "zh_CN" The webinar language |
accountKey required | string The key of the account |
recurrencePeriod required | string Specifies the recurrence type. The possible values are 'single_session', 'series' and 'sequence'. |
experienceType required | string Specifies the experience type. The possible values are 'classic', 'broadcast' and 'simulive'. |
isPasswordProtected required | boolean A boolean flag indicating if the webinar is password protected |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "webinarKey": 0,
- "webinarID": "string",
- "subject": "string",
- "description": "string",
- "organizerKey": 0,
- "organizerEmail": "string",
- "organizerName": "string",
- "times": [
- {
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z"
}
], - "registrationUrl": "string",
- "inSession": true,
- "impromptu": true,
- "type": "string",
- "timeZone": "string",
- "numberOfRegistrants": 0,
- "registrationLimit": 0,
- "locale": "en_US",
- "accountKey": "string",
- "recurrencePeriod": "string",
- "experienceType": "string",
- "isPasswordProtected": true
}
Update webinar
Updates a webinar. The call requires at least one of the parameters in the request body. The request completely replaces the existing session, series, or sequence and so must include the full definition of each as for the Create call. Set notifyParticipants=true to send update emails to registrants.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
query Parameters
notifyParticipants | boolean Defines whether to send notifications to participants |
Request Body schema: application/json
The webinar details
subject | string The name/subject of the webinar (128 characters maximum) |
description | string A description of the webinar (2048 characters maximum) |
Array of objects (DateTimeRange) Array with start and end time(s) for webinar | |
timeZone | string The time zone where the webinar is taking place (must be a valid time zone ID). If this parameter is not passed, the timezone of the organizer's profile will be used |
locale | string Enum: "en_US" "de_DE" "es_ES" "fr_FR" "it_IT" "zh_CN" The webinar language |
object (WebinarEmailSettings) Describes email settings of a webinar. |
Responses
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
{- "subject": "string",
- "description": "string",
- "times": [
- {
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z"
}
], - "timeZone": "string",
- "locale": "en_US",
- "emailSettings": {
- "confirmationEmail": {
- "enabled": true
}, - "reminderEmail": {
- "enabled": true
}, - "absenteeFollowUpEmail": {
- "enabled": true
}, - "attendeeFollowUpEmail": {
- "enabled": true,
- "includeCertificate": true
}
}
}
Cancel webinar
Cancels a specific webinar. If the webinar is a series or sequence, this call deletes all scheduled sessions, set deleteAll=false in the request to delete specific session of a series webinar. To send cancellation emails to registrants set sendCancellationEmails=true in the request. When the cancellation emails are sent, the default generated message is used in the cancellation email body.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
query Parameters
sendCancellationEmails | boolean Indicates whether cancellation notice emails should be sent. The default value is false |
deleteAll | boolean Specifies whether all scheduled sessions should be deleted if the webinar is part of a series. The default value is true. |
Responses
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'DELETE', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D', params: {sendCancellationEmails: 'SOME_BOOLEAN_VALUE', deleteAll: 'SOME_BOOLEAN_VALUE'}, headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Get attendees for all webinar sessions
Returns all attendees for all sessions of the specified webinar.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
query Parameters
page | integer <int64> The page number to be displayed. The first page is 0. |
size | integer <int64> <= 200 The size of the page. |
Responses
Response Schema: application/json
required | object (ReportingAttendees) |
required | object (page) |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/attendees', params: {page: 'SOME_INTEGER_VALUE', size: 'SOME_INTEGER_VALUE'}, headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "_embedded": {
- "attendeeParticipationResponses": [
- {
- "registrantKey": 0,
- "sessionKey": 0,
- "email": "string",
- "attendanceTimeInSeconds": 0,
- "attendance": [
- {
- "joinTime": "2019-08-24T14:15:22Z",
- "leaveTime": "2019-08-24T14:15:22Z"
}
], - "firstName": "string",
- "lastName": "string"
}
]
}, - "page": {
- "size": 0,
- "totalElements": 0,
- "totalPages": 0,
- "number": 0
}
}
Get webinar meeting times
Retrieves the meeting times for a webinar.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
Responses
Response Schema: application/json
startTime required | string <date-time> The starting time of an interval, e.g. 2020-03-13T10:00:00Z |
endTime required | string <date-time> The ending time of an interval, e.g. 2020-03-13T22:00:00Z |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/meetingtimes', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
[- {
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z"
}
]
Get audio information
Retrieves the audio/conferencing information for a specific webinar.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
Responses
Response Schema: application/json
type required | string (AudioType) Enum: "PSTN" "VOIP" "Hybrid" "Private" How to connect to the webinar's audio conference |
object The conference call numbers and access codes per country. This will be returned only, if 'type' is not set to 'Private'. | |
object (PrivateInfo) Phone numbers for an own conference call service. |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/audio', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "type": "PSTN",
- "confCallNumbers": {
- "property1": {
- "accessCodes": {
- "organizer": "string",
- "panelist": "string",
- "attendee": "string"
}, - "toll": "string",
- "tollFree": "string"
}, - "property2": {
- "accessCodes": {
- "organizer": "string",
- "panelist": "string",
- "attendee": "string"
}, - "toll": "string",
- "tollFree": "string"
}
}, - "privateInfo": {
- "attendee": "string",
- "organizer": "string",
- "panelist": "string"
}
}
Update audio information
Updates the audio/conferencing settings for a specific webinar
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
query Parameters
notifyParticipants | boolean Defines whether to send notifications to participants |
Request Body schema: application/json
The audio/conferencing settings
type required | string (AudioType) Enum: "PSTN" "VOIP" "Hybrid" "Private" How to connect to the webinar's audio conference |
object (PstnInfoUpdate) Defines the audio/conferencing settings for the specified webinar. It required to pass 'tollFreeCountries' or 'tollCountries' or both. | |
object (PrivateInfoUpdate) Defines the audio data for an own conferencing system |
Responses
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
{- "type": "PSTN",
- "pstnInfo": {
- "tollFreeCountries": [
- "AE"
], - "tollCountries": [
- "AT"
]
}, - "privateInfo": {
- "attendee": "string",
- "organizer": "string",
- "panelist": "string"
}
}
Get performance for all webinar sessions
Gets performance details for all sessions of a specific webinar.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
Responses
Response Schema: application/json
additional property | object (SessionPerformance) Describes performance details for webinar sessions |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/performance', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "property1": {
- "sessionInfo": {
- "webinarName": "string",
- "webinarId": "string",
- "sessionKey": "string",
- "timeZone": "string",
- "experienceType": "CLASSIC",
- "recurrencePeriod": "string",
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z",
- "registrationEmailOpenedCount": "string",
- "registrationLinkClickedCount": "string"
}, - "attendance": {
- "registrantCount": 0,
- "percentageAttendance": 0.1,
- "averageInterestRating": 0.1,
- "averageAttentiveness": 0.1,
- "averageAttendanceTimeSeconds": 0.1
}, - "pollsAndSurveys": {
- "pollCount": 0,
- "surveyCount": 0.1,
- "questionsAsked": 0,
- "percentagePollsCompleted": 0.1,
- "percentageSurveysCompleted": 0.1
}
}, - "property2": {
- "sessionInfo": {
- "webinarName": "string",
- "webinarId": "string",
- "sessionKey": "string",
- "timeZone": "string",
- "experienceType": "CLASSIC",
- "recurrencePeriod": "string",
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z",
- "registrationEmailOpenedCount": "string",
- "registrationLinkClickedCount": "string"
}, - "attendance": {
- "registrantCount": 0,
- "percentageAttendance": 0.1,
- "averageInterestRating": 0.1,
- "averageAttentiveness": 0.1,
- "averageAttendanceTimeSeconds": 0.1
}, - "pollsAndSurveys": {
- "pollCount": 0,
- "surveyCount": 0.1,
- "questionsAsked": 0,
- "percentagePollsCompleted": 0.1,
- "percentageSurveysCompleted": 0.1
}
}
}
Webinar start url
Retrieves a URL that can be used to start a webinar. When this URL is opened in a web browser, the GoTo Webinar client will be downloaded, launched and the webinar will start after the organizer logs in with its credentials.
Authorizations:
path Parameters
webinarKey required | integer <int64> The key of the webinar |
Responses
Response Schema: application/json
startUrl required | string The URL that can be used to start a webinar |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/webinars/%7BwebinarKey%7D/startUrl', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "startUrl": "string"
}
Copy a webinar
Copy webinar is created with new webinar key, based on source webinar key provided in URL. Only the organizer and co-organizer of given webinar can copy a webinar.
Example Interaction with curl
Below is the minimum request to make a request, default type is single_session.
curl --request PUT 'https://api.getgo.com/G2W/rest/v2/webinars/{webinarKey}/copy' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"subject": "My Webinar",
"times": [
{
"startTime": "2021-02-20T07:30:00.000Z",
"endTime": "2021-02-20T07:40:00.000Z"
}
]
}'
Below is a request for when the parent webinar is SIMULIVE
curl --request PUT 'https://api.getgo.com/G2W/rest/v2/webinars/{webinarKey}/copy' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"subject": "My Webinar",
"recordingAssetKey": "string",
"isOndemand": true,
"type": "single_session",
"times": [
{
"startTime": "2021-10-22T07:30:00.000Z",
"endTime": "2021-10-22T08:30:00.000Z"
}
]
}'
Below request is when the parent webinar is CLASSIC or BROADCAST.
curl --request PUT 'https://api.getgo.com/G2W/rest/v2/webinars/{webinarKey}/copy' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"subject": "My Webinar",
"times": [
{
"startTime": "2021-02-20T07:30:00.000Z",
"endTime": "2021-02-20T07:40:00.000Z"
}
],
"emailSettings": {
"confirmationEmail": {
"enabled": true
},
"reminderEmail": {
"enabled": true
},
"absenteeFollowUpEmail": {
"enabled": true
},
"attendeeFollowUpEmail": {
"enabled": true,
"includeCertificate": true
}
}
}'
Authorizations:
path Parameters
webinarKey required | integer <int64> The key of source webinar |
Request Body schema: application/json
Provide a webinar details to be copied
subject | string The name/subject of the webinar (128 characters maximum) |
description | string A description of the webinar (2048 characters maximum) |
type | string Default: "single_session" Specifies the webinar type. The default type value is 'single_session', which is used to create a single webinar session. The possible values are 'single_session', 'series' and 'sequence'. If type is set to 'single_session', a single webinar session is created. If type is set to 'series', a webinar series is created. In this case 2 or more timeframes must be specified for each webinar. Example: 'times': [{'startTime': '...', 'endTime':'...'}, {'startTime': '...', 'endTime': '...'},{'startTime': '...','endTime': '...'}]. If type is set to 'sequence', a sequence of webinars is created. In this case 2 or more timeframes must be specified for each webinar. If given webinar is 'single_session', we can create 'sequence' or 'series' webinar, in this case 2 or more timeframes must be specified for each webinar (same example as above). If given webinar is 'series', we can create 'single_session' or 'sequence' webinar with 2 or more timeframes must be specified. If given webinar is simulive webinar 'sequence' type is not supported. |
recordingAssetKey | string The recording asset with from the simulive webinar should be created from. In case the recordingasset was created as an online recording the simulive webinar settings, poll and surveys would be copied from the webinar whose session was recorded. We can get recordingasset from RecordingAssets |
isOndemand | boolean Default: false A boolean flag indicating if the webinar should be ondemand |
locale | string Enum: "en_US" "de_DE" "es_ES" "fr_FR" "it_IT" "zh_CN" The webinar language |
object (WebinarEmailSettings) Describes email settings of a webinar. | |
Array of objects (DateTimeRange) Array with start and end time(s) for webinar | |
timeZone | string The time zone where the webinar is taking place (must be a valid time zone ID). If this parameter is not passed, the timezone of the organizer's profile will be used |
Responses
Response Schema: application/json
webinarKey required | string The unique key of the webinar. |
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
{- "subject": "string",
- "description": "string",
- "type": "single_session",
- "recordingAssetKey": "string",
- "isOndemand": false,
- "locale": "en_US",
- "emailSettings": {
- "confirmationEmail": {
- "enabled": true
}, - "reminderEmail": {
- "enabled": true
}, - "absenteeFollowUpEmail": {
- "enabled": true
}, - "attendeeFollowUpEmail": {
- "enabled": true,
- "includeCertificate": true
}
}, - "times": [
- {
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z"
}
], - "timeZone": "string"
}
Response samples
- 201
{- "webinarKey": "string"
}
Get all the recording assets associated with the webinarKey
Get all the recording assets associated with online recordings of the webinarKey.
Example Interaction with curl
The default request is represented below.
By default, you will get the mp4DownloadUrl
in the response and transcriptUrl
if it exists.
The recordingShareUrl
and webinarKey
fields will be included by default.
curl --request GET 'https://api.getgo.com/G2W/rest/v2/webinars/{webinarKey}/recordingAssets?page={page}&size={size}' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'Content-Type: application/json' \
Authorizations:
path Parameters
webinarKey required | integer <int64> The key of the webinar |
query Parameters
page | integer <int64> The page number to be displayed. The first page is 0. |
limit | integer <int64> <= 200 The size of the page. |
Responses
Response Schema: application/json
required | Array of objects (Asset) |
total required | integer <int32> The total elements |
page required | integer <int32> The current page number. The first page is 0 |
pageSize required | integer <int32> The page size |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/webinars/%7BwebinarKey%7D/recordingAssets', params: {page: 'SOME_INTEGER_VALUE', limit: 'SOME_INTEGER_VALUE'}, headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "data": [
- {
- "name": "string",
- "recordingAssetKey": "string",
- "productName": "string",
- "createTime": "2019-08-24T14:15:22Z",
- "creatorKey": "string",
- "accountKey": "string",
- "totalReferenceCount": 0,
- "mp4DownloadUrl": "string",
- "transcriptDownloadUrl": "string",
- "recordingShareUrl": "string",
- "webinarKey": "string"
}
], - "total": 0,
- "page": 0,
- "pageSize": 0
}
Get co-organizers
Returns the co-organizers for the specified webinar. The original organizer who created the webinar is filtered out of the list. If the webinar has no co-organizers, an empty array is returned. Co-organizers that do not have a GoTo Webinar account are returned as external co-organizers. For those organizers no surname is returned.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
Responses
Response Schema: application/json
joinLink required | string The co-organizer's join link |
email required | string The co-organizer's email address |
memberKey required | string The co-organizer's organizer key. A new member key is created for external co-organizers |
external required | boolean If the co-organizer has no GoTo Webinar account, this value is set to 'true' |
surname required | string The co-organizer's surname. For external co-organizers this parameter is not returned |
givenName required | string The co-organizer's given name |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/coorganizers', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
[- {
- "joinLink": "string",
- "email": "string",
- "memberKey": "string",
- "external": true,
- "surname": "string",
- "givenName": "string"
}
]
Create co-organizers
Creates co-organizers for the specified webinar. For co-organizers that have a GoTo Webinar account you have to set the parameter 'external' to 'false'. In this case you have to pass the parameter 'organizerKey' only. For co-organizers that have no GoTo Webinar account you have to set the parameter 'external' to 'true'. In this case you have to pass the parameters 'givenName' and 'email'. Since there is no parameter for 'surname' you should pass first and last name to the parameter 'givenName'.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
Request Body schema: application/json
The co-organizer details
external required | boolean If the co-organizer has no GoTo Webinar account, this value has to be set to 'true' |
organizerKey | string The co-organizer's organizer key. This parameter has to be passed only, if 'external' is set to 'false' |
givenName | string The co-organizer's given name. This parameter has to be passed only, if 'external' is set to 'true' |
string The co-organizer's email address. This parameter has to be passed only, if 'external' is set to 'true' |
Responses
Response Schema: application/json
joinLink required | string The co-organizer's join link |
email required | string The co-organizer's email address |
memberKey required | string The co-organizer's organizer key. A new member key is created for external co-organizers |
external required | boolean If the co-organizer has no GoTo Webinar account, this value is set to 'true' |
surname required | string The co-organizer's surname. For external co-organizers this parameter is not returned |
givenName required | string The co-organizer's given name |
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
[- {
- "external": true,
- "organizerKey": "string",
- "givenName": "string",
- "email": "string"
}
]
Response samples
- 201
[- {
- "joinLink": "string",
- "email": "string",
- "memberKey": "string",
- "external": true,
- "surname": "string",
- "givenName": "string"
}
]
Delete co-organizer
Deletes an internal co-organizer specified by the coorganizerKey (memberKey).
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
coorganizerKey required | integer <int64> The key of the internal or external co-organizer (memberKey) |
query Parameters
external | boolean By default only internal co-organizers (with a GoTo Webinar account) can be deleted. If you want to use this call for external co-organizers you have to set this parameter to 'true'. |
Responses
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'DELETE', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/coorganizers/%7BcoorganizerKey%7D', params: {external: 'SOME_BOOLEAN_VALUE'}, headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Resend invitation
Resends an invitation email to the specified co-organizer
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
coorganizerKey required | integer <int64> The key of the internal or external co-organizer (memberKey) |
query Parameters
external | boolean By default only internal co-organizers (with a GoTo Webinar account) will retrieve the resent invitation email. If you want to use this call for external co-organizers you have to set this parameter to 'true'. |
Responses
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'POST', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/coorganizers/%7BcoorganizerKey%7D/resendInvitation', params: {external: 'SOME_BOOLEAN_VALUE'}, headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Get webinar panelists
Retrieves all the panelists for a specific webinar.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
Responses
Response Schema: application/json
joinLink required | string The co-organizer's join link |
lastName required | string Deprecated DEPRECATED. The fields 'firstName' and 'lastName' are replaced by the field 'name' |
email required | string The panelist's email address |
name required | string The panelist's name |
panelistId required | integer <int64> The panelist's ID |
firstName required | string Deprecated DEPRECATED. The fields 'firstName' and 'lastName' are replaced by the field 'name' |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
[- {
- "joinLink": "string",
- "lastName": "string",
- "email": "string",
- "name": "string",
- "panelistId": 0,
- "firstName": "string"
}
]
Create Panelists
Create panelists for a specified webinar
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
Request Body schema: application/json
Array of panelists
email required | string The panelist's email address |
name required | string The panelist's name |
Responses
Response Schema: application/json
name required | string The panelist's name |
email required | string The panelist's email address |
joinLink required | string The panelist's join link |
panelistKey required | string The panelist's key |
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
[- {
- "email": "string",
- "name": "string"
}
]
Response samples
- 201
[- {
- "name": "string",
- "email": "string",
- "joinLink": "string",
- "panelistKey": "string"
}
]
Resend panelist invitation
Resend the panelist invitation email.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
panelistKey required | integer <int64> The key of the webinar panelist |
Responses
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'POST', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists/%7BpanelistKey%7D/resendInvitation', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Delete webinar panelist
Removes a webinar panelist.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
panelistKey required | integer <int64> The key of the webinar panelist |
Responses
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'DELETE', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists/%7BpanelistKey%7D', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Create registrant
Register an attendee for a scheduled webinar. The response contains the registrantKey and join URL for the registrant. An email will be sent to the registrant unless the organizer turns off the confirmation email setting from the GoTo Webinar website. Please note that you must provide all required fields including custom fields defined during the webinar creation. Use the API call 'Get registration fields' to get a list of all fields, if they are required, and their possible values. At this time there are two versions of the 'Create Registrant' call. The first version only accepts firstName, lastName, and email and ignores all other fields. If you have custom fields or want to capture additional information this version won't work for you. The second version allows you to pass all required and optional fields, including custom fields defined when creating the webinar. To use the second version you must pass the Accept header value as 'application/json' instead of 'application/vnd.citrix.g2wapi-v1.1+json.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
query Parameters
resendConfirmation | boolean Indicates whether the confirmation email should be resent when a registrant is re-registered. The default value is false. |
header Parameters
Accept | string Set to 'application/json' to make a registration using fields (custom or default) additional to the basic ones or set it to 'application/vnd.citrix.g2wapi-v1.1+json' for just basic fields(firstName, lastName, and email). |
Request Body schema: application/json
The registrant details. To get all possible values run the API call 'Get registration fields' which is also part of this documentation.
firstName required | string The registrant's first name |
lastName required | string The registrant's last name |
email required | string The registrant's email address |
source | string The source that led to the registration. This can be any string like 'Newsletter 123' or 'Marketing campaign ABC' |
address | string The registrant's address |
city | string The registrant's city |
state | string The registrant's state (US only) |
zipCode | string The registrant's zip (post) code |
country | string The registrant's country |
phone | string The registrant's phone |
organization | string The registrant's organization |
jobTitle | string The registrant's job title |
questionsAndComments | string Any questions or comments the registrant made at the time of registration |
industry | string The type of industry the registrant's organization belongs to |
numberOfEmployees | string The size in employees of the registrant's organization |
purchasingTimeFrame | string The time frame within which the product will be purchased |
purchasingRole | string The registrant's role in purchasing the product |
Array of objects (RegistrantQAResponse) Set the answers of all questions |
Responses
Response Schema: application/json
registrantKey required | integer <int64> The registrant's key |
joinUrl required | string The URL the registrant will use to join the webinar. |
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
{- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "source": "string",
- "address": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "country": "string",
- "phone": "string",
- "organization": "string",
- "jobTitle": "string",
- "questionsAndComments": "string",
- "industry": "string",
- "numberOfEmployees": "string",
- "purchasingTimeFrame": "string",
- "purchasingRole": "string",
- "responses": [
- {
- "questionKey": 0,
- "responseText": "string",
- "answerKey": 0
}
]
}
Response samples
- 201
{- "registrantKey": 0,
- "joinUrl": "string"
}
Get registrants
Retrieve registration details for all registrants of a specific webinar. Registrant details will not include all fields captured when creating the registrant. To see all data, use the API call 'Get Registrant'. Registrants can have one of the following states; WAITING - registrant registered and is awaiting approval (where organizer has required approval), APPROVED - registrant registered and is approved, and DENIED - registrant registered and was denied. We have pagination support for this API now. When you pass the page or limit parameter the response will follow RegistrantPaginatedResponse schema but without these params response will be in RegistrantArray schema as before
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
query Parameters
page | integer <int64> The page number to be displayed. The first page is 0. |
limit | integer <int64> <= 200 The size of the page. |
Responses
Response Schema: application/json
lastName required | string The registrant's last name |
email required | string The registrant's email address |
firstName required | string The registrant's first name |
registrantKey required | integer <int64> The registrant's key |
registrationDate required | string <date-time> The registration date and time |
status required | string Enum: "APPROVED" "DENIED" "WAITING" The registration status |
joinUrl required | string The URL the registrant will use to join the webinar |
timeZone required | string The time zone where the webinar will take place |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/registrants', params: {page: 'SOME_INTEGER_VALUE', limit: 'SOME_INTEGER_VALUE'}, headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
[ ]
Delete registrant
Removes a webinar registrant from current registrations for the specified webinar. The webinar must be a scheduled, future webinar.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
registrantKey required | integer <int64> The key of the registrant |
Responses
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'DELETE', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/registrants/%7BregistrantKey%7D', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Get registrant
Retrieve registration details for a specific registrant.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
registrantKey required | integer <int64> The key of the registrant |
Responses
Response Schema: application/json
lastName required | string The registrant's last name |
email required | string The registrant's email address |
firstName required | string The registrant's first name |
registrantKey required | integer <int64> The registrant's key |
registrationDate required | string <date-time> The registration date and time |
source | string The source that led to the registration. This can be any string like 'Newsletter 123' or 'Marketing campaign ABC' |
status required | string Enum: "APPROVED" "DENIED" "WAITING" The registration status |
joinUrl required | string The URL the registrant will use to join the webinar |
timeZone required | string The time zone where the webinar will take place |
phone | string The registrant's phone |
state | string The registrant's state (US only) |
city | string The registrant's city |
organization | string The registrant's organization |
zipCode | string The registrant's zip (post) code |
numberOfEmployees | string The size in employees of the registrant's organization |
industry | string The type of industry the registrant's organization belongs to |
jobTitle | string The registrant's job title |
purchasingRole | string The registrant's role in purchasing the product |
implementationTimeFrame | string The time frame within which the product will be purchased |
purchasingTimeFrame | string The time frame within which the product will be purchased |
questionsAndComments | string Any questions or comments the registrant made at the time of registration |
employeeCount | string The size in employees of the registrant's organization |
country | string The registrant's country |
address | string The registrant's address |
type | string Enum: "LATE" "REGULAR" The type is REGULAR for 'One session' and 'Sequence' webinars. The type LATE is for registrants registering for past webinars. For webinar series this parameter is not passed |
unsubscribed | boolean Indicates whether the registrant opted-out from receiving other emails from this webinar's organizer |
Array of objects (CustomAnswers) Responses to custom questions |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/registrants/%7BregistrantKey%7D', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "lastName": "string",
- "email": "string",
- "firstName": "string",
- "registrantKey": 0,
- "registrationDate": "2019-08-24T14:15:22Z",
- "source": "string",
- "status": "APPROVED",
- "joinUrl": "string",
- "timeZone": "string",
- "phone": "string",
- "state": "string",
- "city": "string",
- "organization": "string",
- "zipCode": "string",
- "numberOfEmployees": "string",
- "industry": "string",
- "jobTitle": "string",
- "purchasingRole": "string",
- "implementationTimeFrame": "string",
- "purchasingTimeFrame": "string",
- "questionsAndComments": "string",
- "employeeCount": "string",
- "country": "string",
- "address": "string",
- "type": "LATE",
- "unsubscribed": true,
- "responses": [
- {
- "answer": "string",
- "question": "string"
}
]
}
Get registration fields
Retrieve required, optional registration, and custom questions for a specified webinar.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
Responses
Response Schema: application/json
required | Array of objects (RegistrationQuestion) Custom fields created by the organizer for the webinar registration form |
required | Array of objects (RegistrationField) The default fields the organizer has selected for the webinar registration form |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/registrants/fields', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "questions": [
- {
- "questionKey": 0,
- "question": "string",
- "required": true,
- "type": "multipleChoice",
- "maxSize": 0,
- "answers": [
- {
- "answer": "string",
- "answerKey": 0
}
]
}
], - "fields": [
- {
- "field": "string",
- "answers": [
- "string"
], - "required": true,
- "maxSize": 0
}
]
}
Get organizer sessions
Retrieve all completed sessions of all the webinars of a given organizer.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
query Parameters
fromTime required | string <date-time> Example: fromTime=2020-03-13T10:00:00Z Start of the datetime range in ISO8601 UTC format. The reserved characters like '+' have to be encoded while being passed as query parameter. |
toTime required | string <date-time> Example: toTime=2020-03-13T22:00:00Z End of the datetime range in ISO8601 UTC format. The reserved characters like '+' have to be encoded while being passed as query parameter. |
page | integer <int64> The page number to be displayed. The first page is 0. |
size | integer <int64> <= 200 The size of the page. |
Responses
Response Schema: application/json
required | object (ReportingSessions) |
required | object (page) |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/sessions', params: { fromTime: '2020-03-13T10:00:00Z', toTime: '2020-03-13T22:00:00Z', page: 'SOME_INTEGER_VALUE', size: 'SOME_INTEGER_VALUE' }, headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "_embedded": {
- "sessionInfoResources": [
- {
- "sessionKey": "string",
- "webinarKey": "string",
- "webinarName": "string",
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z",
- "registrantsAttended": 0,
- "registrantCount": 0,
- "accountKey": "string",
- "creatingOrganizerKey": "string",
- "creatingOrganizerName": "string",
- "startingOrganizerKey": "string",
- "startingOrganizerName": "string",
- "totalPollCount": 0,
- "timeZone": "string",
- "experienceType": "string",
- "webinarID": "string",
- "webinarType": 0,
- "numRegLinkClicks": 0,
- "numOpenedInvitations": 0,
- "includeCertificate": true,
- "followupEmailTriggered": true
}
]
}, - "page": {
- "size": 0,
- "totalElements": 0,
- "totalPages": 0,
- "number": 0
}
}
Get webinar sessions
Retrieves details for all past sessions of a specific webinar.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
query Parameters
page | integer <int64> The page number to be displayed. The first page is 0. |
size | integer <int64> <= 200 The size of the page. |
Responses
Response Schema: application/json
required | object (ReportingSessions) |
required | object (page) |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/sessions', params: {page: 'SOME_INTEGER_VALUE', size: 'SOME_INTEGER_VALUE'}, headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "_embedded": {
- "sessionInfoResources": [
- {
- "sessionKey": "string",
- "webinarKey": "string",
- "webinarName": "string",
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z",
- "registrantsAttended": 0,
- "registrantCount": 0,
- "accountKey": "string",
- "creatingOrganizerKey": "string",
- "creatingOrganizerName": "string",
- "startingOrganizerKey": "string",
- "startingOrganizerName": "string",
- "totalPollCount": 0,
- "timeZone": "string",
- "experienceType": "string",
- "webinarID": "string",
- "webinarType": 0,
- "numRegLinkClicks": 0,
- "numOpenedInvitations": 0,
- "includeCertificate": true,
- "followupEmailTriggered": true
}
]
}, - "page": {
- "size": 0,
- "totalElements": 0,
- "totalPages": 0,
- "number": 0
}
}
Get webinar session
Retrieves attendance details for a specific webinar session that has ended. If attendees attended the session ('registrantsAttended'), specific attendance details, such as attendenceTime for a registrant, will also be retrieved.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
sessionKey required | integer <int64> The key of the webinar session |
Responses
Response Schema: application/json
registrantKey required | integer <int64> The key of the webinar attendee |
firstName required | string The attendee's first name |
lastName required | string The attendee's last name |
email required | string The attendee's email address |
attendanceTimeInSeconds required | integer <int64> The total attendance time in seconds |
sessionKey required | integer <int64> The unique key of the webinar session |
required | Array of objects (Attendance) The list of times the attendee joined and left the webinar session |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/sessions/%7BsessionKey%7D', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
[- {
- "registrantKey": 0,
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "attendanceTimeInSeconds": 0,
- "sessionKey": 0,
- "attendance": [
- {
- "joinTime": "2019-08-24T14:15:22Z",
- "leaveTime": "2019-08-24T14:15:22Z"
}
]
}
]
Get session performance
Get performance details for a session.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
sessionKey required | integer <int64> The key of the webinar session |
Responses
Response Schema: application/json
required | object (SessionInfoStatistics) Describes session details for webinar session |
required | object (AttendanceStatistics) Describes attendance metrics for a webinar session. |
required | object (PollsAndSurveysStatistics) Details on the polls and surveys for a webinar session. |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/sessions/%7BsessionKey%7D/performance', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "sessionInfo": {
- "webinarName": "string",
- "webinarId": "string",
- "sessionKey": "string",
- "timeZone": "string",
- "experienceType": "CLASSIC",
- "recurrencePeriod": "string",
- "startTime": "2019-08-24T14:15:22Z",
- "endTime": "2019-08-24T14:15:22Z",
- "registrationEmailOpenedCount": "string",
- "registrationLinkClickedCount": "string"
}, - "attendance": {
- "registrantCount": 0,
- "percentageAttendance": 0.1,
- "averageInterestRating": 0.1,
- "averageAttentiveness": 0.1,
- "averageAttendanceTimeSeconds": 0.1
}, - "pollsAndSurveys": {
- "pollCount": 0,
- "surveyCount": 0.1,
- "questionsAsked": 0,
- "percentagePollsCompleted": 0.1,
- "percentageSurveysCompleted": 0.1
}
}
Get session polls
Retrieve all collated attendee questions and answers for polls from a specific webinar session.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
sessionKey required | integer <int64> The key of the webinar session |
Responses
Response Schema: application/json
required | Array of objects (PollResponse) The responses given by the attendees to the poll or survey |
question required | string The poll or survey question asked by the webinar organizer |
numberOfResponses required | integer <int32> The total number of responses received for this poll or survey |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/sessions/%7BsessionKey%7D/polls', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
[- {
- "responses": [
- {
- "text": "string",
- "percentage": 100
}
], - "question": "string",
- "numberOfResponses": 0
}
]
Get session questions
Retrieve questions and answers for a past webinar session.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
sessionKey required | integer <int64> The key of the webinar session |
Responses
Response Schema: application/json
required | Array of objects (AnswerToAttendeeQuestion) Answer to a question of an attendee and key of the organizer that answered |
question required | string The question asked by the attendee |
askedBy required | string The email address of the attendee that asked the question |
askerKey required | string The key of the attendee who asked the question |
dateAsked required | string <date-time> The date on which the question was asked e.g. 2020-03-13T10:00:00Z |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/sessions/%7BsessionKey%7D/questions', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
[- {
- "answers": [
- {
- "answer": "string",
- "answeredBy": "string",
- "answererRole": "string",
- "answerTime": "string",
- "answererEmail": "string"
}
], - "question": "string",
- "askedBy": "string",
- "askerKey": "string",
- "dateAsked": "2019-08-24T14:15:22Z"
}
]
Get session surveys
Retrieve surveys for a past webinar session.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
sessionKey required | integer <int64> The key of the webinar session |
Responses
Response Schema: application/json
required | Array of objects (PollResponse) The responses given by the attendees to the poll or survey |
question required | string The poll or survey question asked by the webinar organizer |
numberOfResponses required | integer <int32> The total number of responses received for this poll or survey |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/sessions/%7BsessionKey%7D/surveys', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
[- {
- "responses": [
- {
- "text": "string",
- "percentage": 100
}
], - "question": "string",
- "numberOfResponses": 0
}
]
Get session attendees
Retrieve details for all attendees of a specific webinar session.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
sessionKey required | integer <int64> The key of the webinar session |
Responses
Response Schema: application/json
registrantKey required | integer <int64> The key of the webinar attendee |
firstName required | string The attendee's first name |
lastName required | string The attendee's last name |
email required | string The attendee's email address |
attendanceTimeInSeconds required | integer <int64> The total attendance time in seconds |
sessionKey required | integer <int64> The unique key of the webinar session |
required | Array of objects (Attendance) The list of times the attendee joined and left the webinar session |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/sessions/%7BsessionKey%7D/attendees', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
[- {
- "registrantKey": 0,
- "firstName": "string",
- "lastName": "string",
- "email": "string",
- "attendanceTimeInSeconds": 0,
- "sessionKey": 0,
- "attendance": [
- {
- "joinTime": "2019-08-24T14:15:22Z",
- "leaveTime": "2019-08-24T14:15:22Z"
}
]
}
]
Get attendee
Retrieve registration details for a particular attendee of a specific webinar session.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
sessionKey required | integer <int64> The key of the webinar session |
registrantKey required | integer <int64> The key of the registrant |
Responses
Response Schema: application/json
lastName required | string The registrant's last name |
email required | string The registrant's email address |
firstName required | string The registrant's first name |
registrantKey required | integer <int64> The registrant's key |
registrationDate required | string <date-time> The registration date and time |
status required | string Enum: "APPROVED" "DENIED" "WAITING" The registration status |
joinUrl required | string The URL the registrant will use to join the webinar |
timeZone required | string The time zone where the webinar will take place |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/sessions/%7BsessionKey%7D/attendees/%7BregistrantKey%7D', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "lastName": "string",
- "email": "string",
- "firstName": "string",
- "registrantKey": 0,
- "registrationDate": "2019-08-24T14:15:22Z",
- "status": "APPROVED",
- "joinUrl": "string",
- "timeZone": "string"
}
Get attendee poll answers
Get poll answers from a particular attendee of a specific webinar session.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
sessionKey required | integer <int64> The key of the webinar session |
registrantKey required | integer <int64> The key of the registrant |
Responses
Response Schema: application/json
answer | string Deprecated The answer given to the poll or survey question. Use |
answers required | Array of strings The answer given to the poll or survey question |
question required | string The poll or survey question |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/sessions/%7BsessionKey%7D/attendees/%7BregistrantKey%7D/polls', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
[- {
- "answer": "Great",
- "answers": [
- [
- "Great",
- "Super"
]
], - "question": "How was the experience?"
}
]
Get attendee questions
Get questions asked by an attendee during a webinar session.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
sessionKey required | integer <int64> The key of the webinar session |
registrantKey required | integer <int64> The key of the registrant |
Responses
Response Schema: application/json
required | Array of objects (AnswerToAttendeeQuestion) Answer to a question of an attendee and key of the organizer that answered |
question required | string The question asked by the attendee |
askedBy required | string The email address of the attendee that asked the question |
askerKey required | string The key of the attendee who asked the question |
dateAsked required | string <date-time> The date on which the question was asked e.g. 2020-03-13T10:00:00Z |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/sessions/%7BsessionKey%7D/attendees/%7BregistrantKey%7D/questions', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
[- {
- "answers": [
- {
- "answer": "string",
- "answeredBy": "string",
- "answererRole": "string",
- "answerTime": "string",
- "answererEmail": "string"
}
], - "question": "string",
- "askedBy": "string",
- "askerKey": "string",
- "dateAsked": "2019-08-24T14:15:22Z"
}
]
Get attendee survey answers
Retrieve survey answers from a particular attendee during a webinar session.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the organizer |
webinarKey required | integer <int64> The key of the webinar |
sessionKey required | integer <int64> The key of the webinar session |
registrantKey required | integer <int64> The key of the registrant |
Responses
Response Schema: application/json
answer | string Deprecated The answer given to the poll or survey question. Use |
answers required | Array of strings The answer given to the poll or survey question |
question required | string The poll or survey question |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/sessions/%7BsessionKey%7D/attendees/%7BregistrantKey%7D/surveys', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
[- {
- "answer": "Great",
- "answers": [
- [
- "Great",
- "Super"
]
], - "question": "How was the experience?"
}
]
Search for completed recording assets
Allows search for a completed recording asset.
Example Interaction with curl
The default request is represented below, that excludes the includes
query parameter.
You will get the mp4DownloadUrl
and transcriptUrl
by default in the response if they exist.
The recordingShareUrl
and webinarKey
fields will not be included.
curl --request PUT 'https://api.getgo.com/G2W/rest/v2/recordingassets/search?page={page}&size={size}' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"accountKey": "123456",
"sortField": "CREATETIME",
"sortOrder": "DESC"
}'
By adding the includes
query parameter has shown below, you'll get
the recordingShareUrl
and webinarKey
fields in the response.
curl --request PUT 'https://api.getgo.com/G2W/rest/v2/recordingassets/search?page={page}&size={size}&includes=recordingShareUrl%2CwebinarKey' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"accountKey": "123456",
"sortField": "CREATETIME",
"sortOrder": "DESC"
}'
Authorizations:
query Parameters
page | integer <int64> The page number to be displayed. The first page is 0. |
size | integer <int64> <= 200 The size of the page. |
includes | Array of strings Items Enum: "recordingShareUrl" "webinarKey" Add the response variables. |
Request Body schema: application/json
The asset search parameters
accountKey required | string The key of the account |
name | string The name of the recordingasset |
sortField | string Default: "CREATETIME" Sorts on the specified field. The default value is 'CREATETIME'. The possible values are 'CREATETIME' and 'NAME'. |
sortOrder | string Default: "DESC" Specifies the sort order type. The default value is 'DESC'. The possible values are 'DESC', 'ASC'. |
Responses
Response Schema: application/json
required | object (Assets) |
required | object (page) |
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
{- "accountKey": "string",
- "name": "string",
- "sortField": "CREATETIME",
- "sortOrder": "DESC"
}
Response samples
- 200
{- "_embedded": {
- "recordingAssets": [
- {
- "name": "string",
- "recordingAssetKey": "string",
- "productName": "string",
- "createTime": "2019-08-24T14:15:22Z",
- "creatorKey": "string",
- "accountKey": "string",
- "totalReferenceCount": 0,
- "mp4DownloadUrl": "string",
- "transcriptDownloadUrl": "string",
- "recordingShareUrl": "string",
- "webinarKey": "string"
}
]
}, - "page": {
- "size": 0,
- "totalElements": 0,
- "totalPages": 0,
- "number": 0
}
}
Search for completed recording assets of an admin user
Allows search for a completed recording asset for an admin user. The authorization token must represent an admin.
Example Interaction with curl
The default request is represented below, that excludes the includes
query parameter.
You will get the mp4DownloadUrl
and transcriptUrl
by default in the response if they exist.
The recordingShareUrl
and webinarKey
fields will not be included.
curl --request POST 'https://api.getgo.com/G2W/rest/v2/accounts/{accountKey}/recordingassets/search?page={page}&size={size}' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Test"
"organizerKey": "123456",
"sortField": "CREATETIME",
"sortOrder": "DESC",
"fromTime":"2021-01-01T00:00:00Z",
"toTime":"2022-02-02T06:36:02.352Z"
}'
By adding the includes
query parameter has shown below, you'll get
the recordingShareUrl
and webinarKey
fields in the response.
curl --request POST 'https://api.getgo.com/G2W/rest/v2/accounts/{accountKey}/recordingassets/search?page={page}&size={size}&includes=recordingShareUrl%2CwebinarKey' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Test"
"organizerKey": "123456",
"sortField": "CREATETIME",
"sortOrder": "DESC",
"fromTime":"2021-01-01T00:00:00Z",
"toTime":"2022-02-02T06:36:02.352Z"
}'
Authorizations:
path Parameters
accountKey required | integer <int64> The key of the account |
query Parameters
page | integer <int64> The page number to be displayed. The first page is 0. |
size | integer <int64> <= 200 The size of the page. |
includes | Array of strings Items Enum: "recordingShareUrl" "webinarKey" Add the response variables. |
Request Body schema: application/json
The asset search parameters
organizerKey required | string The key of the organizer |
name | string The name of the recordingasset |
sortField | string Default: "CREATETIME" Sorts on the specified field. The default value is 'CREATETIME'. The possible values are 'CREATETIME' and 'NAME'. |
sortOrder | string Default: "DESC" Specifies the sort order type. The default value is 'DESC'. The possible values are 'DESC', 'ASC'. |
fromTime | string Specifies the time from which the recordings should be included. Date should be in ISO format. |
toTime | string Specifies the time till which the recordings should be included. Date should be in ISO format. |
Responses
Response Schema: application/json
required | object (Assets) |
required | object (page) |
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
{- "organizerKey": "string",
- "name": "string",
- "sortField": "CREATETIME",
- "sortOrder": "DESC",
- "fromTime": "string",
- "toTime": "string"
}
Response samples
- 200
{- "_embedded": {
- "recordingAssets": [
- {
- "name": "string",
- "recordingAssetKey": "string",
- "productName": "string",
- "createTime": "2019-08-24T14:15:22Z",
- "creatorKey": "string",
- "accountKey": "string",
- "totalReferenceCount": 0,
- "mp4DownloadUrl": "string",
- "transcriptDownloadUrl": "string",
- "recordingShareUrl": "string",
- "webinarKey": "string"
}
]
}, - "page": {
- "size": 0,
- "totalElements": 0,
- "totalPages": 0,
- "number": 0
}
}
Creates a new secret key
This creates a new secret key per application. It takes an optional validFrom value, a date time in ISO8601 format, e.g. 2019-07-01T22:00:00Z. The secret key will be activated at the given date. If validFrom is not passed, the secret key will be activated immediately. The secret key is used to generate a signature for events published to the callback url.
Authorizations:
Request Body schema: application/json
The secret key object to create
validFrom | string A date time in ISO8601 format, e.g. 2019-07-01T22:00:00Z. The secret key will be activated at the given date |
Responses
Response Schema: application/json
id | integer The unique identifier for the secret key |
value | string The value of the secret key. This is used for generating a signature of events posted to the callback url |
validFrom | string A date time in ISO8601 format, e.g. 2019-07-01T22:00:00Z. The secret key will be activated at the given date |
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
{- "validFrom": "string"
}
Response samples
- 200
{- "id": 0,
- "value": "string",
- "validFrom": "string"
}
Creates new webhooks
A new webhook will be created with the provided callback url. Callback url should be a https url. Callback url will be validated by making a GET request. It should return 200 OK.
Authorizations:
Request Body schema: application/json
Webhooks object to create
callbackUrl required | string A HTTPs url that can accept posted events. It should return 200 OK for GET requests. |
eventName required | string Type of event for the webhook. Supported eventNames are registrant.added, registrant.joined, webinar.created, webinar.changed |
eventVersion required | string Version of event being subscribed for. Supported eventVersion is 1.0.0 |
product required | string (Product) Value: "g2w" Product of the events |
Responses
Response Schema: application/json
required | object (Webhooks) |
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
[- {
- "callbackUrl": "string",
- "eventName": "string",
- "eventVersion": "string",
- "product": "g2w"
}
]
Response samples
- 200
{- "_embedded": {
- "webhooks": [
- {
- "callbackUrl": "string",
- "eventName": "string",
- "eventVersion": "string",
- "product": "g2w",
- "webhookKey": "string",
- "state": "INACTIVE",
- "createTime": "string"
}
]
}
}
Updates webhooks
Callback url and state of webhooks can be updated using this API. Callback url should be a https url. Callback url will be validated by making a GET request. It should return 200 OK.
Authorizations:
Request Body schema: application/json
Webhooks object to update
callbackUrl | string A HTTPs url that can accept posted events. It should return 200 OK for GET requests. |
webhookKey required | string The unique identifier for the webhook |
state | string (WebhookState) Enum: "INACTIVE" "ACTIVE" State of the webhook |
Responses
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
[- {
- "callbackUrl": "string",
- "webhookKey": "string",
- "state": "INACTIVE"
}
]
Get webhooks
Get the list of webhooks by product for the requesting user. Product must be provided.
Authorizations:
query Parameters
product required | string Value: "g2w" Supported products |
Responses
Response Schema: application/json
required | object (Webhooks) |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/webhooks', params: {product: 'SOME_STRING_VALUE'}, headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "_embedded": {
- "webhooks": [
- {
- "callbackUrl": "string",
- "eventName": "string",
- "eventVersion": "string",
- "product": "g2w",
- "webhookKey": "string",
- "state": "INACTIVE",
- "createTime": "string"
}
]
}
}
Get webhook
Get a webhook by webhookKey for the requesting user.
Authorizations:
path Parameters
webhookKey required | string The unique identifier for a webhook. |
Responses
Response Schema: application/json
callbackUrl required | string A HTTPs url that can accept posted events. It should return 200 OK for GET requests. |
eventName required | string Type of event for the webhook. Supported eventNames are registrant.added, registrant.joined, webinar.created, webinar.changed |
eventVersion required | string Version of event being subscribed for. Supported eventVersion is 1.0.0 |
product required | string (Product) Value: "g2w" Product of the events |
webhookKey | string The unique identifier for the webhook |
state | string (WebhookState) Enum: "INACTIVE" "ACTIVE" State of the webhook |
createTime | string The create time of the webhook |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/webhooks/%7BwebhookKey%7D', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "callbackUrl": "string",
- "eventName": "string",
- "eventVersion": "string",
- "product": "g2w",
- "webhookKey": "string",
- "state": "INACTIVE",
- "createTime": "string"
}
Creates new user subscriptions
A user subscriptions will be created for the provided webhook. Callback url can be provided for user subscription. The callback url will be validated by making a GET request. It should return 200 OK.
Authorizations:
Request Body schema: application/json
User subscriptions to create
callbackUrl | string A HTTPs url that can accept posted events. It should return 200 OK for GET requests. |
webhookKey required | string The unique identifier for the webhook |
userSubscriptionState | string (UserSubscriptionState) Enum: "INACTIVE" "ACTIVE" State of the user subscription |
Responses
Response Schema: application/json
required | object (UserSubscriptions) |
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
[- {
- "callbackUrl": "string",
- "webhookKey": "string",
- "userSubscriptionState": "INACTIVE"
}
]
Response samples
- 200
{- "_embedded": {
- "userSubscriptions": [
- {
- "callbackUrl": "string",
- "eventName": "string",
- "eventVersion": "string",
- "product": "g2w",
- "webhookKey": "string",
- "userSubscriptionKey": "string",
- "userSubscriptionState": "INACTIVE",
- "activationState": "INACTIVE",
- "createTime": "string"
}
]
}
}
Updates user subscriptions
Callback url and state of user subscriptions can be updated using this API. The callback url will be validated by making a GET request. It should return 200 OK.
Authorizations:
Request Body schema: application/json
User subscriptions to update
callbackUrl | string A HTTPs url that can accept posted events. It should return 200 OK for GET requests. |
webhookKey required | string The unique identifier for the webhook |
userSubscriptionKey required | string The unique identifier for the user subscription |
userSubscriptionState | string (UserSubscriptionState) Enum: "INACTIVE" "ACTIVE" State of the user subscription |
Responses
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
[- {
- "callbackUrl": "string",
- "webhookKey": "string",
- "userSubscriptionKey": "string",
- "userSubscriptionState": "INACTIVE"
}
]
Get user subscriptions
Get the list of user subscriptions by product for the requesting user. Product must be provided.
Authorizations:
query Parameters
product required | string Value: "g2w" Supported products |
Responses
Response Schema: application/json
required | object (UserSubscriptions) |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/userSubscriptions', params: {product: 'SOME_STRING_VALUE'}, headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "_embedded": {
- "userSubscriptions": [
- {
- "callbackUrl": "string",
- "eventName": "string",
- "eventVersion": "string",
- "product": "g2w",
- "webhookKey": "string",
- "userSubscriptionKey": "string",
- "userSubscriptionState": "INACTIVE",
- "activationState": "INACTIVE",
- "createTime": "string"
}
]
}
}
Deletes user subscriptions
Deletes user subscriptions by list of userSubscriptionKeys
Authorizations:
Request Body schema: application/json
List of userSubscriptionKeys to delete
Responses
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
[- "string"
]
Get user subscription
Get a user subscription by userSubscriptionKey for the requesting user.
Authorizations:
path Parameters
userSubscriptionsKey required | string The unique identifier for a user subscription. |
Responses
Response Schema: application/json
callbackUrl | string A HTTPs url that can accept posted events. It should return 200 OK for GET requests. |
eventName | string Type of event of the webhook |
eventVersion | string Version of event being subscribed for |
product | string (Product) Value: "g2w" Product of the events |
webhookKey | string The unique identifier for the webhook |
userSubscriptionKey | string The unique identifier for the user subscription |
userSubscriptionState | string (UserSubscriptionState) Enum: "INACTIVE" "ACTIVE" State of the user subscription |
activationState | string (ActivationState) Enum: "INACTIVE" "ACTIVE" Final state of user subscription. ActivationState will be ACTIVE if both webhook and user subscription states are ACTIVE, INACTIVE otherwise. |
createTime | string The create time of the webhook |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.getgo.com/G2W/rest/v2/userSubscriptions/%7BuserSubscriptionsKey%7D', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Response samples
- 200
{- "callbackUrl": "string",
- "eventName": "string",
- "eventVersion": "string",
- "product": "g2w",
- "webhookKey": "string",
- "userSubscriptionKey": "string",
- "userSubscriptionState": "INACTIVE",
- "activationState": "INACTIVE",
- "createTime": "string"
}