GoTo Training REST API (1.0.0)
Use the GoTo Training APIs to:
- Schedule trainings of one or more sessions
- Tailor your trainings with panelists, polls, questions and surveys
- Accept registrations
- Manage registrants and, once the training starts, attendees
- View data about historical and future webinars, registrants and attendees
Refer to GoTo Training product documentation to review the training types and product functionality.
Review call bodies and example call bodies in the API calls for alternate usage.
- Register for a GoTo Developer 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.
Operations for managing organizers. These operations are deprecated, please use the Admin API instead.
Get Organizers Deprecated
DEPRECATED: Please use the Admin API call 'Get all users' instead. For details see Admin API - Get Users.
Authorizations:
path Parameters
accountKey required | integer <int64> The key of the multi-user account |
Responses
Response Schema: application/json
organizerKey required | string The key of the training (co-)organizer |
email required | string The email address of the training (co-)organizer |
givenName required | string The (co-)organizer's first name |
surname required | string The (co-)organizer's surname |
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/G2T/rest/accounts/%7BaccountKey%7D/organizers', 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
[- {
- "organizerKey": "string",
- "email": "string",
- "givenName": "string",
- "surname": "string"
}
]
Create Training
Schedules a training of one or more sessions. You can only add organizers to a training if you have a multi-user account. Once a training has been created with this method, you can accept registrations to the training. Registration is for the entire training - all sessions. (The GoTo Training admin site enables you to create trainings that allow participants to register for individual sessions as well as automatically create weekly or monthly events.) Registration settings controls whether you allow web registration for this training, and whether a confirmation email is sent to the registrant following registration. Disabling the confirmation email is an API-only setting. If the user registers through the GoTo Training website, a confirmation email is sent. If the user is manually approved by the training administrator through the GoTo Training web site, the confirmation email is sent. It is recommended that you disable web registration if you disable confirmation emails. The response contains a trainingKey for the scheduled training.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
Request Body schema: application/json
The details of the training to create
name required | string Name of the training |
description | string Description of the training |
timeZone required | string Time zone of the training (must be a valid time zone ID). |
required | Array of objects (DateTimeRange) Array with startDate and endDate for the training sessions |
object (RegistrationSettings) Training settings, namely availability of web registration and confirmation emails to the training registrants | |
organizers | Array of integers <int64> [ items <int64 > ] List of keys of the co-organizers for this training |
Responses
Response Schema: application/json
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
{- "name": "string",
- "description": "string",
- "timeZone": "string",
- "times": [
- {
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z"
}
], - "registrationSettings": {
- "disableConfirmationEmail": true,
- "disableWebRegistration": true
}, - "organizers": [
- 0
]
}
Response samples
- 201
"string"
Get Trainings
Retrieves all scheduled trainings for a given organizer. The trainings are returned in the order in which they were created. Completed trainings are not included; ongoing trainings with past sessions are included along with the past sessions. If the organizer does not have any scheduled trainings, the response will be empty.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
Responses
Response Schema: application/json
trainingId required | string The 9-digit training's ID |
name required | string The training's subject |
description | string The training's description |
timeZone required | string The time zone where the training takes place |
required | Array of objects (DateTimeRange) Array with startDate and endDate for the training sessions |
required | Array of objects (Organizer) The list of (co-)organizers for the training |
creatorKey | string The creator's key |
required | object (RegistrationSettings) Training settings, namely availability of web registration and confirmation emails to the training registrants |
trainingKey required | string The training's unique key |
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/G2T/rest/organizers/%7BorganizerKey%7D/trainings', 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
[- {
- "trainingId": "string",
- "name": "string",
- "description": "string",
- "timeZone": "string",
- "times": [
- {
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z"
}
], - "organizers": [
- {
- "organizerKey": "string",
- "email": "string",
- "givenName": "string",
- "surname": "string"
}
], - "creatorKey": "string",
- "registrationSettings": {
- "disableConfirmationEmail": true,
- "disableWebRegistration": true
}, - "trainingKey": "string"
}
]
Get Training
Uses the organizer key and training key to retrieve information on a scheduled training.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
trainingKey required | integer <int64> The key of the training |
Responses
Response Schema: application/json
trainingId required | string The 9-digit training's ID |
name required | string The training's subject |
description | string The training's description |
timeZone required | string The time zone where the training takes place |
required | Array of objects (DateTimeRange) Array with startDate and endDate for the training sessions |
required | Array of objects (Organizer) The list of (co-)organizers for the training |
creatorKey | string The creator's key |
required | object (RegistrationSettings) Training settings, namely availability of web registration and confirmation emails to the training registrants |
trainingKey required | string The training's unique key |
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/G2T/rest/organizers/%7BorganizerKey%7D/trainings/%7BtrainingKey%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
{- "trainingId": "string",
- "name": "string",
- "description": "string",
- "timeZone": "string",
- "times": [
- {
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z"
}
], - "organizers": [
- {
- "organizerKey": "string",
- "email": "string",
- "givenName": "string",
- "surname": "string"
}
], - "creatorKey": "string",
- "registrationSettings": {
- "disableConfirmationEmail": true,
- "disableWebRegistration": true
}, - "trainingKey": "string"
}
Delete Training
Deletes a scheduled or completed training. For scheduled trainings, it deletes all scheduled sessions of the training. For completed trainings, the sessions remain in the database. No email is sent to organizers or registrants, but when participants attempt to start or join the training, they are directed to a page that states: Training Not Found: The training you are trying to join is no longer available.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
trainingKey required | integer <int64> The key of the training |
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/G2T/rest/organizers/%7BorganizerKey%7D/trainings/%7BtrainingKey%7D', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });
Get Management URL for Training
Retrieves a direct URL to the admin portal for a specific training. The request identifies the organizer and the training; the response provides a link the organizer can use to manage or launch the training in the admin portal. The training organizer will be required to log in. You can schedule and manage the training (e.g., add tests, polls and training materials) from the URL provided in the response.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
trainingKey required | integer <int64> The key of the training |
Responses
Response Schema: application/json
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/G2T/rest/organizers/%7BorganizerKey%7D/trainings/%7BtrainingKey%7D/manageUrl', 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
"string"
Update Training Name and Description
Updates a scheduled training’s name and description.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
trainingKey required | integer <int64> The key of the training |
Request Body schema: application/json
The new name and description for the training
name required | string The training's name |
description | string The training's description |
Responses
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
{- "name": "string",
- "description": "string"
}
Get Training Organizers
Retrieves organizer details for a specific training. This is only applicable to multi-user accounts with sharing enabled (co-organizers).
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
trainingKey required | integer <int64> The key of the training |
Responses
Response Schema: application/json
organizerKey required | string The key of the training (co-)organizer |
email required | string The email address of the training (co-)organizer |
givenName required | string The (co-)organizer's first name |
surname required | string The (co-)organizer's surname |
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/G2T/rest/organizers/%7BorganizerKey%7D/trainings/%7BtrainingKey%7D/organizers', 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
[- {
- "organizerKey": "string",
- "email": "string",
- "givenName": "string",
- "surname": "string"
}
]
Update Training Organizers
Replaces the co-organizers for a specific training. The scheduling organizer cannot be unassigned. Organizers will be notified via email if the notifyOrganizers parameter is set to true. Replaced organizers are not notified. This method is only applicable to multi-user accounts with sharing enabled (co-organizers).
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
trainingKey required | integer <int64> The key of the training |
Request Body schema: application/json
Details required to update the list of organizers for a training
organizers required | Array of integers <int64> [ items <int64 > ] List of keys of the organizers for the training. |
notifyOrganizers | boolean Specifies whether an email should be sent notifying of the change to the training's organizers. |
Responses
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
{- "organizers": [
- 0
], - "notifyOrganizers": true
}
Update Training Registration Settings
An API request to automatically enable or disable web registrations and confirmation emails to registrants.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
trainingKey required | integer <int64> The key of the training |
Request Body schema: application/json
The new registration settings for the training
disableConfirmationEmail required | boolean Indicates whether confirmation emails to the training registrants are disabled |
disableWebRegistration required | boolean Indicates whether the web registration for the training is disabled |
Responses
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
{- "disableConfirmationEmail": true,
- "disableWebRegistration": true
}
Get Start Url
Retrieves a URL that can be used to start a training. When this URL is opened in a web browser, the GoTo Training client will be downloaded and launched and the training will start after the organizer logs in with its credentials.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
trainingKey required | integer <int64> The key of the training |
Responses
Response Schema: application/json
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/G2T/rest/organizers/%7BorganizerKey%7D/trainings/%7BtrainingKey%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
"string"
Start Training
Returns a URL that can be used to start a training. When this URL is opened in a web browser, the GoTo Training client will be downloaded and launched and the training will start. A login of the organizer is not required.
Authorizations:
path Parameters
trainingKey required | integer <int64> The key of the training |
Responses
Response Schema: application/json
hostURL required | string The host URL that can be used to start a training |
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/G2T/rest/trainings/%7BtrainingKey%7D/start', 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
{- "hostURL": "string"
}
Update Training Times
A request to update a scheduled training's start and end times. If the request contains 'notifyTrainers = true' and 'notifyRegistrants = true', both organizers and registrants are notified. The response provides the number of notified trainers and registrants.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
trainingKey required | integer <int64> The key of the training |
Request Body schema: application/json
The new start and end times for the scheduled training
timeZone required | string Time zone of the training (must be a valid time zone ID). |
required | Array of objects (DateTimeRange) Start and end times for the training sessions |
notifyRegistrants | boolean Notify registrants via email of change to training. Default is true |
notifyTrainers | boolean Notify trainers via email of change to training. Default is true |
Responses
Response Schema: application/json
notifiedRegistrants required | integer <int32> Number of registrants notified of changes to a training |
notifiedTrainers required | integer <int32> Number of trainers notified of changes to a training |
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
{- "timeZone": "string",
- "times": [
- {
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z"
}
], - "notifyRegistrants": true,
- "notifyTrainers": true
}
Response samples
- 200
{- "notifiedRegistrants": 0,
- "notifiedTrainers": 0
}
List Tests for a Training
This API retrieves a list of tests associated with a specified training key. Optionally, a session key can be provided. The response is paginated and returns data related to each test questionnaire.
Authorizations:
path Parameters
trainingKey required | string The key for the specific training. |
query Parameters
sessionKey | string The key for the specific session. |
page | integer >= 0 Default: 0 Zero-based page index (0..N) |
size | integer [ 1 .. 200 ] Default: 20 The size of the page to be returned |
sort | Array of strings Default: ["questionnaireKey"] Items Enum: "questionnaireKey" "questionnaireVersion" Sorting criteria in the format. |
Responses
Response Schema: application/json
Array of objects (TestItem) | |
currentPage | integer |
pageSize | integer |
totalPages | integer |
totalItems | integer <int64> |
sort | Array of strings |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.goto.com/training/v1/trainings/%7BtrainingKey%7D/tests', params: { sessionKey: 'SOME_STRING_VALUE', page: 'SOME_INTEGER_VALUE', size: 'SOME_INTEGER_VALUE', sort: 'SOME_ARRAY_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
- 403
- 5XX
{- "items": [
- {
- "questionnaireKey": "Qkey",
- "questionnaireValue": "Qvalue",
- "questionnaireName": "Q Name",
- "createdBy": "10000000000001"
}
], - "currentPage": 0,
- "pageSize": 10,
- "totalPages": 1,
- "totalItems": 4,
- "sort": [
- "questionnaireKey:asc"
]
}
List Polls for a Training
This API retrieves a list of polls associated with a specified training key. Optionally, a session key can be provided. The response is paginated and returns data related to each poll questionnaire.
Authorizations:
path Parameters
trainingKey required | string The key for the specific training. |
query Parameters
sessionKey | string The key for the specific session. |
page | integer >= 0 Default: 0 Zero-based page index (0..N) |
size | integer [ 1 .. 200 ] Default: 20 The size of the page to be returned |
sort | Array of strings Default: ["questionnaireKey"] Items Enum: "questionnaireKey" "questionnaireVersion" Sorting criteria in the format. |
Responses
Response Schema: application/json
Array of objects (PollItem) | |
currentPage | integer |
pageSize | integer |
totalPages | integer |
totalItems | integer <int64> |
sort | Array of strings |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.goto.com/training/v1/trainings/%7BtrainingKey%7D/polls', params: { sessionKey: 'SOME_STRING_VALUE', page: 'SOME_INTEGER_VALUE', size: 'SOME_INTEGER_VALUE', sort: 'SOME_ARRAY_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
- 403
- 5XX
{- "items": [
- {
- "questionnaireKey": "Qkey",
- "questionnaireValue": "Qvalue",
- "questionnaireName": "Q Name",
- "createdBy": "10000000000001"
}
], - "currentPage": 0,
- "pageSize": 10,
- "totalPages": 1,
- "totalItems": 4,
- "sort": [
- "questionnaireKey:asc"
]
}
List Surveys for a Training
This API retrieves a list of surveys associated with a specified training key. Optionally, a session key can be provided. The response is paginated and returns data related to each poll questionnaire.
Authorizations:
path Parameters
trainingKey required | string The key for the specific training. |
query Parameters
sessionKey | string The key for the specific session. |
page | integer >= 0 Default: 0 Zero-based page index (0..N) |
size | integer [ 1 .. 200 ] Default: 20 The size of the page to be returned |
sort | Array of strings Default: ["questionnaireKey"] Items Enum: "questionnaireKey" "questionnaireVersion" Sorting criteria in the format. |
Responses
Response Schema: application/json
Array of objects (SurveyItem) | |
currentPage | integer |
pageSize | integer |
totalPages | integer |
totalItems | integer <int64> |
sort | Array of strings |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.goto.com/training/v1/trainings/%7BtrainingKey%7D/surveys', params: { sessionKey: 'SOME_STRING_VALUE', page: 'SOME_INTEGER_VALUE', size: 'SOME_INTEGER_VALUE', sort: 'SOME_ARRAY_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
- 403
- 5XX
{- "items": [
- {
- "questionnaireKey": "Qkey",
- "questionnaireValue": "Qvalue",
- "questionnaireName": "Q Name",
- "createdBy": "10000000000001"
}
], - "currentPage": 0,
- "pageSize": 10,
- "totalPages": 1,
- "totalItems": 4,
- "sort": [
- "questionnaireKey:asc"
]
}
Retrieve Tests Submissions for Training
This API retrieves detailed submissions data for tests based on training key, session key, questionnaire key, and version. The response is paginated and returns data related to each test item.
Authorizations:
path Parameters
trainingKey required | string The key for the specific training. |
query Parameters
sessionKey | string The key for the specific session. |
questionnaireKey | string The key for the specific test. |
questionnaireVersion | string The version of the specific test. |
page | integer >= 0 Default: 0 Zero-based page index (0..N) |
size | integer [ 1 .. 200 ] Default: 20 The size of the page to be returned |
sort | Array of strings Default: ["questionKey"] Items Enum: "questionnaireKey" "questionnaireVersion" "questionVersion" "deliveryTime" "questionKey" "questionType" "userKey" Sorting criteria in the format. |
Responses
Response Schema: application/json
Array of objects (TestSubmissionItem) | |
currentPage | integer |
pageSize | integer |
totalPages | integer |
totalItems | integer <int64> |
sort | Array of strings |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.goto.com/training/v1/trainings/%7BtrainingKey%7D/tests/submissions', params: { sessionKey: 'SOME_STRING_VALUE', questionnaireKey: 'SOME_STRING_VALUE', questionnaireVersion: 'SOME_STRING_VALUE', page: 'SOME_INTEGER_VALUE', size: 'SOME_INTEGER_VALUE', sort: 'SOME_ARRAY_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
- 403
- 5XX
{- "items": [
- {
- "questionKey": "1",
- "questionVersion": "version",
- "questionText": "Qtext",
- "questionType": "MULTIPLE_CHOICE",
- "userKey": "10000000000002",
- "deliveryTime": "PRESESSION",
- "answer": {
- "answerText": "string",
- "selectedOptions": [
- "string"
], - "isCorrect": true
}
}
], - "currentPage": 0,
- "pageSize": 10,
- "totalPages": 1,
- "totalItems": 4,
- "sort": [
- "questionnaireKey:asc"
]
}
Retrieve Polls Submissions for Training
This API retrieves detailed submissions data for polls based on training key, session key, questionnaire key, and version. The response is paginated and returns data related to each poll item.
Authorizations:
path Parameters
trainingKey required | string The key for the specific training. |
query Parameters
sessionKey | string The key for the specific session. |
questionnaireKey | string The key for the specific poll. |
questionnaireVersion | string The version of the specific poll. |
page | integer >= 0 Default: 0 Zero-based page index (0..N) |
size | integer [ 1 .. 200 ] Default: 20 The size of the page to be returned |
sort | Array of strings Default: ["questionKey"] Items Enum: "questionnaireKey" "questionnaireVersion" "questionVersion" "deliveryTime" "questionKey" "questionType" "userKey" Sorting criteria in the format. |
Responses
Response Schema: application/json
Array of objects (PollSubmissionItem) | |
currentPage | integer |
pageSize | integer |
totalPages | integer |
totalItems | integer <int64> |
sort | Array of strings |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.goto.com/training/v1/trainings/%7BtrainingKey%7D/polls/submissions', params: { sessionKey: 'SOME_STRING_VALUE', questionnaireKey: 'SOME_STRING_VALUE', questionnaireVersion: 'SOME_STRING_VALUE', page: 'SOME_INTEGER_VALUE', size: 'SOME_INTEGER_VALUE', sort: 'SOME_ARRAY_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
- 403
- 5XX
{- "items": [
- {
- "questionKey": "1",
- "questionVersion": "version",
- "questionText": "Qtext",
- "questionType": "MULTIPLE_CHOICE",
- "userKey": "10000000000002",
- "deliveryTime": "INSESSION",
- "answer": {
- "selectedOptions": [
- "string"
]
}
}
], - "currentPage": 0,
- "pageSize": 10,
- "totalPages": 1,
- "totalItems": 4,
- "sort": [
- "questionnaireKey:asc"
]
}
Retrieve Surveys Submissions for Training
This API retrieves detailed submissions data for survey based on training key, session key, questionnaire key, and version. The response is paginated and returns data related to each test item.
Authorizations:
path Parameters
trainingKey required | string The key for the specific training. |
query Parameters
sessionKey | string The key for the specific session. |
questionnaireKey | string The key for the specific survey. |
questionnaireVersion | string The version of the specific survey. |
page | integer >= 0 Default: 0 Zero-based page index (0..N) |
size | integer [ 1 .. 200 ] Default: 20 The size of the page to be returned |
sort | Array of strings Default: ["questionKey"] Items Enum: "questionnaireKey" "questionnaireVersion" "questionVersion" "deliveryTime" "questionKey" "questionType" "userKey" Sorting criteria in the format. |
Responses
Response Schema: application/json
Array of objects (SurveySubmissionItem) | |
currentPage | integer |
pageSize | integer |
totalPages | integer |
totalItems | integer <int64> |
sort | Array of strings |
Request samples
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
var axios = require("axios").default; var options = { method: 'GET', url: 'https://api.goto.com/training/v1/trainings/%7BtrainingKey%7D/surveys/submissions', params: { sessionKey: 'SOME_STRING_VALUE', questionnaireKey: 'SOME_STRING_VALUE', questionnaireVersion: 'SOME_STRING_VALUE', page: 'SOME_INTEGER_VALUE', size: 'SOME_INTEGER_VALUE', sort: 'SOME_ARRAY_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
- 403
- 5XX
{- "items": [
- {
- "questionKey": "1",
- "questionVersion": "version",
- "questionText": "Qtext",
- "questionType": "MULTIPLE_CHOICE",
- "userKey": "10000000000002",
- "deliveryTime": "POSTSESSION",
- "answer": {
- "answerText": "string",
- "selectedOptions": [
- "option1",
- "option2"
]
}
}
], - "currentPage": 0,
- "pageSize": 10,
- "totalPages": 1,
- "totalItems": 1,
- "sort": [
- "questionnaireKey:asc"
]
}
Register for Training
Registers one person, identified by a unique email address, for a training. Approval is automatic unless payment or approval is required. NOTE: If some registrants do not receive a confirmation email, the emails could be getting blocked by their email server due to spam filtering or a grey-listing setting.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
trainingKey required | integer <int64> The key of the training |
Request Body schema: application/json
The details of the registrant to create
email required | string The registrant's email address |
givenName required | string The registrant's first name |
surname required | string The registrant's surname |
Responses
Response Schema: application/json
joinUrl required | string The URL the registrant will use to join the training |
confirmationUrl required | string The URL where confirmation for the registration can be found |
registrantKey required | string The registrant's key |
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
{- "email": "string",
- "givenName": "string",
- "surname": "string"
}
Response samples
- 201
{- "joinUrl": "string",
- "confirmationUrl": "string",
- "registrantKey": "string"
}
Get Training Registrants
Retrieve registration details for all registrants of a specific training. IMPORTANT: The registrant data caches are typically updated immediately and the data will be returned in the response. However, the update can take as long as two hours.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
trainingKey required | integer <int64> The key of the training |
Responses
Response Schema: application/json
email required | string The registrant's email address |
givenName required | string The registrant's first name |
surname required | string The registrant's surname |
status required | string Enum: "WAITING" "APPROVED" "DENIED" The registrant's status |
registrationDate required | string <date-time> The date and time the registration took place |
joinUrl required | string The URL the registrant will use to join the training |
confirmationUrl required | string The URL where the confirmation for the registration can be found |
registrantKey required | string The registrant's key |
timeZone | string |
address | string The registrant's address |
city | string The registrant's city |
state | string The registrant's state |
zipCode | string The registrant's zip (post) code |
country | string The registrant's country |
phone | string The registrant's phone number |
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 |
Array of objects (CustomRegistrationResponse) Registrant's 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/G2T/rest/organizers/%7BorganizerKey%7D/trainings/%7BtrainingKey%7D/registrants', 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
[- {
- "email": "string",
- "givenName": "string",
- "surname": "string",
- "status": "WAITING",
- "registrationDate": "2019-08-24T14:15:22Z",
- "joinUrl": "string",
- "confirmationUrl": "string",
- "registrantKey": "string",
- "timeZone": "string",
- "address": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "country": "string",
- "phone": "string",
- "organization": "string",
- "jobTitle": "string",
- "questionsAndComments": "string",
- "responses": [
- {
- "question": "string",
- "answer": [
- "string"
], - "text": "string"
}
]
}
]
Get Registrant
Retrieve registration details for a specific training registrant. IMPORTANT: The registrant data caches are typically updated immediately and the data will be returned in the response. However, the update can take as long as two hours.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
trainingKey required | integer <int64> The key of the training |
registrantKey required | integer <int64> The key of the registrant |
Responses
Response Schema: application/json
email required | string The registrant's email address |
givenName required | string The registrant's first name |
surname required | string The registrant's surname |
status required | string Enum: "WAITING" "APPROVED" "DENIED" The registrant's status |
registrationDate required | string <date-time> The date and time the registration took place |
joinUrl required | string The URL the registrant will use to join the training |
confirmationUrl required | string The URL where the confirmation for the registration can be found |
registrantKey required | string The registrant's key |
timeZone | string |
address | string The registrant's address |
city | string The registrant's city |
state | string The registrant's state |
zipCode | string The registrant's zip (post) code |
country | string The registrant's country |
phone | string The registrant's phone number |
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 |
Array of objects (CustomRegistrationResponse) Registrant's 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/G2T/rest/organizers/%7BorganizerKey%7D/trainings/%7BtrainingKey%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
{- "email": "string",
- "givenName": "string",
- "surname": "string",
- "status": "WAITING",
- "registrationDate": "2019-08-24T14:15:22Z",
- "joinUrl": "string",
- "confirmationUrl": "string",
- "registrantKey": "string",
- "timeZone": "string",
- "address": "string",
- "city": "string",
- "state": "string",
- "zipCode": "string",
- "country": "string",
- "phone": "string",
- "organization": "string",
- "jobTitle": "string",
- "questionsAndComments": "string",
- "responses": [
- {
- "question": "string",
- "answer": [
- "string"
], - "text": "string"
}
]
}
Cancel Registration
Cancels a registration in a scheduled training for a specific registrant. If the registrant has paid for the training, a cancellation cannot be completed with this method; it must be completed on the external admin site. No notification is sent to the registrant or the organizer by default. The registrant can re-register if needed.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
trainingKey required | integer <int64> The key of the training |
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/G2T/rest/organizers/%7BorganizerKey%7D/trainings/%7BtrainingKey%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 Sessions by Date Range
This call returns all session details over a given date range for a given organizer. A session is a completed training event.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
Request Body schema: application/json
The start and end times for the time range over which to retrieve training sessions
startDate required | string <date-time> The starting time of an interval |
endDate required | string <date-time> The ending time of an interval |
Responses
Response Schema: application/json
sessionKey required | string The key of the training session |
trainingName required | string The subject of the training |
sessionStartTime required | string <date-time> The time the training session started |
sessionEndTime required | string <date-time> The time the training session finished |
attendanceCount required | integer <int32> The number of attendees at the training session |
duration required | integer <int32> The duration of the training session in minutes |
required | Array of objects (Organizer) The organizers of the training session. |
Request samples
- Payload
- Node + Axios
- Shell + Curl
- Python + Python3
- Php + Http2
- Ruby + Native
{- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z"
}
Response samples
- 200
[- {
- "sessionKey": "string",
- "trainingName": "string",
- "sessionStartTime": "2019-08-24T14:15:22Z",
- "sessionEndTime": "2019-08-24T14:15:22Z",
- "attendanceCount": 0,
- "duration": 0,
- "organizers": [
- {
- "organizerKey": "string",
- "email": "string",
- "givenName": "string",
- "surname": "string"
}
]
}
]
Get Attendance Details
Retrieves a list of registrants from a specific completed training session. The response includes the registrants' email addresses, and if they attended, it includes the duration of each period of their attendance in minutes, and the times at which they joined and left. If a registrant does not attend, they appear at the bottom of the listing with timeInSession = 0.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
sessionKey required | integer <int64> The key of the training session |
Responses
Response Schema: application/json
givenName required | string The attendee's first name |
surname required | string The attendee's surname |
email required | string The attendee's email address |
timeInSession required | integer <int32> The total time in minutes spent at all the parts of the training session the attendee joined |
required | Array of objects (Attendance) List of the parts of the training session the attendee joined |
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/G2T/rest/reports/organizers/%7BorganizerKey%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
[- {
- "givenName": "string",
- "surname": "string",
- "email": "string",
- "timeInSession": 0,
- "inSessionTimes": [
- {
- "joinTime": "2019-08-24T14:15:22Z",
- "leaveTime": "2019-08-24T14:15:22Z",
- "timeInPartOfSession": 0
}
]
}
]
Get Sessions By Training
Retrieves session details for a given training. A session is a completed training event. Each training may contain one or more sessions.
Authorizations:
path Parameters
organizerKey required | integer <int64> The key of the training organizer |
trainingKey required | integer <int64> The key of the training |
Responses
Response Schema: application/json
sessionKey required | string The key of the training session |
trainingName required | string The subject of the training |
sessionStartTime required | string <date-time> The time the training session started |
sessionEndTime required | string <date-time> The time the training session finished |
attendanceCount required | integer <int32> The number of attendees at the training session |
duration required | integer <int32> The duration of the training session in minutes |
required | Array of objects (Organizer) The organizers of the training 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/G2T/rest/reports/organizers/%7BorganizerKey%7D/trainings/%7BtrainingKey%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
[- {
- "sessionKey": "string",
- "trainingName": "string",
- "sessionStartTime": "2019-08-24T14:15:22Z",
- "sessionEndTime": "2019-08-24T14:15:22Z",
- "attendanceCount": 0,
- "duration": 0,
- "organizers": [
- {
- "organizerKey": "string",
- "email": "string",
- "givenName": "string",
- "surname": "string"
}
]
}
]
Get Online Recordings for Training
Retrieves all online recordings for a given training. If there are none, it returns an empty list.
Authorizations:
path Parameters
trainingKey required | integer <int64> The key of the training |
Responses
Response Schema: application/json
required | Array of objects (Recording) The list of online recordings for the training |
trainingKey required | integer <int64> The training's unique key |
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/G2T/rest/trainings/%7BtrainingKey%7D/recordings', 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
{- "recordingList": [
- {
- "recordingId": 0,
- "name": "string",
- "description": "string",
- "registrationUrl": "string",
- "downloadUrl": "string",
- "startDate": "2019-08-24T14:15:22Z",
- "endDate": "2019-08-24T14:15:22Z"
}
], - "trainingKey": 0
}
Get Download for Online Recordings
Redirects to the download of the given recording.
Authorizations:
path Parameters
trainingKey required | integer <int64> The key of the training |
recordingId required | integer <int64> the unique id of the recording |
Responses
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/G2T/rest/trainings/%7BtrainingKey%7D/recordings/%7BrecordingId%7D', headers: {Authorization: 'Bearer REPLACE_BEARER_TOKEN'} }; axios.request(options).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); });