swagger: "2.0"
schemes:
  - https
host: api.getgo.com
basePath: /G2W/rest
info:
  contact:
    email: developer-support@logmein.com
    name: Developer Support
    url: https://goto-developer.logmein.com
  description: The GoToWebinar API provides seamless integration of webinar registrant and attendee data into your existing infrastructure or third-party applications. The ability to register participants, as well as pull lists of registrants and attendees for a webinar, allows organizers to manage the flow of information between their primary applications without manual intervention.
  termsOfService: https://goto-developer.logmein.com/terms-use
  title: GoToWebinar
  version: 1.0.0
  x-origin:
    - format: swagger
      url: https://developer.citrixonline.com/sites/default/files/citrix/citrix-apis/gotowebinar.json
      version: "2.0"
  x-providerName: getgo.com
  x-serviceName: gotowebinar
consumes:
  - application/json
produces:
  - application/json
parameters:
  Authorization:
    description: Access token
    in: header
    name: Authorization
    required: true
    type: string
  accountKey:
    description: The key of the account
    format: int64
    in: path
    name: accountKey
    required: true
    type: integer
  coorganizerKey:
    description: The key of the internal or external co-organizer (memberKey)
    format: int64
    in: path
    name: coorganizerKey
    required: true
    type: integer
  organizerKey:
    description: The key of the organizer
    format: int64
    in: path
    name: organizerKey
    required: true
    type: integer
  panelistKey:
    description: The key of the webinar panelist
    format: int64
    in: path
    name: panelistKey
    required: true
    type: integer
  registrantKey:
    description: The key of the registrant
    format: int64
    in: path
    name: registrantKey
    required: true
    type: integer
  sessionKey:
    description: The key of the webinar session
    format: int64
    in: path
    name: sessionKey
    required: true
    type: integer
  webinarKey:
    description: The key of the webinar
    format: int64
    in: path
    name: webinarKey
    required: true
    type: integer
tags:
  - description: Operations available for webinars of a given organizer.
    name: Webinars
  - description: Operations available for co-organizers of a given webinar.
    name: Co-organizers
  - description: Operations available for panelists of a given webinar.
    name: Panelists
  - description: Operations available for registrants of a given webinar.
    name: Registrants
  - description: Operations available for sessions of a given webinar.
    name: Sessions
  - description: Operations available for attendees of a given webinar session.
    name: Attendees
paths:
  "/accounts/{accountKey}/webinars":
    get:
      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. For technical reasons, this call cannot be executed from this documentation. Please use the curl command to execute it.
      operationId: getAllAccountWebinars
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/accountKey"
        - description: A required start of datetime range in ISO8601 UTC format, e.g. 2015-07-13T10:00:00Z
          format: date-time
          in: query
          name: fromTime
          required: true
          type: string
        - description: A required end of datetime range in ISO8601 UTC format, e.g. 2015-07-13T22:00:00Z
          format: date-time
          in: query
          name: toTime
          required: true
          type: string
        - description: The page number to be displayed. The first page is 0.
          format: int64
          in: query
          name: page
          required: false
          type: integer
        - description: The size of the page.
          format: int64
          in: query
          name: size
          required: false
          type: integer
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/AccountWebinarsResponse"
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Get all webinars for an account
      tags:
        - Webinars
  "/organizers/{organizerKey}/historicalWebinars":
    get:
      description: Returns details for completed webinars for the specified organizer and completed webinars of other organizers where the specified organizer is a co-organizer.
      operationId: getHistoricalWebinars
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - description: A required start of datetime range in ISO8601 UTC format, e.g. 2015-07-13T10:00:00Z
          format: date-time
          in: query
          name: fromTime
          required: true
          type: string
        - description: A required end of datetime range in ISO8601 UTC format, e.g. 2015-07-13T22:00:00Z
          format: date-time
          in: query
          name: toTime
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/HistoricalWebinar"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
      summary: Get historical webinars
      tags:
        - Webinars
  "/organizers/{organizerKey}/sessions":
    get:
      description: Retrieve all completed sessions of all the webinars of a given organizer.
      operationId: getOrganizerSessions
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - description: A required start of datetime range in ISO8601 UTC format, e.g. 2015-07-13T10:00:00Z
          format: date-time
          in: query
          name: fromTime
          required: true
          type: string
        - description: A required end of datetime range in ISO8601 UTC format, e.g. 2015-07-13T22:00:00Z
          format: date-time
          in: query
          name: toTime
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/Session"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
      summary: Get organizer sessions
      tags:
        - Sessions
  "/organizers/{organizerKey}/upcomingWebinars":
    get:
      description: Returns webinars scheduled for the future for the specified organizer and webinars of other organizers where the specified organizer is a co-organizer.
      operationId: getUpcomingWebinars
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/UpcomingWebinar"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
      summary: Get upcoming webinars
      tags:
        - Webinars
  "/organizers/{organizerKey}/webinars":
    get:
      description: Returns webinars scheduled for the future for a specified organizer.
      operationId: getAllWebinars
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/Webinar"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
      summary: Get all webinars
      tags:
        - Webinars
    post:
      description: 'Creates a single session webinar, a sequence of webinars or a series of webinars depending on the type field in the body: "single_session" creates a single webinar session, "sequence" creates a webinar with multiple meeting times where attendees are expected to be the same for all sessions, and "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.'
      operationId: createWebinar
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - description: The webinar details
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/WebinarReqCreate"
      responses:
        "201":
          description: Created
          schema:
            $ref: "#/definitions/CreatedWebinar"
        "400":
          description: Bad Request
        "403":
          description: Forbidden
      summary: Create webinar
      tags:
        - Webinars
  "/organizers/{organizerKey}/webinars/{webinarKey}":
    delete:
      description: Cancels a specific webinar. If the webinar is a series or sequence, this call deletes all scheduled sessions. To send cancellation emails to registrants set sendCancellationEmails=true in the request. When the cancellation emails are sent, the default generated message is used in the cancellation email body.
      operationId: cancelWebinar
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - description: Indicates whether cancellation notice emails should be sent. The default value is false
          in: query
          name: sendCancellationEmails
          required: false
          type: boolean
      responses:
        "204":
          description: No Content
        "403":
          description: Forbidden
        "404":
          description: Not found
        "405":
          description: Method Not Allowed (Webinar is in the past)
        "409":
          description: Conflict (Webinar is in session)
      summary: Cancel webinar
      tags:
        - Webinars
    get:
      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.
      operationId: getWebinar
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/WebinarByKey"
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Get webinar
      tags:
        - Webinars
    put:
      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.
      operationId: updateWebinar
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - description: Defines whether to send notifications to participants
          in: query
          name: notifyParticipants
          required: false
          type: boolean
        - description: The webinar details
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/WebinarReqUpdate"
      responses:
        "202":
          description: Accepted
        "400":
          description: Bad Request (times not valid, webinar in progress, webinar ended, etc.)
        "403":
          description: Forbidden
      summary: Update webinar
      tags:
        - Webinars
  "/organizers/{organizerKey}/webinars/{webinarKey}/attendees":
    get:
      description: Returns all attendees for all sessions of the specified webinar.
      operationId: getAttendeesForAllWebinarSessions
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/Attendee"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Get attendees for all webinar sessions
      tags:
        - Webinars
  "/organizers/{organizerKey}/webinars/{webinarKey}/audio":
    get:
      description: Retrieves the audio/conferencing information for a specific webinar.
      operationId: getAudioInformation
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Audio"
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Get audio information
      tags:
        - Webinars
    post:
      description: Updates the audio/conferencing settings for a specific webinar
      operationId: updateAudioInformation
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - description: Defines whether to send notifications to participants
          in: query
          name: notifyParticipants
          required: false
          type: boolean
        - description: The audio/conferencing settings
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/AudioUpdate"
      responses:
        "204":
          description: No Content
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Update audio information
      tags:
        - Webinars
  "/organizers/{organizerKey}/webinars/{webinarKey}/coorganizers":
    get:
      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 GoToWebinar account are returned as external co-organizers. For those organizers no surname is returned.
      operationId: getCoorganizers
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/Coorganizer"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Get co-organizers
      tags:
        - Co-organizers
    post:
      description: Creates co-organizers for the specified webinar. For co-organizers that have a GoToWebinar 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 GoToWebinar 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'.
      operationId: createCoorganizers
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - description: The co-organizer details
          in: body
          name: body
          required: true
          schema:
            items:
              $ref: "#/definitions/CoorganizerReqCreate"
            type: array
      responses:
        "201":
          description: Created
          schema:
            items:
              $ref: "#/definitions/Coorganizer"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Create co-organizers
      tags:
        - Co-organizers
  "/organizers/{organizerKey}/webinars/{webinarKey}/coorganizers/{coorganizerKey}":
    delete:
      description: Deletes an internal co-organizer specified by the coorganizerKey (memberKey).
      operationId: deleteCoorganizer
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/coorganizerKey"
        - description: By default only internal co-organizers (with a GoToWebinar account) can be deleted. If you want to use this call for external co-organizers you have to set this parameter to 'true'.
          in: query
          name: external
          required: false
          type: boolean
      responses:
        "204":
          description: No Content (Co-organizer was deleted)
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Delete co-organizer
      tags:
        - Co-organizers
  "/organizers/{organizerKey}/webinars/{webinarKey}/coorganizers/{coorganizerKey}/resendInvitation":
    post:
      description: Resends an invitation email to the specified co-organizer
      operationId: resendCoorganizerInvitation
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/coorganizerKey"
        - description: By default only internal co-organizers (with a GoToWebinar 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'.
          in: query
          name: external
          required: false
          type: boolean
      responses:
        "204":
          description: No Content (Invitation email was sent)
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Resend invitation
      tags:
        - Co-organizers
  "/organizers/{organizerKey}/webinars/{webinarKey}/meetingtimes":
    get:
      description: Retrieves the meeting times for a webinar.
      operationId: getWebinarMeetingTimes
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/DateTimeRange"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Get webinar meeting times
      tags:
        - Webinars
  "/organizers/{organizerKey}/webinars/{webinarKey}/panelists":
    get:
      description: Retrieves all the panelists for a specific webinar.
      operationId: getPanelists
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/Panelist"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Get webinar panelists
      tags:
        - Panelists
    post:
      description: Create panelists for a specified webinar
      operationId: createPanelists
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - description: Array of panelists
          in: body
          name: body
          required: true
          schema:
            items:
              $ref: "#/definitions/PanelistReqCreate"
            type: array
      responses:
        "201":
          description: Created
          schema:
            items:
              $ref: "#/definitions/CreatedPanelist"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Create Panelists
      tags:
        - Panelists
  "/organizers/{organizerKey}/webinars/{webinarKey}/panelists/{panelistKey}":
    delete:
      description: Removes a webinar panelist.
      operationId: deleteWebinarPanelist
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/panelistKey"
      responses:
        "204":
          description: No content
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Delete webinar panelist
      tags:
        - Panelists
  "/organizers/{organizerKey}/webinars/{webinarKey}/panelists/{panelistKey}/resendInvitation":
    post:
      description: Resend the panelist invitation email.
      operationId: resendPanelistInvitation
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/panelistKey"
      responses:
        "204":
          description: Created
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Resend panelist invitation
      tags:
        - Panelists
  "/organizers/{organizerKey}/webinars/{webinarKey}/performance":
    get:
      description: Gets performance details for all sessions of a specific webinar.
      operationId: getPerformanceForAllWebinarSessions
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
      responses:
        "200":
          description: OK
          schema:
            additionalProperties:
              $ref: "#/definitions/SessionPerformance"
            description: Describes performance details for webinars
            type: object
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Get performance for all webinar sessions
      tags:
        - Webinars
  "/organizers/{organizerKey}/webinars/{webinarKey}/registrants":
    get:
      description: Retrieve registration details for all registrants of a specific webinar. Registrant details will not include all fields captured when creating the registrant. To see all data, use the API call 'Get Registrant'. Registrants can have one of the following states; <br>WAITING - registrant registered and is awaiting approval (where organizer has required approval), <br>APPROVED - registrant registered and is approved, and <br>DENIED - registrant registered and was denied.
      operationId: getAllRegistrantsForWebinar
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/Registrant"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Get registrants
      tags:
        - Registrants
    post:
      description: "Register an attendee for a scheduled webinar. The response contains the registrantKey and join URL for the registrant. An email will be sent to the registrant unless the organizer turns off the confirmation email setting from the GoToWebinar website. Please note that you must provide all required fields including custom fields defined during the webinar creation. Use the API call 'Get registration fields' to get a list of all fields, if they are required, and their possible values. At this time there are two versions of the 'Create Registrant' call. The first version only accepts firstName, lastName, and email and ignores all other fields. If you have custom fields or want to capture additional information this version won't work for you. The second version allows you to pass all required and optional fields, including custom fields defined when creating the webinar. To use the second version you must pass the header value 'Accept: application/vnd.citrix.g2wapi-v1.1+json' instead of 'Accept: application/json'. Leaving this header out results in the first version of the API call."
      operationId: createRegistrant
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - description: Set to 'application/vnd.citrix.g2wapi-v1.1+json' to make a registration using fields (custom or default) additional to the basic ones.
          in: header
          name: Accept
          required: false
          type: string
        - description: Indicates whether the confirmation email should be resent when a registrant is re-registered. The default value is false.
          in: query
          name: resendConfirmation
          required: false
          type: boolean
        - description: The registrant details. To get all possible values run the API call 'Get registration fields' which is also part of this documentation.
          in: body
          name: body
          required: true
          schema:
            $ref: "#/definitions/RegistrantFields"
      responses:
        "201":
          description: Created
          schema:
            $ref: "#/definitions/RegistrantCreated"
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
        "409":
          description: The user is already registered
      summary: Create registrant
      tags:
        - Registrants
  "/organizers/{organizerKey}/webinars/{webinarKey}/registrants/fields":
    get:
      description: Retrieve required, optional registration, and custom questions for a specified webinar.
      operationId: getRegistrationFields
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/RegistrationFields"
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Get registration fields
      tags:
        - Registrants
  "/organizers/{organizerKey}/webinars/{webinarKey}/registrants/{registrantKey}":
    delete:
      description: Removes a webinar registrant from current registrations for the specified webinar. The webinar must be a scheduled, future webinar.
      operationId: deleteRegistrant
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/registrantKey"
      responses:
        "204":
          description: No content
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Delete registrant
      tags:
        - Registrants
    get:
      description: Retrieve registration details for a specific registrant.
      operationId: getRegistrant
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/registrantKey"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/RegistrantDetailed"
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Get registrant
      tags:
        - Registrants
  "/organizers/{organizerKey}/webinars/{webinarKey}/sessions":
    get:
      description: Retrieves details for all past sessions of a specific webinar.
      operationId: getAllSessions
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/Session"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Get webinar sessions
      tags:
        - Sessions
  "/organizers/{organizerKey}/webinars/{webinarKey}/sessions/{sessionKey}":
    get:
      description: Retrieves attendance details for a specific webinar session that has ended. If attendees attended the session ('registrantsAttended'), specific attendance details, such as attendenceTime for a registrant, will also be retrieved. For technical reasons, this call cannot be executed from this documentation. Please use the curl command to execute it.
      operationId: getWebinarSession
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/sessionKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/Attendee"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Get webinar session
      tags:
        - Sessions
  "/organizers/{organizerKey}/webinars/{webinarKey}/sessions/{sessionKey}/attendees":
    get:
      description: Retrieve details for all attendees of a specific webinar session. For technical reasons, this call cannot be executed from this documentation. Please use the curl command to execute it.
      operationId: getAttendees
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/sessionKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/Attendee"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Get session attendees
      tags:
        - Attendees
  "/organizers/{organizerKey}/webinars/{webinarKey}/sessions/{sessionKey}/attendees/{registrantKey}":
    get:
      description: Retrieve registration details for a particular attendee of a specific webinar session. For technical reasons, this call cannot be executed from this documentation. Please use the curl command to execute it.
      operationId: getAttendee
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/sessionKey"
        - $ref: "#/parameters/registrantKey"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Registrant"
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Get attendee
      tags:
        - Attendees
  "/organizers/{organizerKey}/webinars/{webinarKey}/sessions/{sessionKey}/attendees/{registrantKey}/polls":
    get:
      description: Get poll answers from a particular attendee of a specific webinar session. For technical reasons, this call cannot be executed from this documentation. Please use the curl command to execute it.
      operationId: getAttendeePollAnswers
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/sessionKey"
        - $ref: "#/parameters/registrantKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/PollAnswer"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Get attendee poll answers
      tags:
        - Attendees
  "/organizers/{organizerKey}/webinars/{webinarKey}/sessions/{sessionKey}/attendees/{registrantKey}/questions":
    get:
      description: Get questions asked by an attendee during a webinar session. For technical reasons, this call cannot be executed from this documentation. Please use the curl command to execute it.
      operationId: getAttendeeQuestions
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/sessionKey"
        - $ref: "#/parameters/registrantKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/AttendeeQuestion"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Get attendee questions
      tags:
        - Attendees
  "/organizers/{organizerKey}/webinars/{webinarKey}/sessions/{sessionKey}/attendees/{registrantKey}/surveys":
    get:
      description: Retrieve survey answers from a particular attendee during a webinar session. For technical reasons, this call cannot be executed from this documentation. Please use the curl command to execute it.
      operationId: getAttendeeSurveyAnswers
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/sessionKey"
        - $ref: "#/parameters/registrantKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/PollAnswer"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not found
      summary: Get attendee survey answers
      tags:
        - Attendees
  "/organizers/{organizerKey}/webinars/{webinarKey}/sessions/{sessionKey}/performance":
    get:
      description: Get performance details for a session. For technical reasons, this call cannot be executed from this documentation. Please use the curl command to execute it.
      operationId: getPerformance
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/sessionKey"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/SessionPerformance"
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Get session performance
      tags:
        - Sessions
  "/organizers/{organizerKey}/webinars/{webinarKey}/sessions/{sessionKey}/polls":
    get:
      description: Retrieve all collated attendee questions and answers for polls from a specific webinar session. For technical reasons, this call cannot be executed from this documentation. Please use the curl command to execute it.
      operationId: getPolls
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/sessionKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/Poll"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Get session polls
      tags:
        - Sessions
  "/organizers/{organizerKey}/webinars/{webinarKey}/sessions/{sessionKey}/questions":
    get:
      description: Retrieve questions and answers for a past webinar session. For technical reasons, this call cannot be executed from this documentation. Please use the curl command to execute it.
      operationId: getQuestions
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/sessionKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/AttendeeQuestion"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Get session questions
      tags:
        - Sessions
  "/organizers/{organizerKey}/webinars/{webinarKey}/sessions/{sessionKey}/surveys":
    get:
      description: Retrieve surveys for a past webinar session. For technical reasons, this call cannot be executed from this documentation. Please use the curl command to execute it.
      operationId: getSurveys
      parameters:
        - $ref: "#/parameters/Authorization"
        - $ref: "#/parameters/organizerKey"
        - $ref: "#/parameters/webinarKey"
        - $ref: "#/parameters/sessionKey"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/Poll"
            type: array
        "400":
          description: Bad Request
        "403":
          description: Forbidden
        "404":
          description: Not Found
      summary: Get session surveys
      tags:
        - Sessions
definitions:
  AccessCodes:
    description: Describes the access codes for organizer, panelists and attendees
    properties:
      attendee:
        description: Access code for attendees
        type: string
      organizer:
        description: Access code for the organizer
        type: string
      panelist:
        description: Access code for panelists
        type: string
    required:
      - organizer
      - panelist
      - attendee
  AccountWebinar:
    description: Describes a webinar for an account within a given date range.
    properties:
      description:
        description: A short description of the webinar
        type: string
      impromptu:
        description: A boolean flag indicating if the webinar type is impromptu
        type: boolean
      isPasswordProtected:
        default: false
        description: A boolean flag indicating if the webinar is password protected
        type: boolean
      organizerKey:
        description: The key of the webinar organizer
        type: string
      registrationUrl:
        description: The URL the webinar invitees can use to register
        type: string
      subject:
        description: The webinar subject
        type: string
      timeZone:
        description: The timezone where the webinar is taking place
        type: string
      times:
        description: Array with startTime and endTime for the webinar sessions
        items:
          $ref: "#/definitions/DateTimeRange"
        type: array
      type:
        default: single_session
        description: Specifies the webinar type
        type: string
      webinarID:
        description: The 9-digit webinar ID
        type: string
      webinarKey:
        description: The unique key of the webinar
        type: string
    required:
      - webinarKey
      - webinarID
      - subject
      - description
      - times
      - timeZone
      - organizerKey
      - registrationUrl
      - impromptu
      - isPasswordProtected
      - type
  AccountWebinars:
    description: ""
    properties:
      webinars:
        items:
          $ref: "#/definitions/AccountWebinar"
        type: array
    required:
      - webinars
  AccountWebinarsResponse:
    description: Describes a list of webinars for an account within a given date range
    properties:
      _embedded:
        $ref: "#/definitions/AccountWebinars"
        description: The webinars array for an account within a given date range
        type: object
      page:
        $ref: "#/definitions/page"
        description: The webinars page description. The first page is 0
        type: object
    required:
      - _embedded
      - page
  AnswerToAttendeeQuestion:
    description: Describes an answer to a question asked by an attendee during a webinar session.
    properties:
      answer:
        description: An answer given to a question asked by an attendee during a webinar session
        type: string
      answeredBy:
        description: The key of the organizer that answered the attendee's question
        type: string
    required:
      - answer
      - answeredBy
  Attendance:
    description: Describes the times the attendee joined and left a webinar session.
    properties:
      joinTime:
        description: The time the attendee joined a webinar session
        format: date-time
        type: string
      leaveTime:
        description: The time the attendee left a webinar session
        format: date-time
        type: string
    required:
      - joinTime
      - leaveTime
  AttendanceStatistics:
    description: Describes attendance metrics for a webinar session.
    properties:
      averageAttendanceTimeSeconds:
        description: Average attendance time in seconds
        format: float
        type: number
      averageAttentiveness:
        description: Average based on the focus of the attendees Viewer during the webinar session
        format: float
        type: number
      averageInterestRating:
        description: Numerical value 1-100 (100 being most interested) indicating the average interest rating of the webinar attendees
        format: float
        type: number
      percentageAttendance:
        description: The percentage of registrants that actually attended the webinar session
        format: float
        type: number
      registrantCount:
        description: The number of registrations for the webinar
        format: int32
        type: integer
    required:
      - registrantCount
      - percentageAttendance
      - averageInterestRating
      - averageAttentiveness
      - averageAttendanceTimeSeconds
  Attendee:
    description: Describes the attendee of a webinar
    properties:
      attendance:
        description: The list of times the attendee joined and left the webinar session
        items:
          $ref: "#/definitions/Attendance"
        type: array
      attendanceTimeInSeconds:
        description: The total attendance time in seconds
        format: int64
        type: integer
      email:
        description: The attendee's email address
        type: string
      firstName:
        description: The attendee's first name
        type: string
      lastName:
        description: The attendee's last name
        type: string
      registrantKey:
        description: The key of the webinar attendee
        format: int64
        type: integer
      sessionKey:
        description: The unique key of the webinar session
        format: int64
        type: integer
    required:
      - registrantKey
      - firstName
      - lastName
      - email
      - attendanceTimeInSeconds
      - attendance
      - sessionKey
  AttendeeQuestion:
    description: Describes the question asked by an attendee during a webinar session; includes the answers given to it.
    properties:
      answers:
        description: Answer to a question of an attendee and key of the organizer that answered
        items:
          $ref: "#/definitions/AnswerToAttendeeQuestion"
        type: array
      askedBy:
        description: The email address of the attendee that asked the question
        type: string
      question:
        description: The question asked by the attendee
        type: string
    required:
      - answers
      - question
      - askedBy
  Audio:
    description: Describes the audio/conferencing information for a webinar.
    properties:
      confCallNumbers:
        additionalProperties:
          $ref: "#/definitions/CallNumbers"
        description: "The conference call numbers and access codes per country. This will be returned only, if 'type' is not set to 'Private'. Example for this object: \"confCallNumbers\":{\"CA\":{\"accessCodes\":{\"attendee\":\"159-309-045\",\"organizer\":\"791-426-085\",\"panelist\":\"690-270-339\"},\"tollFree\":\"1 888 455 4198\"},\"FI\":{\"accessCodes\":{\"attendee\":\"159-309-045\",\"organizer\":\"791-426-085\",\"panelist\":\"690-270-339\"},\"toll\":\"+358 (0) 338 79 4198\"},\"US\":{\"accessCodes\":{\"attendee\":\"159-309-045\",\"organizer\":\"791-426-085\",\"panelist\":\"690-270-339\"},\"toll\":\"+1 (805) 879-4198\",\"tollFree\":\"1 888 455 4198\"}}"
        type: object
      privateInfo:
        $ref: "#/definitions/PrivateInfo"
        description: Phone numbers for an own conference call service
        type: object
      type:
        $ref: "#/definitions/AudioType"
        description: Indicates how to connect to the webinar's audio conference. The value of this field determines if other fields appear in the response or not
    required:
      - type
  AudioType:
    description: How to connect to the webinar's audio conference
    enum:
      - PSTN
      - VOIP
      - Hybrid
      - Private
    type: string
  AudioUpdate:
    description: Defines the audio/conferencing settings for the specified webinar
    properties:
      privateInfo:
        $ref: "#/definitions/PrivateInfoUpdate"
        description: Defines the audio data for an own conferencing system
        type: object
      pstnInfo:
        $ref: "#/definitions/PstnInfoUpdate"
        description: Defines via two-letter Alpha-2-code which toll and toll-free PSTN numbers are available per country
        type: object
      type:
        $ref: "#/definitions/AudioType"
        description: Indicates how to connect to the webinar's audio conference
    required:
      - type
  CallNumbers:
    description: Conference call numbers per country.
    properties:
      accessCodes:
        $ref: "#/definitions/AccessCodes"
        description: Describes the access codes for organizer, panelists and attendees.
      toll:
        description: Conference number for toll calls.
        type: string
      tollFree:
        description: Conference number for toll-free calls.
        type: string
    required:
      - accessCodes
      - toll
  Coorganizer:
    description: Describes a webinar co-organizer. A co-organizer without a GoToWebinar account is marked as external and is returned without a surname
    properties:
      email:
        description: The co-organizer's email address
        type: string
      external:
        description: If the co-organizer has no GoToWebinar account, this value is set to 'true'
        type: boolean
      givenName:
        description: The co-organizer's given name
        type: string
      joinLink:
        description: The co-organizer's join link
        type: string
      memberKey:
        description: The co-organizer's organizer key. A new member key is created for external co-organizers
        type: string
      surname:
        description: The co-organizer's surname. For external co-organizers this parameter is not returned
        type: string
    required:
      - joinLink
      - email
      - memberKey
      - external
      - surname
      - givenName
  CoorganizerReqCreate:
    description: "Details used for creating a co-organizer for a webinar. "
    properties:
      email:
        description: The co-organizer's email address. This parameter has to be passed only, if 'external' is set to 'true'
        type: string
      external:
        description: If the co-organizer has no GoToWebinar account, this value has to be set to 'true'
        type: boolean
      givenName:
        description: The co-organizer's given name. This parameter has to be passed only, if 'external' is set to 'true'
        type: string
      organizerKey:
        description: The co-organizer's organizer key. This parameter has to be passed only, if 'external' is set to 'false'
        type: string
    required:
      - external
  CreatedPanelist:
    description: Describes a created panelist
    properties:
      email:
        description: The panelist's email address
        type: string
      joinLink:
        description: The panelist's join link
        type: string
      name:
        description: The panelist's name
        type: string
      panelistKey:
        description: The panelist's key
        type: string
    required:
      - name
      - email
      - joinLink
      - panelistKey
  CreatedWebinar:
    description: Describes a newly created webinar.
    properties:
      webinarKey:
        description: The unique key of the webinar.
        type: string
    required:
      - webinarKey
  CustomAnswers:
    description: Answers to custom questions of the registrant
    properties:
      answer:
        description: Answer to a custom question when registering
        type: string
      question:
        description: Custom question for registering
        type: string
    required:
      - answer
      - question
  DateTimeRange:
    description: A pair of DateTime values, the first of which serves as a start time and the second as an end time of an interval.
    properties:
      endTime:
        description: The ending time of an interval, e.g. 2015-07-13T22:00:00Z
        format: date-time
        type: string
      startTime:
        description: The starting time of an interval, e.g. 2015-07-13T10:00:00Z
        format: date-time
        type: string
    required:
      - startTime
      - endTime
  HistoricalWebinar:
    description: Describes a completed webinar
    properties:
      description:
        description: A short description of the webinar
        type: string
      organizerKey:
        description: The key of the webinar organizer
        format: int64
        type: integer
      subject:
        description: The webinar subject
        type: string
      timeZone:
        description: The timezone where the webinar is taking place
        type: string
      times:
        description: Array with startTime and endTime for the webinar sessions
        items:
          $ref: "#/definitions/DateTimeRange"
        type: array
      webinarID:
        description: The 9-digit webinar ID
        type: string
      webinarKey:
        description: The unique key of the webinar
        format: int64
        type: integer
    required:
      - times
      - description
      - subject
      - organizerKey
      - webinarKey
      - webinarID
      - timeZone
  Panelist:
    description: Describes a webinar session panelist
    properties:
      email:
        description: The panelist's email address
        type: string
      firstName:
        description: DEPRECATED. The fields 'firstName' and 'lastName' are replaced by the field 'name'
        type: string
      joinLink:
        description: The co-organizer's join link
        type: string
      lastName:
        description: DEPRECATED. The fields 'firstName' and 'lastName' are replaced by the field 'name'
        type: string
      name:
        description: The panelist's name
        type: string
      panelistId:
        description: The panelist's ID
        format: int64
        type: integer
    required:
      - joinLink
      - lastName
      - email
      - name
      - panelistId
      - firstName
  PanelistReqCreate:
    description: Describes a single panelist
    properties:
      email:
        description: The panelist's email address
        type: string
      name:
        description: The panelist's name
        type: string
    required:
      - email
      - name
  Poll:
    description: A poll or survey launched by an organizer during or after a webinar session; includes the responses given to it by the attendees.
    properties:
      numberOfResponses:
        description: The total number of responses received for this poll or survey
        format: int32
        type: integer
      question:
        description: The poll or survey question asked by the webinar organizer
        type: string
      responses:
        description: The responses given by the attendees to the poll or survey
        items:
          $ref: "#/definitions/PollResponse"
        type: array
    required:
      - responses
      - question
      - numberOfResponses
  PollAnswer:
    description: Describes the answer given by a webinar attendee to a poll or survey launched by an organizer.
    properties:
      answer:
        description: The answer given to the poll or survey question
        type: string
      question:
        description: The poll or survey question
        type: string
    required:
      - answer
      - question
  PollResponse:
    description: One of the potential responses/options to a poll or survey launched by an organizer during a webinar session.
    properties:
      percentage:
        description: The percentage of responses that favored this particular option
        format: float
        maximum: 100
        minimum: 0
        type: number
      text:
        description: The text of the response/option to a poll or survey
        type: string
    required:
      - text
      - percentage
  PollsAndSurveysStatistics:
    description: Details on the polls and surveys for a webinar session.
    properties:
      percentagePollsCompleted:
        description: The percentage of polls completed by the attendees
        format: float
        type: number
      percentageSurveysCompleted:
        description: The percentage of surveys completed by the attendees
        format: float
        type: number
      pollCount:
        description: The number of polls launched at a webinar session
        format: int32
        type: integer
      questionsAsked:
        description: The number of questions asked at a webinar session
        format: int32
        type: integer
      surveyCount:
        description: The percentage of surveys launched at a webinar session
        format: float
        type: number
    required:
      - pollCount
      - surveyCount
      - questionsAsked
      - percentagePollsCompleted
      - percentageSurveysCompleted
  PrivateInfo:
    description: Phone numbers for an own conference call service.
    properties:
      attendee:
        description: Text for the panelist when using an own conference call service
        type: string
      organizer:
        description: Text for the organizer when using an own conference call service
        type: string
      panelist:
        description: Text for the panelist when using an own conference call service
        type: string
    required:
      - attendee
  PrivateInfoUpdate:
    description: Defines the audio data for an own conferencing system
    properties:
      attendee:
        description: Attendee phone number for own conference call system
        type: string
      organizer:
        description: Organizer phone number for own conference call system
        type: string
      panelist:
        description: Panelist phone number for own conference call system
        type: string
    required:
      - attendee
  PstnInfoUpdate:
    description: Defines the audio/conferencing settings for the specified webinar. It required to pass 'tollFreeCountries' or 'tollCountries' or both.
    properties:
      tollCountries:
        description: Defines in which countries toll PSTN numbers are available. Possible values are AT, AU, BE, CA, CH, DE, DK, ES, FI, FR, GB, IE, IT, NL, NO, NZ, SE, US
        items:
          $ref: "#/definitions/TollCountries"
        type: array
      tollFreeCountries:
        description: Defines in which countries toll free PSTN numbers are available. Possible values are AE, AR, AT, AU, BE, BG, BH, BR, BY, CA, CH, CL, CN, CO, CZ, DE, DK, ES, FI, FR, GB, GR, HK, HU, ID, IE, IL, IN, IS, IT, JP, KR, LU, MX, MY, NL, NO, NZ, PA, PE, PH, PL, PT, RO, RU, SA, SE, SG, TH, TR, TW, UA, US, UY, VN, ZA
        items:
          $ref: "#/definitions/TollFreeCountries"
        type: array
  Registrant:
    description: Describes a webinar registrant
    properties:
      email:
        description: The registrant's email address
        type: string
      firstName:
        description: The registrant's first name
        type: string
      joinUrl:
        description: The URL the registrant will use to join the webinar
        type: string
      lastName:
        description: The registrant's last name
        type: string
      registrantKey:
        description: The registrant's key
        format: int64
        type: integer
      registrationDate:
        description: The registration date and time
        format: date-time
        type: string
      status:
        description: The registration status
        enum:
          - APPROVED
          - DENIED
          - WAITING
        type: string
      timeZone:
        description: The time zone where the webinar will take place
        type: string
    required:
      - lastName
      - email
      - firstName
      - registrantKey
      - registrationDate
      - status
      - joinUrl
      - timeZone
  RegistrantCreated:
    description: Describes a newly created webinar registrant.
    properties:
      joinUrl:
        description: The URL the registrant will use to join the webinar.
        type: string
      registrantKey:
        description: The registrant's key
        format: int64
        type: integer
    required:
      - registrantKey
      - joinUrl
  RegistrantDetailed:
    description: Detailed description of a webinar registrant with all registration fields.
    properties:
      address:
        description: The registrant's address
        type: string
      city:
        description: The registrant's city
        type: string
      country:
        description: The registrant's country
        type: string
      email:
        description: The registrant's email address
        type: string
      employeeCount:
        description: The size in employees of the registrant's organization
        type: string
      firstName:
        description: The registrant's first name
        type: string
      implementationTimeFrame:
        description: The time frame within which the product will be purchased
        type: string
      industry:
        description: The type of industry the registrant's organization belongs to
        type: string
      jobTitle:
        description: The registrant's job title
        type: string
      joinUrl:
        description: The URL the registrant will use to join the webinar
        type: string
      lastName:
        description: The registrant's last name
        type: string
      numberOfEmployees:
        description: The size in employees of the registrant's organization
        type: string
      organization:
        description: The registrant's organization
        type: string
      phone:
        description: The registrant's phone
        type: string
      purchasingRole:
        description: The registrant's role in purchasing the product
        type: string
      purchasingTimeFrame:
        description: The time frame within which the product will be purchased
        type: string
      questionsAndComments:
        description: Any questions or comments the registrant made at the time of registration
        type: string
      registrantKey:
        description: The registrant's key
        format: int64
        type: integer
      registrationDate:
        description: The registration date and time
        format: date-time
        type: string
      responses:
        description: Responses to custom questions
        items:
          $ref: "#/definitions/CustomAnswers"
        type: array
      source:
        description: The source that led to the registration. This can be any string like 'Newsletter 123' or 'Marketing campaign ABC'
        type: string
      state:
        description: The registrant's state (US only)
        type: string
      status:
        description: The registration status
        enum:
          - APPROVED
          - DENIED
          - WAITING
        type: string
      timeZone:
        description: The time zone where the webinar will take place
        type: string
      type:
        description: The type is REGULAR for 'One session' and 'Sequence' webinars. For webinar series this parameter is not passed
        enum:
          - REGULAR
        type: string
      unsubscribed:
        description: Indicates whether the registrant opted-out from receiving other emails from this webinar's organizer
        type: boolean
      zipCode:
        description: The registrant's zip (post) code
        type: string
    required:
      - firstName
      - lastName
      - email
      - registrantKey
      - registrationDate
      - status
      - joinUrl
      - timeZone
  RegistrantFields:
    description: Detailed description of a all fields to register a registrant for a webinar.
    properties:
      address:
        description: The registrant's address
        type: string
      city:
        description: The registrant's city
        type: string
      country:
        description: The registrant's country
        type: string
      email:
        description: The registrant's email address
        type: string
      firstName:
        description: The registrant's first name
        type: string
      industry:
        description: The type of industry the registrant's organization belongs to
        type: string
      jobTitle:
        description: The registrant's job title
        type: string
      lastName:
        description: The registrant's last name
        type: string
      numberOfEmployees:
        description: The size in employees of the registrant's organization
        type: string
      organization:
        description: The registrant's organization
        type: string
      phone:
        description: The registrant's phone
        type: string
      purchasingRole:
        description: The registrant's role in purchasing the product
        type: string
      purchasingTimeFrame:
        description: The time frame within which the product will be purchased
        type: string
      questionsAndComments:
        description: Any questions or comments the registrant made at the time of registration
        type: string
      responses:
        description: Set the answers of all questions
        items:
          $ref: "#/definitions/RegistrantQAResponse"
        type: array
      source:
        description: The source that led to the registration. This can be any string like 'Newsletter 123' or 'Marketing campaign ABC'
        type: string
      state:
        description: The registrant's state (US only)
        type: string
      zipCode:
        description: The registrant's zip (post) code
        type: string
    required:
      - firstName
      - lastName
      - email
  RegistrantQAResponse:
    description: "Describes a completed registration question for a webinar registrant. If you use 'Multiple choice' questions the response contains the numeric answerKey, otherwise the answer text. Example:<br>{<br>  \"firstName\": \"First\",<br>  \"lastName\": \"Last\",<br>  \"email\": \"First.Last@example.com\",<br>  \"responses\": [{<br>      \"questionKey\": 17023549,<br>      \"responseText\": \"This is a short answer\"},{<br>      \"questionKey\": 17023550,<br>      \"answerKey\": 17023553}  ]<br>}"
    properties:
      answerKey:
        description: The numeric key of the answer to a multiple-choice question.
        format: int64
        type: integer
      questionKey:
        description: The unique key of the question
        format: int64
        type: integer
      responseText:
        description: Answer of the question.
        type: string
    required:
      - questionKey
  RegistrationAnswer:
    description: Describes an answer to a multiple choice custom registration field.
    properties:
      answer:
        description: The answer value
        type: string
      answerKey:
        description: The answer key
        format: int64
        type: integer
    required:
      - answer
      - answerKey
  RegistrationField:
    description: Describes a field for a webinar registration.
    properties:
      answers:
        description: List of choices for a multiple choice registration field
        items:
          type: string
        type: array
      field:
        description: The name of the registration field
        type: string
      maxSize:
        description: The character size of the custom registration field (max 128)
        format: int32
        type: integer
      required:
        description: Indicates whether the custom registration field is compulsory
        type: boolean
    required:
      - field
      - required
      - maxSize
  RegistrationFields:
    description: The fields to be completed on the webinar registration form.
    properties:
      fields:
        description: The default fields the organizer has selected for the webinar registration form
        items:
          $ref: "#/definitions/RegistrationField"
        type: array
      questions:
        description: Custom fields created by the organizer for the webinar registration form
        items:
          $ref: "#/definitions/RegistrationQuestion"
        type: array
    required:
      - questions
      - fields
  RegistrationQuestion:
    description: Describes a custom field for a webinar registration.
    properties:
      answers:
        description: The answers to a multiple choice custom registration field
        items:
          $ref: "#/definitions/RegistrationAnswer"
        type: array
      maxSize:
        description: The character size of the custom registration field (max 1000)
        format: int32
        type: integer
      question:
        description: The value (text) of the custom registration field
        type: string
      questionKey:
        description: The unique key of the custom registration field
        format: int64
        type: integer
      required:
        description: Indicates whether the custom registration field is compulsory
        type: boolean
      type:
        description: Indicates whether the custom registration field requires a single short answer or whether it is a multiple choice question
        enum:
          - multipleChoice
          - shortAnswer
        type: string
    required:
      - questionKey
      - question
      - required
      - type
      - maxSize
  Session:
    description: Describes a completed webinar session.
    properties:
      endTime:
        description: The ending time of the webinar session
        format: date-time
        type: string
      registrantsAttended:
        description: The number of registrants who attended the webinar session
        format: int32
        type: integer
      sessionKey:
        description: The unique key of the webinar session
        format: int64
        type: integer
      startTime:
        description: The starting time of the webinar session
        format: date-time
        type: string
      webinarID:
        description: The 9-digit webinar ID
        type: string
      webinarKey:
        description: The unique key of the webinar
        format: int64
        type: integer
    required:
      - startTime
      - registrantsAttended
      - webinarKey
      - webinarID
      - sessionKey
      - endTime
  SessionPerformance:
    description: Describes performance details for webinar sessions
    properties:
      attendance:
        $ref: "#/definitions/AttendanceStatistics"
        description: Attendance statistics for a webinar session
      pollsAndSurveys:
        $ref: "#/definitions/PollsAndSurveysStatistics"
        description: Polls and surveys for a webinar session
    required:
      - attendance
      - pollsAndSurveys
  TollCountries:
    description: Defines in which countries toll PSTN numbers are available.
    enum:
      - AT
      - AU
      - BE
      - CA
      - CH
      - DE
      - DK
      - ES
      - FI
      - FR
      - GB
      - IE
      - IT
      - NL
      - NO
      - NZ
      - SE
      - US
    type: string
  TollFreeCountries:
    description: Countries in which toll free PSTN numbers are available.
    enum:
      - AE
      - AR
      - AT
      - AU
      - BE
      - BG
      - BH
      - BR
      - BY
      - CA
      - CH
      - CL
      - CN
      - CO
      - CZ
      - DE
      - DK
      - ES
      - FI
      - FR
      - GB
      - GR
      - HK
      - HU
      - ID
      - IE
      - IL
      - IN
      - IS
      - IT
      - JP
      - KR
      - LU
      - MX
      - MY
      - NL
      - NO
      - NZ
      - PA
      - PE
      - PH
      - PL
      - PT
      - RO
      - RU
      - SA
      - SE
      - SG
      - TH
      - TR
      - TW
      - UA
      - US
      - UY
      - VN
      - ZA
    type: string
  UpcomingWebinar:
    description: Describes a scheduled webinar
    properties:
      description:
        description: A short description of the webinar
        type: string
      inSession:
        description: Indicates whether there is a webinar session currently in progress
        type: boolean
      organizerKey:
        description: The key of the webinar organizer
        format: int64
        type: integer
      registrationUrl:
        description: The URL the webinar invitees can use to register
        type: string
      subject:
        description: The webinar subject
        type: string
      timeZone:
        description: The timezone where the webinar is taking place
        type: string
      times:
        description: Array with startTime and endTime for the webinar sessions
        items:
          $ref: "#/definitions/DateTimeRange"
        type: array
      webinarID:
        description: The 9-digit webinar ID
        type: string
      webinarKey:
        description: The unique key of the webinar
        format: int64
        type: integer
    required:
      - times
      - description
      - subject
      - inSession
      - organizerKey
      - webinarKey
      - webinarID
      - timeZone
      - registrationUrl
  Webinar:
    description: Describes a scheduled webinar
    properties:
      description:
        description: A short description of the webinar
        type: string
      inSession:
        description: Indicates whether there is a webinar session currently in progress
        type: boolean
      numberOfRegistrants:
        description: The number of registrants at the webinar
        format: int32
        type: integer
      organizerKey:
        description: The key of the webinar organizer
        format: int64
        type: integer
      registrationUrl:
        description: The URL the webinar invitees can use to register
        type: string
      subject:
        description: The webinar subject
        type: string
      timeZone:
        description: The timezone where the webinar is taking place
        type: string
      times:
        description: Array with startTime and endTime for the webinar sessions
        items:
          $ref: "#/definitions/DateTimeRange"
        type: array
      webinarID:
        description: The 9-digit webinar ID
        type: string
      webinarKey:
        description: The unique key of the webinar
        format: int64
        type: integer
    required:
      - numberOfRegistrants
      - times
      - description
      - subject
      - inSession
      - organizerKey
      - webinarKey
      - webinarID
      - timeZone
      - registrationUrl
  WebinarByKey:
    description: Describes a completed webinar
    properties:
      description:
        description: A short description of the webinar
        type: string
      inSession:
        description: Indicates whether there is a webinar session currently in progress
        type: boolean
      numberOfOpenedInvitations:
        description: This field is obsolete. It is always set to 0
        format: int32
        type: integer
      numberOfRegistrants:
        description: The number of registrants at the webinar
        format: int32
        type: integer
      numberOfRegistrationLinkClicks:
        description: This field is obsolete. It is always set to 0
        format: int32
        type: integer
      organizerKey:
        description: The key of the webinar organizer
        format: int64
        type: integer
      registrationUrl:
        description: The URL the webinar invitees can use to register
        type: string
      subject:
        description: The webinar subject.
        type: string
      timeZone:
        description: The timezone where the webinar is taking place
        type: string
      times:
        description: Array with startTime and endTime for the webinar sessions
        items:
          $ref: "#/definitions/DateTimeRange"
        type: array
      webinarID:
        description: The 9-digit webinar ID
        type: string
      webinarKey:
        description: The unique key of the webinar
        format: int64
        type: integer
    required:
      - numberOfRegistrants
      - times
      - description
      - subject
      - inSession
      - organizerKey
      - webinarKey
      - webinarID
      - timeZone
      - numberOfOpenedInvitations
      - registrationUrl
      - numberOfRegistrationLinkClicks
  WebinarReqCreate:
    description: Describes the details used to create a new single session webinar.
    properties:
      description:
        description: A short description of the webinar (2048 characters maximum)
        type: string
      isPasswordProtected:
        default: false
        description: A boolean flag indicating if the webinar is password protected or not.
        type: boolean
      subject:
        description: The name/subject of the webinar (128 characters maximum)
        type: string
      timeZone:
        description: The time zone where the webinar is taking place (must be a valid time zone ID, see https://goto-developer.logmein.com/time-zones). If this parameter is not passed, the timezone of the organizer's profile will be used
        type: string
      times:
        description: Array with startTime and endTime for webinar. Since this call creates single session webinars, the array can only contain a single pair of startTime and endTime
        items:
          $ref: "#/definitions/DateTimeRange"
        type: array
      type:
        default: single_session
        description: 'Specifies the webinar type. The default type value is "single_session", which is used to create a single webinar session. The possible values are "single_session", "series", "sequence". If type is set to "single_session", a single webinar session is created. If type is set to "series", a webinar series is created. In this case 2 or more timeframes must be specified for each webinar. Example: "times": [{"startTime": "...", "endTime": "..."},{"startTime": "...", "endTime": "..."},{"startTime": "...", "endTime": "..."}. If type is set to "sequence" a sequence of webinars is created. The times object in the body must be replaced by the "recurrenceStart" object. Example: "recurrenceStart": {"startTime":"2012-06-12T16:00:00Z", "endTime": "2012-06-12T17:00:00Z" }.  The "recurrenceEnd" and "recurrencePattern" body parameter must be specified. Example: , "recurrenceEnd": "2012-07-10", "recurrencePattern": "daily".'
        type: string
    required:
      - subject
      - times
  WebinarReqUpdate:
    description: Describes the details of the webinar
    properties:
      description:
        description: A description of the webinar (2048 characters maximum)
        type: string
      locale:
        description: The webinar language
        enum:
          - en_US
          - de_DE
          - es_ES
          - fr_FR
          - it_IT
          - zh_CN
        type: string
      subject:
        description: The name/subject of the webinar (128 characters maximum)
        type: string
      timeZone:
        description: The time zone where the webinar is taking place (must be a valid time zone ID, see https://goto-developer.logmein.com/time-zones). If this parameter is not passed, the timezone of the organizer's profile will be used
        type: string
      times:
        description: Array with start and end time(s) for webinar
        items:
          $ref: "#/definitions/DateTimeRange"
        type: array
  firstPage:
    properties:
      href:
        description: The first page link
        type: string
    required:
      - href
  lastPage:
    properties:
      href:
        description: The last page link
        type: string
    required:
      - href
  page:
    properties:
      number:
        description: The current page number. The first page is 0
        format: int32
        type: integer
      size:
        description: The page size
        format: int32
        type: integer
      totalElements:
        description: The total elements
        format: int32
        type: integer
      totalPages:
        description: The pages count
        format: int32
        type: integer
    required:
      - size
      - totalElements
      - totalPages
      - number
  selfPage:
    properties:
      href:
        description: The current page link
        type: string
    required:
      - href
