GoTo Webinar Panelists API
Panelist management for a GoTo Webinar webinar — 4 operations to list, invite, remove and resend the invitation for the presenters on a webinar.
Panelist management for a GoTo Webinar webinar — 4 operations to list, invite, remove and resend the invitation for the presenters on a webinar.
openapi: 3.2.0
info:
title: GoTo Webinar 2.0 REST Panelists API
description: 'We recommend you use the v2 of this API. If you are still using v1, you can access [v1 documentation](/GoToWebinarV1).
### Authentication Scopes
`collab:` must be used when a token is requested from the Authentication API.
# GoTo Webinar API Overview
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
## Getting Started
1. [Register](/guides/Get%20Started/01_HOW_developerAccount) for a developer account.
2. Create an [OAuth client](/guides/Get%20Started/02_HOW_createClient) and include the product(s) you plan to develop with.
3. 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.
4. Request an [Access Token](/guides/Authentication/03_HOW_accessToken) to make API calls.
5. Make your first API calls. You can use cURL, Postman, or other API interfaces to make calls.
'
version: 2.0.0
servers:
- url: https://api.getgo.com/G2W/rest/v2
security:
- OAuth2: []
tags:
- name: Panelists
description: Operations available for panelists of a given webinar.
paths:
/organizers/{organizerKey}/webinars/{webinarKey}/panelists:
get:
tags:
- Panelists
operationId: getPanelists
summary: Get webinar panelists
description: Retrieves all the panelists for a specific webinar.
parameters:
- $ref: '#/components/parameters/organizerKey'
- $ref: '#/components/parameters/webinarKey'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Panelist'
'400':
description: Bad Request
'403':
description: Forbidden
'404':
description: Not Found
x-codeSamples:
- lang: Node + Axios
source: "var axios = require(\"axios\").default;\n\nvar options = {\n method: 'GET',\n url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists',\n headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'}\n};\n\naxios.request(options).then(function (response) {\n console.log(response.data);\n}).catch(function (error) {\n console.error(error);\n});"
- lang: Shell + Curl
source: "curl --request GET \\\n --url https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
- lang: Python + Python3
source: 'import http.client
conn = http.client.HTTPSConnection("api.getgo.com")
headers = { ''Authorization'': "Bearer REPLACE_BEARER_TOKEN" }
conn.request("GET", "/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))'
- lang: Php + Http2
source: "<?php\n\n$client = new http\\Client;\n$request = new http\\Client\\Request;\n\n$request->setRequestUrl('https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists');\n$request->setRequestMethod('GET');\n$request->setHeaders([\n 'Authorization' => 'Bearer REPLACE_BEARER_TOKEN'\n]);\n\n$client->enqueue($request)->send();\n$response = $client->getResponse();\n\necho $response->getBody();"
- lang: Ruby + Native
source: 'require ''uri''
require ''net/http''
require ''openssl''
url = URI("https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
request["Authorization"] = ''Bearer REPLACE_BEARER_TOKEN''
response = http.request(request)
puts response.read_body'
post:
tags:
- Panelists
operationId: createPanelists
summary: Create Panelists
description: Create panelists for a specified webinar
parameters:
- $ref: '#/components/parameters/organizerKey'
- $ref: '#/components/parameters/webinarKey'
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/PanelistReqCreate'
description: Array of panelists
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CreatedPanelist'
'400':
description: Bad Request
'403':
description: Forbidden
'404':
description: Not Found
x-codeSamples:
- lang: Node + Axios
source: "var axios = require(\"axios\").default;\n\nvar options = {\n method: 'POST',\n url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists',\n headers: {\n Authorization: 'Bearer REPLACE_BEARER_TOKEN',\n },\n data: [{email: 'string', name: 'string'}]\n};\n\naxios.request(options).then(function (response) {\n console.log(response.data);\n}).catch(function (error) {\n console.error(error);\n});"
- lang: Shell + Curl
source: "curl --request POST \\\n --url https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n --header 'content-type: application/json' \\\n --data '[{\"email\":\"string\",\"name\":\"string\"}]'"
- lang: Python + Python3
source: "import http.client\n\nconn = http.client.HTTPSConnection(\"api.getgo.com\")\n\npayload = \"[{\\\"email\\\":\\\"string\\\",\\\"name\\\":\\\"string\\\"}]\"\n\nheaders = {\n 'Authorization': \"Bearer REPLACE_BEARER_TOKEN\",\n 'content-type': \"application/json\"\n }\n\nconn.request(\"POST\", \"/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists\", payload, headers)\n\nres = conn.getresponse()\ndata = res.read()\n\nprint(data.decode(\"utf-8\"))"
- lang: Php + Http2
source: "<?php\n\n$client = new http\\Client;\n$request = new http\\Client\\Request;\n\n$body = new http\\Message\\Body;\n$body->append('[{\"email\":\"string\",\"name\":\"string\"}]');\n\n$request->setRequestUrl('https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists');\n$request->setRequestMethod('POST');\n$request->setBody($body);\n\n$request->setHeaders([\n 'Authorization' => 'Bearer REPLACE_BEARER_TOKEN',\n 'content-type' => 'application/json'\n]);\n\n$client->enqueue($request)->send();\n$response = $client->getResponse();\n\necho $response->getBody();"
- lang: Ruby + Native
source: 'require ''uri''
require ''net/http''
require ''openssl''
url = URI("https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request["Authorization"] = ''Bearer REPLACE_BEARER_TOKEN''
request["content-type"] = ''application/json''
request.body = "[{\"email\":\"string\",\"name\":\"string\"}]"
response = http.request(request)
puts response.read_body'
/organizers/{organizerKey}/webinars/{webinarKey}/panelists/{panelistKey}/resendInvitation:
post:
tags:
- Panelists
operationId: resendPanelistInvitation
summary: Resend panelist invitation
description: Resend the panelist invitation email.
parameters:
- $ref: '#/components/parameters/organizerKey'
- $ref: '#/components/parameters/webinarKey'
- $ref: '#/components/parameters/panelistKey'
responses:
'204':
description: No Content
'400':
description: Bad Request
'403':
description: Forbidden
'404':
description: Not Found
x-codeSamples:
- lang: Node + Axios
source: "var axios = require(\"axios\").default;\n\nvar options = {\n method: 'POST',\n url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists/%7BpanelistKey%7D/resendInvitation',\n headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'}\n};\n\naxios.request(options).then(function (response) {\n console.log(response.data);\n}).catch(function (error) {\n console.error(error);\n});"
- lang: Shell + Curl
source: "curl --request POST \\\n --url https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists/%7BpanelistKey%7D/resendInvitation \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
- lang: Python + Python3
source: 'import http.client
conn = http.client.HTTPSConnection("api.getgo.com")
headers = { ''Authorization'': "Bearer REPLACE_BEARER_TOKEN" }
conn.request("POST", "/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists/%7BpanelistKey%7D/resendInvitation", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))'
- lang: Php + Http2
source: "<?php\n\n$client = new http\\Client;\n$request = new http\\Client\\Request;\n\n$request->setRequestUrl('https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists/%7BpanelistKey%7D/resendInvitation');\n$request->setRequestMethod('POST');\n$request->setHeaders([\n 'Authorization' => 'Bearer REPLACE_BEARER_TOKEN'\n]);\n\n$client->enqueue($request)->send();\n$response = $client->getResponse();\n\necho $response->getBody();"
- lang: Ruby + Native
source: 'require ''uri''
require ''net/http''
require ''openssl''
url = URI("https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists/%7BpanelistKey%7D/resendInvitation")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request["Authorization"] = ''Bearer REPLACE_BEARER_TOKEN''
response = http.request(request)
puts response.read_body'
/organizers/{organizerKey}/webinars/{webinarKey}/panelists/{panelistKey}:
delete:
tags:
- Panelists
operationId: deleteWebinarPanelist
summary: Delete webinar panelist
description: Removes a webinar panelist.
parameters:
- $ref: '#/components/parameters/organizerKey'
- $ref: '#/components/parameters/webinarKey'
- $ref: '#/components/parameters/panelistKey'
responses:
'204':
description: No content
'400':
description: Bad Request
'403':
description: Forbidden
'404':
description: Not Found
x-codeSamples:
- lang: Node + Axios
source: "var axios = require(\"axios\").default;\n\nvar options = {\n method: 'DELETE',\n url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists/%7BpanelistKey%7D',\n headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'}\n};\n\naxios.request(options).then(function (response) {\n console.log(response.data);\n}).catch(function (error) {\n console.error(error);\n});"
- lang: Shell + Curl
source: "curl --request DELETE \\\n --url https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists/%7BpanelistKey%7D \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
- lang: Python + Python3
source: 'import http.client
conn = http.client.HTTPSConnection("api.getgo.com")
headers = { ''Authorization'': "Bearer REPLACE_BEARER_TOKEN" }
conn.request("DELETE", "/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists/%7BpanelistKey%7D", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))'
- lang: Php + Http2
source: "<?php\n\n$client = new http\\Client;\n$request = new http\\Client\\Request;\n\n$request->setRequestUrl('https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists/%7BpanelistKey%7D');\n$request->setRequestMethod('DELETE');\n$request->setHeaders([\n 'Authorization' => 'Bearer REPLACE_BEARER_TOKEN'\n]);\n\n$client->enqueue($request)->send();\n$response = $client->getResponse();\n\necho $response->getBody();"
- lang: Ruby + Native
source: 'require ''uri''
require ''net/http''
require ''openssl''
url = URI("https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/panelists/%7BpanelistKey%7D")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Delete.new(url)
request["Authorization"] = ''Bearer REPLACE_BEARER_TOKEN''
response = http.request(request)
puts response.read_body'
components:
schemas:
CreatedPanelist:
description: Describes a created panelist
required:
- name
- email
- joinLink
- panelistKey
properties:
name:
type: string
description: The panelist's name
email:
type: string
description: The panelist's email address
joinLink:
type: string
description: The panelist's join link
panelistKey:
type: string
description: The panelist's key
PanelistReqCreate:
description: Describes a single panelist
required:
- email
- name
properties:
email:
type: string
description: The panelist's email address
name:
type: string
description: The panelist's name
Panelist:
description: Describes a webinar session panelist
required:
- joinLink
- lastName
- email
- name
- panelistId
- firstName
properties:
joinLink:
type: string
description: The co-organizer's join link
lastName:
deprecated: true
type: string
description: DEPRECATED. The fields 'firstName' and 'lastName' are replaced by the field 'name'
email:
type: string
description: The panelist's email address
name:
type: string
description: The panelist's name
panelistId:
type: integer
format: int64
description: The panelist's ID
firstName:
deprecated: true
type: string
description: DEPRECATED. The fields 'firstName' and 'lastName' are replaced by the field 'name'
parameters:
panelistKey:
name: panelistKey
in: path
description: The key of the webinar panelist
required: true
schema:
type: integer
format: int64
organizerKey:
name: organizerKey
in: path
description: The key of the organizer
required: true
schema:
type: integer
format: int64
webinarKey:
name: webinarKey
in: path
description: The key of the webinar
required: true
schema:
type: integer
format: int64
securitySchemes:
OAuth2:
type: oauth2
description: 'To use this API, you _must_ provide an OAuth Token that has been requested from LogMeIn OAuth Authorization Server. See https://goto-developer.logmeininc.com/how-get-access-token-and-organizer-key for documentation about how to use LogMeIn’s OAuth.
'
in: header
name: Authorization
scheme: Bearer
flows:
password:
tokenUrl: https://authentication.logmeininc.com/oauth/token
refreshUrl: https://authentication.logmeininc.com/oauth/token
authorizationCode:
authorizationUrl: https://authentication.logmeininc.com/oauth/authorize
tokenUrl: https://authentication.logmeininc.com/oauth/token
refreshUrl: https://authentication.logmeininc.com/oauth/token