Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.0.0
info:
title: GoTo Webinar 2.0 REST 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
tags:
- name: Webinars
description: Operations available for webinars of a given organizer.
- name: Co-organizers
description: Operations available for co-organizers of a given webinar.
- name: Panelists
description: Operations available for panelists of a given webinar.
- name: Registrants
description: Operations available for registrants of a given webinar.
- name: Sessions
description: Operations available for sessions of a given webinar.
- name: Attendees
description: Operations available for attendees of a given webinar session.
- name: RecordingAssets
description: Operations available for assets of a given organizer.
- name: Webhooks
description: APIs available for management of a webhooks.
security:
- OAuth2: []
paths:
/accounts/{accountKey}/webinars:
get:
tags:
- Webinars
operationId: getAllAccountWebinars
summary: Get all webinars for an account
description: |
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.
parameters:
- $ref: '#/components/parameters/accountKey'
- $ref: '#/components/parameters/requiredFromTime'
- $ref: '#/components/parameters/requiredToTime'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/size'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ReportingWebinarsResponse'
'400':
description: Bad Request
'403':
description: Forbidden
'404':
description: Not Found
x-codeSamples:
- lang: Node + Axios
source: |-
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);
});
- lang: Shell + Curl
source: |-
curl --request GET \
--url 'https://api.getgo.com/G2W/rest/v2/accounts/%7BaccountKey%7D/webinars?fromTime=2020-03-13T10%3A00%3A00Z&toTime=2020-03-13T22%3A00%3A00Z&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE' \
--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/accounts/%7BaccountKey%7D/webinars?fromTime=2020-03-13T10%3A00%3A00Z&toTime=2020-03-13T22%3A00%3A00Z&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
- lang: Php + Http2
source: |-
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.getgo.com/G2W/rest/v2/accounts/%7BaccountKey%7D/webinars');
$request->setRequestMethod('GET');
$request->setQuery(new http\QueryString([
'fromTime' => '2020-03-13T10:00:00Z',
'toTime' => '2020-03-13T22:00:00Z',
'page' => 'SOME_INTEGER_VALUE',
'size' => 'SOME_INTEGER_VALUE'
]));
$request->setHeaders([
'Authorization' => 'Bearer REPLACE_BEARER_TOKEN'
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
- lang: Ruby + Native
source: |-
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.getgo.com/G2W/rest/v2/accounts/%7BaccountKey%7D/webinars?fromTime=2020-03-13T10%3A00%3A00Z&toTime=2020-03-13T22%3A00%3A00Z&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE")
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
/organizers/{organizerKey}/sessions:
get:
tags:
- Sessions
operationId: getOrganizerSessions
summary: Get organizer sessions
description: Retrieve all completed sessions of all the webinars of a given organizer.
parameters:
- $ref: '#/components/parameters/organizerKey'
- $ref: '#/components/parameters/requiredFromTime'
- $ref: '#/components/parameters/requiredToTime'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/size'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ReportingSessionsResponse'
'400':
description: Bad Request
'403':
description: Forbidden
x-codeSamples:
- lang: Node + Axios
source: |-
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);
});
- lang: Shell + Curl
source: |-
curl --request GET \
--url 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/sessions?fromTime=2020-03-13T10%3A00%3A00Z&toTime=2020-03-13T22%3A00%3A00Z&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE' \
--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/sessions?fromTime=2020-03-13T10%3A00%3A00Z&toTime=2020-03-13T22%3A00%3A00Z&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
- lang: Php + Http2
source: |-
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/sessions');
$request->setRequestMethod('GET');
$request->setQuery(new http\QueryString([
'fromTime' => '2020-03-13T10:00:00Z',
'toTime' => '2020-03-13T22:00:00Z',
'page' => 'SOME_INTEGER_VALUE',
'size' => 'SOME_INTEGER_VALUE'
]));
$request->setHeaders([
'Authorization' => 'Bearer REPLACE_BEARER_TOKEN'
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $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/sessions?fromTime=2020-03-13T10%3A00%3A00Z&toTime=2020-03-13T22%3A00%3A00Z&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE")
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
/organizers/{organizerKey}/webinars:
get:
tags:
- Webinars
operationId: getWebinars
summary: Get Webinars
description: 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.
parameters:
- $ref: '#/components/parameters/organizerKey'
- $ref: '#/components/parameters/requiredFromTime'
- $ref: '#/components/parameters/requiredToTime'
- $ref: '#/components/parameters/page'
- name: size
in: query
required: false
description: The size of the page.
schema:
type: integer
format: int64
maximum: 200
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/ReportingWebinarsResponse'
'400':
description: Bad Request
'403':
description: Forbidden
x-codeSamples:
- lang: Node + Axios
source: |-
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);
});
- lang: Shell + Curl
source: |-
curl --request GET \
--url 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars?fromTime=2020-03-13T10%3A00%3A00Z&toTime=2020-03-13T22%3A00%3A00Z&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE' \
--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?fromTime=2020-03-13T10%3A00%3A00Z&toTime=2020-03-13T22%3A00%3A00Z&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
- lang: Php + Http2
source: |-
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars');
$request->setRequestMethod('GET');
$request->setQuery(new http\QueryString([
'fromTime' => '2020-03-13T10:00:00Z',
'toTime' => '2020-03-13T22:00:00Z',
'page' => 'SOME_INTEGER_VALUE',
'size' => 'SOME_INTEGER_VALUE'
]));
$request->setHeaders([
'Authorization' => 'Bearer REPLACE_BEARER_TOKEN'
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $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?fromTime=2020-03-13T10%3A00%3A00Z&toTime=2020-03-13T22%3A00%3A00Z&page=SOME_INTEGER_VALUE&size=SOME_INTEGER_VALUE")
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:
- Webinars
operationId: createWebinar
summary: Create webinar
description: |
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.
parameters:
- $ref: '#/components/parameters/organizerKey'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebinarReqCreate'
description: The webinar details
required: true
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedWebinar'
'400':
description: Bad Request
'403':
description: Forbidden
x-codeSamples:
- lang: Node + Axios
source: |-
var axios = require("axios").default;
var options = {
method: 'POST',
url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars',
headers: {
Authorization: 'Bearer REPLACE_BEARER_TOKEN',
},
data: {
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}
}
}
};
axios.request(options).then(function (response) {
console.log(response.data);
}).catch(function (error) {
console.error(error);
});
- lang: Shell + Curl
source: |-
curl --request POST \
--url https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars \
--header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \
--header 'content-type: application/json' \
--data '{"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}}}'
- lang: Python + Python3
source: |-
import http.client
conn = http.client.HTTPSConnection("api.getgo.com")
payload = "{\"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}}}"
headers = {
'Authorization': "Bearer REPLACE_BEARER_TOKEN",
'content-type': "application/json"
}
conn.request("POST", "/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
- lang: Php + Http2
source: |-
<?php
$client = new http\Client;
$request = new http\Client\Request;
$body = new http\Message\Body;
$body->append('{"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}}}');
$request->setRequestUrl('https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars');
$request->setRequestMethod('POST');
$request->setBody($body);
$request->setHeaders([
'Authorization' => 'Bearer REPLACE_BEARER_TOKEN',
'content-type' => 'application/json'
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $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")
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 = "{\"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 = http.request(request)
puts response.read_body
/organizers/{organizerKey}/insessionWebinars:
get:
tags:
- Webinars
operationId: getInSessionWebinars
summary: Get All Insession Webinars
description: |
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.
parameters:
- $ref: '#/components/parameters/organizerKey'
- $ref: '#/components/parameters/optionalFromTime'
- $ref: '#/components/parameters/optionalToTime'
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/BrokerWebinar'
'400':
description: Bad Request
'403':
description: Forbidden
x-codeSamples:
- lang: Node + Axios
source: |-
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);
});
- lang: Shell + Curl
source: |-
curl --request GET \
--url 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/insessionWebinars?fromTime=2020-03-13T10%3A00%3A00Z&toTime=2020-03-13T22%3A00%3A00Z' \
--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/insessionWebinars?fromTime=2020-03-13T10%3A00%3A00Z&toTime=2020-03-13T22%3A00%3A00Z", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
- lang: Php + Http2
source: |-
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/insessionWebinars');
$request->setRequestMethod('GET');
$request->setQuery(new http\QueryString([
'fromTime' => '2020-03-13T10:00:00Z',
'toTime' => '2020-03-13T22:00:00Z'
]));
$request->setHeaders([
'Authorization' => 'Bearer REPLACE_BEARER_TOKEN'
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $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/insessionWebinars?fromTime=2020-03-13T10%3A00%3A00Z&toTime=2020-03-13T22%3A00%3A00Z")
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
/organizers/{organizerKey}/webinars/{webinarKey}:
get:
tags:
- Webinars
operationId: getWebinar
summary: Get webinar
description: |
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.
parameters:
- $ref: '#/components/parameters/organizerKey'
- $ref: '#/components/parameters/webinarKey'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/WebinarByKey'
'400':
description: Bad Request
'403':
description: Forbidden
'404':
description: Not Found
x-codeSamples:
- lang: Node + Axios
source: |-
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);
});
- lang: Shell + Curl
source: |-
curl --request GET \
--url https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D \
--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", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
- lang: Php + Http2
source: |-
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D');
$request->setRequestMethod('GET');
$request->setHeaders([
'Authorization' => 'Bearer REPLACE_BEARER_TOKEN'
]);
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $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")
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
put:
tags:
- Webinars
operationId: updateWebinar
summary: Update webinar
description: |
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.
parameters:
- $ref: '#/components/parameters/organizerKey'
- $ref: '#/components/parameters/webinarKey'
- name: notifyParticipants
in: query
description: Defines whether to send notifications to participants
required: false
schema:
type: boolean
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WebinarReqUpdate'
description: The webinar details
required: true
responses:
'202':
description: Accepted
'400':
description: Bad Request (times not valid, webinar in progress, webinar ended, etc.)
'403':
description: Forbidden
x-codeSamples:
- lang: Node + Axios
source: |-
var axios = require("axios").default;
var options = {
method: 'PUT',
url: 'https://api.getgo.com/G2W/rest/v2/organizers/%7BorganizerKey%7D/webinars/%7BwebinarKey%7D',
params: {notifyParticipants: 'SOME_BOOLEAN_VALUE'},
headers: {
Authorization: 'Bearer REPLACE_BEARER_TOKEN',
},
data: {
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}
}
}
};
axios.request(options).then(function (response) {
console.log(response.data);
}).catch(function (error) {
console.error(error);
});
- lan
# --- truncated at 32 KB (288 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/goto-webinar/refs/heads/main/openapi/_original/goto-webinar-openapi.yml