GoTo Webinar Co Organizers API
Co-organizer management for a GoTo Webinar webinar — 4 operations to list, add, remove and resend invitations for co-hosts, internal by organizerKey or external by email.
Co-organizer management for a GoTo Webinar webinar — 4 operations to list, add, remove and resend invitations for co-hosts, internal by organizerKey or external by email.
openapi: 3.2.0
info:
title: GoTo Webinar 2.0 REST Co Organizers 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: Co-organizers
description: Operations available for co-organizers of a given webinar.
paths:
/organizers/{organizerKey}/webinars/{webinarKey}/coorganizers:
get:
tags:
- Co-organizers
operationId: getCoorganizers
summary: Get co-organizers
description: '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.
'
parameters:
- $ref: '#/components/parameters/organizerKey'
- $ref: '#/components/parameters/webinarKey'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Coorganizer'
'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/coorganizers',\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/coorganizers \\\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/coorganizers", 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/coorganizers');\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/coorganizers")
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:
- Co-organizers
operationId: createCoorganizers
summary: Create co-organizers
description: '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''.
'
parameters:
- $ref: '#/components/parameters/organizerKey'
- $ref: '#/components/parameters/webinarKey'
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/CoorganizerReqCreate'
description: The co-organizer details
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Coorganizer'
'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/coorganizers',\n headers: {\n Authorization: 'Bearer REPLACE_BEARER_TOKEN',\n },\n data: [{external: true, organizerKey: 'string', givenName: 'string', email: '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/coorganizers \\\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n --header 'content-type: application/json' \\\n --data '[{\"external\":true,\"organizerKey\":\"string\",\"givenName\":\"string\",\"email\":\"string\"}]'"
- lang: Python + Python3
source: "import http.client\n\nconn = http.client.HTTPSConnection(\"api.getgo.com\")\n\npayload = \"[{\\\"external\\\":true,\\\"organizerKey\\\":\\\"string\\\",\\\"givenName\\\":\\\"string\\\",\\\"email\\\":\\\"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/coorganizers\", 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('[{\"external\":true,\"organizerKey\":\"string\",\"givenName\":\"string\",\"email\":\"string\"}]');\n\n$request->setRequestUrl('https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D/coorganizers');\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/coorganizers")
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 = "[{\"external\":true,\"organizerKey\":\"string\",\"givenName\":\"string\",\"email\":\"string\"}]"
response = http.request(request)
puts response.read_body'
/organizers/{organizerKey}/webinars/{webinarKey}/coorganizers/{coorganizerKey}:
delete:
tags:
- Co-organizers
operationId: deleteCoorganizer
summary: Delete co-organizer
description: 'Deletes an internal co-organizer specified by the coorganizerKey (memberKey).
'
parameters:
- $ref: '#/components/parameters/organizerKey'
- $ref: '#/components/parameters/webinarKey'
- $ref: '#/components/parameters/coorganizerKey'
- name: external
in: query
description: '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''.
'
required: false
schema:
type: boolean
responses:
'204':
description: No Content (Co-organizer was deleted)
'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/coorganizers/%7BcoorganizerKey%7D',\n params: {external: 'SOME_BOOLEAN_VALUE'},\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/coorganizers/%7BcoorganizerKey%7D?external=SOME_BOOLEAN_VALUE' \\\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/coorganizers/%7BcoorganizerKey%7D?external=SOME_BOOLEAN_VALUE", 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/coorganizers/%7BcoorganizerKey%7D');\n$request->setRequestMethod('DELETE');\n$request->setQuery(new http\\QueryString([\n 'external' => 'SOME_BOOLEAN_VALUE'\n]));\n\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/coorganizers/%7BcoorganizerKey%7D?external=SOME_BOOLEAN_VALUE")
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'
/organizers/{organizerKey}/webinars/{webinarKey}/coorganizers/{coorganizerKey}/resendInvitation:
post:
tags:
- Co-organizers
operationId: resendCoorganizerInvitation
summary: Resend invitation
description: Resends an invitation email to the specified co-organizer
parameters:
- $ref: '#/components/parameters/organizerKey'
- $ref: '#/components/parameters/webinarKey'
- $ref: '#/components/parameters/coorganizerKey'
- name: external
in: query
description: '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''.
'
required: false
schema:
type: boolean
responses:
'204':
description: No Content (Invitation email was sent)
'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/coorganizers/%7BcoorganizerKey%7D/resendInvitation',\n params: {external: 'SOME_BOOLEAN_VALUE'},\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/coorganizers/%7BcoorganizerKey%7D/resendInvitation?external=SOME_BOOLEAN_VALUE' \\\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/coorganizers/%7BcoorganizerKey%7D/resendInvitation?external=SOME_BOOLEAN_VALUE", 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/coorganizers/%7BcoorganizerKey%7D/resendInvitation');\n$request->setRequestMethod('POST');\n$request->setQuery(new http\\QueryString([\n 'external' => 'SOME_BOOLEAN_VALUE'\n]));\n\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/coorganizers/%7BcoorganizerKey%7D/resendInvitation?external=SOME_BOOLEAN_VALUE")
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'
components:
parameters:
organizerKey:
name: organizerKey
in: path
description: The key of the organizer
required: true
schema:
type: integer
format: int64
coorganizerKey:
name: coorganizerKey
in: path
description: The key of the internal or external co-organizer (memberKey)
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
schemas:
Coorganizer:
description: Describes a webinar co-organizer. A co-organizer without a GoToWebinar account is marked as external and is returned without a surname
required:
- joinLink
- email
- memberKey
- external
- surname
- givenName
properties:
joinLink:
type: string
description: The co-organizer's join link
email:
type: string
description: The co-organizer's email address
memberKey:
type: string
description: The co-organizer's organizer key. A new member key is created for external co-organizers
external:
type: boolean
description: If the co-organizer has no GoTo Webinar account, this value is set to 'true'
surname:
type: string
description: The co-organizer's surname. For external co-organizers this parameter is not returned
givenName:
type: string
description: The co-organizer's given name
CoorganizerReqCreate:
description: 'Details used for creating a co-organizer for a webinar. '
required:
- external
properties:
external:
type: boolean
description: If the co-organizer has no GoTo Webinar account, this value has to be set to 'true'
organizerKey:
type: string
description: The co-organizer's organizer key. This parameter has to be passed only, if 'external' is set to 'false'
givenName:
type: string
description: The co-organizer's given name. This parameter has to be passed only, if 'external' is set to 'true'
email:
type: string
description: The co-organizer's email address. This parameter has to be passed only, if 'external' is set to 'true'
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