On24 Event Management API

The Event Management API from On24 — 12 operation(s) for event management.

Operations 15

POST /client/{clientId}/event Create/Copy a Webinar #
PUT /client/{clientId}/event/{eventId} Update a Webinar #
DELETE /client/{clientId}/event/{eventId} Delete Webinar #
PUT /client/{clientId}/event/{eventId}/calendarreminder Update Email Calendar Reminder #
PUT /client/{clientId}/event/{eventId}/email/{emailId} Update Email Notification #
POST /client/{clientId}/event/{eventId}/relatedcontent Create Related Content #
GET /client/{clientId}/event/{eventId}/slides Slide Listing #
POST /client/{clientId}/event/{eventId}/slides Upload Slides #
POST /client/{clientId}/event/{eventId}/speakerbio Create Speaker Bio #
DELETE /client/{clientId}/event/{eventId}/speakerbio Delete Speaker Bio #
POST /client/{clientId}/event/{eventId}/surveyquestions Create Survey Questions and Answers #
POST /client/{clientId}/event/{eventId}/textwithbanner Update Text With Banner Widget #
DELETE /client/{clientId}/event/{eventId}/vtt Delete VTT Files #
POST /client/{clientId}/mediamanager/document Media Manager Upload Document #
POST /client/{clientId}/mediamanager/uploadvideo Media Manager Upload Video #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/on24-event-management-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

on24-event-management-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ON24 WCC API v2 Event Management API
  description: 'ON24 Webinar & Content Center REST API v2. All secured endpoints require two request headers: AccessTokenKey and AccessTokenSecret. Both headers must be supplied together — providing only one is not sufficient.'
  version: '2'
servers:
- url: https://api.on24.com/v2
  description: North America (production)
- url: https://api.eu.on24.com/v2
  description: European Union (production)
security:
- AccessTokenKey: []
- AccessTokenSecret: []
tags:
- name: Event Management
paths:
  /client/{clientId}/event:
    post:
      tags:
      - Event Management
      summary: Create/Copy a Webinar
      description: "Creates a new Webinar or Forum. When an existing event id is provided in query parameter **eventsource**, a copy of that event is created instead.\n\n- When an existing event id is provided in query parameter **eventsource**, the new event created by this Endpoint will copy all the other fields from this existing event except the **liveStart** and **liveDuration**.\n- Any of the parameters can be overridden, all parameters in the Event Creation are accepted.\n- Required form parameters: **liveDuration** and **liveStart.**\n- The copy process will copy the event source's tags (funnel, campaign, sales) and resources uploaded to it (PDF,mp4, etc)\n- **liveDuration** parameter conditions:\n  - When copying a webinar, users are able to provide a liveDuration value in 15 minute increments (e.g. 15, 30, 45, 60, etc.) up to 120 minutes.\n  - Above 120 minutes, increments will be 30 minutes up to 480 minutes.\n  - The maximum allowed liveDuration is 480 minutes.\n- **liveStart** accepted date/time formats:\n  - **MM/DD/YYYY hh:mm a** (08/26/2016 09:00 AM)\n  - **YYYY-MM-DDThh:mm:ss** Default timezone will be Pacific Time. (2016-08-26T09:00:00)\n  - **YYYY-MM-DDThh:mm:ss±zz:zz** where ±zz:zz is timezone's offset (2016-08-26T09:00:00-07:00)\n  - JavaScript Date.toString() format is also supported (Wed Apr 04 2018 16:12:41 GMT+0200 (CEST) )\n- **tagCampaign** parameter conditions:\n  - When copying a webinar users are allowed to add up to 10 custom tags via the tagCampaign parameter.\n  - Every tag that is associated with the webinar should be available in the **tags** array field in the response.\n  - The following characters can not be used and will result in an error: £$!%&*()}{@#~?><',\"|=_+¬\n- **customAccountTag** parameter conditions:\n  - Supported only for client accounts with enabled custom account tags.\n  - When copying a webinar for an account with enabled custom account tags, users are allowed to add up to 3 tag IDs\n  - Provided values must match configured client account values.\n- **languageCd** / **countryCd** parameters conditions:\n  - Following are allowed pairs of language/country values when copying an event:\n    - Chinese (Simplified): languageCd=**\"zh\"**, countryCd=**\"CN\"**\n    - Chinese (Traditional): languageCd=**\"zh\"**, countryCd=**\"TW\"**\n    - English (UK): languageCd=**\"en\"**, countryCd=**\"UK\"**\n  - For other languages, No countryCd is allowed.\n- When copying a webinar, the following features will be copied from the source event unless their values are overriden:\n  - Title. *In the following format: 'Copy of' + [source event name]*\n  - Event Type\n  - Duration\n  - Language\n  - Funnel Tags\n  - Campaign Tags\n  - Custom Account Tags\n  - Registration page:\n    - Banner\n    - Registration fields\n    - Page design\n  - Email notifications configuration\n  - Videos and Slides\n  - Console customization\n- **Elements that are not copied:**\n  - Start time\n  - Archive configuration\n  - Security configuration"
      operationId: EventManagement.CreateAWebinar
      parameters:
      - name: clientId
        in: path
        description: The event will be created under this client id
        required: true
        schema:
          type: string
        example: 18091
      - name: accessTokenKey
        in: header
        description: client access token key
        required: true
        schema:
          type: string
        example: 63129107067A520E6B7DE18D5E1CB2BF
      - name: accessTokenSecret
        in: header
        description: client access token secret
        required: true
        schema:
          type: string
        example: 072639740ac239333e3708a1623b9de3590d972e6b1060071b726ecfd9b216001b45391717d9fbeb780438
      - name: content-type
        in: header
        description: 'Possible values: "application/x-www-form-urlencoded" or "multipart/formdata"'
        required: true
        schema:
          type: string
        example: application/x-www-form-urlencoded
      - name: eventsource
        in: query
        description: The id of an existing event from which fields for the new event will be copied
        schema:
          type: string
        example: 13658130
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/AddEventForm'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/AddEventForm'
      responses:
        '200':
          description: Event Created. | Event Copied.
          content:
            application/json:
              examples:
                Create a Webinar:
                  description: Create a Webinar
                  value:
                    wccevent:
                      eventId: 1418636
                      title: Event created from API
                      eventAbstract: Event Abstract Sample
                      promotionalSummary: Event Promotional Summary Sample
                      liveStart: 12/20/2017 08:45 AM
                      liveDuration: 3600
                      liveEnd: 12/20/2017 10:00 AM
                      archiveStart: 12/20/2017 10:30 AM
                      archiveEnd: 12/20/2018 10:30 AM
                      clientId: 4467
                      timeZone: America/Los_Angeles
                      eventType: webcam
                      goodAfter: 12/20/2017 09:00 AM
                      audienceUrl: https://event.on24.com/wcc/r/1418636/15545789BB2677BD0FB3F6FAA3F8B557
                      reportsUrl: https://api.on24.com/webcast/report?e=1418636&k=93263D3E106F0243316315BE767D8550
                      previewUrl: http://api.on24.com/webcast/previewlobby?e=1418636&k=93263D3E106F0243316315BE767D8550
                      archiveDuration: 525600
                      shortTimeZone: PST
                      isLiveStartPast: false
                      isLiveEndPast: false
                      archiveEndInPast: false
                      monthsAvailableToExtend: -1
                      canExtendArchive: false
                      archiveAvailable: true
                      autoArchiveProcessed: false
                      canManipulateArchive: false
                      canToggleArchiveAvailability: true
                      showFaaBridgeNumber: true
                      showColossusLink: true
                      languageCd: en
                      countryCd: UK
                      sourceEventId: 0
                      rolloverAudio: false
                      rolloverAudioDisabled: false
                      tags:
                      - tag1
                      - tag2
                      customaccounttags:
                      - groupid: 101
                        groupname: Group 1
                        tagid: 741
                        tagname: Option 1-A
                      - groupid: 102
                        groupname: Group 2
                        tagid: 744
                        tagname: Option 2-A
                      defaultPlayerConsoleTemplateId: 0
                      simuliveWaitingMode: false
                      PMUrl: https://api.on24.com/webcast/present?e=1418636&k=93263D3E106F0243316315BE767D8550
                      simuliveEPMode: true
                      simuliveMode: false
                      hybrid: Y
                      venue: Test Venue
                      address: Test Address
                      testevent: Y
                Copy a Webinar:
                  description: Copy a Webinar
                  value:
                    wccevent:
                      eventId: 1418636
                      title: Copy of Event Created from API
                      eventAbstract: Event Abstract Sample
                      promotionalSummary: Event Promotional Summary Sample
                      liveStart: 12/20/2017 08:45 AM
                      liveDuration: 3600
                      liveEnd: 12/20/2017 10:00 AM
                      archiveStart: 12/20/2017 10:30 AM
                      archiveEnd: 12/20/2018 10:30 AM
                      clientId: 4467
                      timeZone: America/Los_Angeles
                      eventType: webcam
                      goodAfter: 12/20/2017 09:00 AM
                      audienceUrl: https://event.on24.com/wcc/r/1418636/15545789BB2677BD0FB3F6FAA3F8B557
                      reportsUrl: https://api.on24.com/webcast/report?e=1418636&k=93263D3E106F0243316315BE767D8550
                      previewUrl: http://api.on24.com/webcast/previewlobby?e=1418636&k=93263D3E106F0243316315BE767D8550
                      archiveDuration: 525600
                      shortTimeZone: PST
                      isLiveStartPast: false
                      isLiveEndPast: false
                      archiveEndInPast: false
                      monthsAvailableToExtend: -1
                      canExtendArchive: false
                      archiveAvailable: true
                      autoArchiveProcessed: false
                      canManipulateArchive: false
                      canToggleArchiveAvailability: true
                      showFaaBridgeNumber: true
                      showColossusLink: true
                      languageCd: en
                      countryCd: ''
                      sourceEventId: 0
                      rolloverAudio: false
                      rolloverAudioDisabled: false
                      tags:
                      - tag1
                      - tag2
                      customaccounttags:
                      - groupid: 101
                        groupname: Group 1
                        tagid: 741
                        tagname: Option 1-A
                      - groupid: 102
                        groupname: Group 2
                        tagid: 744
                        tagname: Option 2-A
                      defaultPlayerConsoleTemplateId: 0
                      simuliveWaitingMode: false
                      PMUrl: https://api.on24.com/webcast/present?e=1418636&k=93263D3E106F0243316315BE767D8550
                      simuliveEPMode: true
                      simuliveMode: false
                      hybrid: Y
                      venue: Test Venue
                      address: Test Address
                      testevent: Y
                Broadcast Video (encoder fragment):
                  description: 'If the event is configured as Broadcast Video type, the response will include encoder information similar as following sample fragment:'
                  value:
                    encoders:
                    - encoder: Encoder A
                      url: rtmp://fmseosa.on24.com/liveeosa
                      streamid: 5439654_1_fhvideo1_CA6701A4E974D5F01F1658BAD56EC63F_A
                    - encoder: Encoder B
                      url: rtmp://fmseosb.on24.com/liveeosb
                      streamid: 5439654_1_fhvideo1_CA6701A4E974D5F01F1658BAD56EC63F_B
        '400':
          description: Webinar was not created due to errors in the parameters
        '401':
          description: AccessTokenKey and AccessTokenSecret are wrong or invalid.
        '403':
          description: You do not have permission to perform the requested operation. | You have reached the maximum number of calls for this api. | The client id {clientId} is inactive. | Creating an event in a Global Client Account is not allowed. | Copying an event into a Global Client Account is not allowed.
        '404':
          description: The client {clientId} doesn't exist.
  /client/{clientId}/event/{eventId}:
    put:
      tags:
      - Event Management
      summary: Update a Webinar
      description: "Updates a webinar.\n\n- **liveDuration** parameter conditions:\n  - When copying a webinar, users are able to provide a liveDuration value in 15 minute increments (e.g. 15, 30, 45, 60, etc.) up to 120 minutes.\n  - Above 120 minutes, increments will be 30 minutes up to 480 minutes.\n  - The maximum allowed liveDuration is 480 minutes.\n- **liveStart** accepted date/time formats:\n  - **MM/DD/YYYY hh:mm a** (08/26/2016 09:00 AM)\n  - **YYYY-MM-DDThh:mm:ss** Default timezone will be Pacific Time. (2016-08-26T09:00:00)\n  - **YYYY-MM-DDThh:mm:ss±zz:zz** where ±zz:zz is timezone's offset (2016-08-26T09:00:00-07:00)\n  - JavaScript Date.toString() format is also supported (Wed Apr 04 2018 16:12:41 GMT+0200 (CEST) )\n- **tagCampaign** parameter conditions:\n  - When copying a webinar users are allowed to add up to 10 custom tags via the tagCampaign parameter.\n  - Every tag that is associated with the webinar should be available in the **tags** array field in the response.\n  - The following characters can not be used and will result in an error: £$!%&*()}{@#~?><',\"|=_+¬\n- **customAccountTag** parameter conditions:\n  - Supported only for client accounts with enabled custom account tags.\n  - When copying a webinar for an account with enabled custom account tags, users are allowed to add up to 3 tag IDs\n  - Provided values must match configured client account values.\n- **languageCd** / **countryCd** parameters conditions:\n  - Following are allowed pairs of language/country values when copying an event:\n    - Chinese (Simplified): languageCd=**\"zh\"**, countryCd=**\"CN\"**\n    - Chinese (Traditional): languageCd=**\"zh\"**, countryCd=**\"TW\"**\n    - English (UK): languageCd=**\"en\"**, countryCd=**\"UK\"**\n  - For other languages, No countryCd is allowed."
      operationId: EventManagement.UpdateAWebinar
      parameters:
      - name: accessTokenKey
        in: header
        description: client access token key
        required: true
        schema:
          type: string
        example: 63129107067A520E6B7DE18D5E1CB2BF
      - name: accessTokenSecret
        in: header
        description: client access token secret
        required: true
        schema:
          type: string
        example: 072639740ac239333e3708a1623b9de3590d972e6b1060071b726ecfd9b216001b45391717d9fbeb780438
      - name: content-type
        in: header
        description: 'Possible values: "application/x-www-form-urlencoded" or "multipart/formdata"'
        required: true
        schema:
          type: string
        example: application/x-www-form-urlencoded
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UpdateEventForm'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateEventForm'
      responses:
        '200':
          description: OK
          content:
            application/json:
              examples:
                Update a Webinar:
                  description: Update a Webinar
                  value:
                    wccevent:
                      eventId: 10465031
                      title: Update-webinar-sample
                      eventAbstract: Event Abstract Sample
                      promotionalSummary: Event Promotional Summary Sample
                      liveStart: 01/18/2018 04:45 PM
                      liveDuration: 28800
                      liveEnd: 01/19/2018 01:00 AM
                      archiveStart: 01/19/2018 01:30 AM
                      archiveEnd: 01/19/2019 01:30 AM
                      clientId: 22921
                      timeZone: America/Bogota
                      eventType: screenshare
                      goodAfter: 01/18/2018 05:00 PM
                      dialInNumber: 415-481-6017 (FAA - Other Number), 415-481-6017 (FAA)
                      bridgeDialInNumber: 415-481-6020 (FAB - Other Number), 415-481-6020 (FAB)
                      dialInPasscode: '92871'
                      audienceUrl: https://eventqa.on24.com/wcc/r/10465031/0815FD5E87267F2622A1829961F89D5C
                      reportsUrl: https://wccqa.on24.com/webcast/report?e=10465031&k=A1F5A9389875B909D496FED49C1581FE
                      previewUrl: https://wccqa.on24.com/webcast/previewlobby?e=10465031&k=A1F5A9389875B909D496FED49C1581FE
                      archiveDuration: 525600
                      shortTimeZone: ' COT'
                      isLiveStartPast: false
                      isLiveEndPast: false
                      archiveEndInPast: false
                      monthsAvailableToExtend: -1
                      canExtendArchive: false
                      archiveAvailable: true
                      autoArchiveProcessed: false
                      canManipulateArchive: false
                      canToggleArchiveAvailability: true
                      showFaaBridgeNumber: false
                      showColossusLink: false
                      languageCd: en
                      countryCd: UK
                      campaignCode: Code Updated
                      sourceEventId: 0
                      rolloverAudio: false
                      rolloverAudioDisabled: false
                      tags:
                      - tag1
                      - tag2
                      customaccounttags:
                      - groupid: 101
                        groupname: Group 1
                        tagid: 741
                        tagname: Option 1-A
                      - groupid: 102
                        groupname: Group 2
                        tagid: 744
                        tagname: Option 2-A
                      defaultPlayerConsoleTemplateId: 0
                      simuliveWaitingMode: false
                      pmurl: https://wccqa.on24.com/webcast/present?e=10465031&k=A1F5A9389875B909D496FED49C1581FE
                      simuliveEPMode: false
                      simuliveMode: false
                Broadcast Video (encoder fragment):
                  description: 'If the event is configured as Broadcast Video type, the response will include encoder information similar as following sample fragment:'
                  value:
                    encoders:
                    - encoder: Encoder A
                      url: rtmp://fmseosa.on24.com/liveeosa
                      streamid: 5439654_1_fhvideo1_CA6701A4E974D5F01F1658BAD56EC63F_A
                    - encoder: Encoder B
                      url: rtmp://fmseosb.on24.com/liveeosb
                      streamid: 5439654_1_fhvideo1_CA6701A4E974D5F01F1658BAD56EC63F_B
        '400':
          description: Webinar was not created due to errors in the parameters
        '401':
          description: AccessTokenKey and AccessTokenSecret are wrong or invalid.
        '403':
          description: You do not have permission to perform the requested operation. | You have reached the maximum number of calls for this api. | The client id {clientId} is inactive.
        '404':
          description: The client {clientId} doesn't exist.
    delete:
      tags:
      - Event Management
      summary: Delete Webinar
      description: Deletes a webinar.
      operationId: EventManagement.DeleteWebinar
      parameters:
      - name: accessTokenKey
        in: header
        description: client access token key
        required: true
        schema:
          type: string
        example: 63129107067A520E6B7DE18D5E1CB2BF
      - name: accessTokenSecret
        in: header
        description: client access token secret
        required: true
        schema:
          type: string
        example: 072639740ac239333e3708a1623b9de3590d972e6b1060071b726ecfd9b216001b45391717d9fbeb780438
      - name: accept
        in: header
        description: 'Output format. possible values: Application/xml or Application/json'
        schema:
          type: string
          default: application/json
        example: application/json
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Event Deleted.
          content:
            application/json:
              example:
                message: Event Successfully Deleted.
        '401':
          description: The access token secret or access token key was not found
        '403':
          description: You don't have access to this client id; or You don't have ability to delete this event; or You reached the maximum number of calls for this endpoint
        '404':
          description: Event not found for this client or its children
        '410':
          description: Event has already been deleted
        '412':
          description: Event does not meet criteria for deletion
  /client/{clientId}/event/{eventId}/calendarreminder:
    put:
      tags:
      - Event Management
      summary: Update Email Calendar Reminder
      description: "Updates the Email Calendar Reminder for a particular event.\n\n- **reminder** parameter conditions:\n  - Cannot be updated if the event has already started.\n  - Accpeted values:\n    - None\n    - 0 Minutes\n    - 5 Minutes\n    - 10 Minutes\n    - 15 Minutes\n    - 30 Minutes\n    - 1 Hour\n    - 2 Hours\n    - 3 Hours\n    - 4 Hours\n    - 5 Hours\n    - 6 Hours\n    - 12 Hours\n    - 1 Day"
      operationId: EventManagement.UpdateEmailCalendarReminder
      parameters:
      - name: accessTokenKey
        in: header
        description: Security Parameter
        required: true
        schema:
          type: string
        example: 63129107067A520E6B7DE18D5E1CB2BF
      - name: accessTokenSecret
        in: header
        description: Security Parameter
        required: true
        schema:
          type: string
        example: 072639740ac239333e3708a1623b9de3590d972e6b1060071b726ecfd9b216001b45391717d9fbeb780438
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CalendarReminderForm'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/CalendarReminderForm'
      responses:
        '200':
          description: Email Calendar Reminder Updated
          content:
            application/json:
              example:
                reminder: 30 Minutes
                subject: 'Reminder - #EVENTTITLE#'
                location: Webcast
                body: 'Thank you for registering for #EVENTTITLE#.'
        '401':
          description: AccessTokenKey and AccessTokenSecret are wrong or invalid.
        '403':
          description: You do not have permission to perform the requested operation. | You have reached the maximum number of calls for this api. | The client id {clientId} is inactive. | The event {eventId} is inactive.
        '404':
          description: The client {clientId} doesn't exist. | The event {eventId} doesn't exist.
  /client/{clientId}/event/{eventId}/email/{emailId}:
    put:
      tags:
      - Event Management
      summary: Update Email Notification
      description: "Updates an Email Notification for a particular event.\n\n- **fromLabel** validations:\n  - Only alphanumeric characters and a maximum of 50 characters are allowed.\n  - International characters or email addresses are not allowed.\n- **whentosend** accepted values:\n  - 2 Weeks Before Event\n  - 1 Week Before Event\n  - 5 Days Before Event\n  - Days Before Event\n  - 2 Days Before Event\n  - 1 Day Before Event\n  - 12 Hours Before Event\n  - 6 Hours Before Event\n  - 5 Hours Before Event\n  - 4 Hours Before Event\n  - 3 Hours Before Event\n  - 2 Hours Before Event\n  - 1 Hour Before Event\n  - 30 Minutes Before Event\n  - 15 Minutes Before Event\n  - 1 Hour After Event\n  - 2 Hours After Event\n  - 3 Hours After Event\n  - 4 Hours After Event\n  - 5 Hours After Event\n  - 6 Hours After Event\n  - 12 Hours After Event\n  - 1 Day After Event\n  - 2 Days After Event\n  - 3 Days After Event\n  - 5 Days After Event\n  - 1 Week After Event\n  - 2 Weeks After Event\n  - When Event Starts\n  - Custom Date And Time"
      operationId: EventManagement.UpdateEmailNotification
      parameters:
      - name: accessTokenKey
        in: header
        description: Security Parameter
        required: true
        schema:
          type: string
        example: 63129107067A520E6B7DE18D5E1CB2BF
      - name: accessTokenSecret
        in: header
        description: Security Parameter
        required: true
        schema:
          type: string
        example: 072639740ac239333e3708a1623b9de3590d972e6b1060071b726ecfd9b216001b45391717d9fbeb780438
      - name: emailId
        in: path
        description: The email id
        required: true
        schema:
          type: string
        example: 7055969
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UpdateEmailNotificationForm'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UpdateEmailNotificationForm'
      responses:
        '200':
          description: Email Notification Updated
          content:
            application/json:
              example:
                emailid: 177588
                emailtype: 'Reminder Email #1'
                activated: Y
                whentosend: Custom Date and Time
                goodafter: '2018-10-31T18:44:59-07:00'
                from: do_not_reply@on24event.com
                fromlabel: Webcast
                replyto: do_not_reply@on24event.com
                subject: 'Reminder - #EVENTTITLE#'
                body: 'A friendly reminder that #EVENTTITLE# begins in two days.'
        '401':
          description: AccessTokenKey and AccessTokenSecret are wrong or invalid.
        '403':
          description: You do not have permission to perform the requested operation. | You have reached the maximum number of calls for this api. | The client id {clientId} is inactive. | The event id {eventId} is inactive.
        '404':
          description: The client {clientId} doesn't exist. | The event {eventId} doesn't exist. | The email {emailId} doesn't exist
  /client/{clientId}/event/{eventId}/relatedcontent:
    post:
      tags:
      - Event Management
      summary: Create Related Content
      description: 'This endpoint will upload files and links to a Webinar''s Related Content widget.


        ### Supported File Types


        - .doc

        - .docx

        - .xls

        - .xlsx

        - .pdf

        - .ppt

        - .pptx

        - .mp3

        - .mp4


        ### File Max Size


        - 50 MB'
      operationId: EventManagement.CreateRelatedContent
      parameters:
      - name: accessTokenKey
        in: header
        description: Security Parameter
        required: true
        schema:
          type: string
        example: 63129107067A520E6B7DE18D5E1CB2BF
      - name: accessTokenSecret
        in: header
        description: Security Parameter
        required: true
        schema:
          type: string
        example: 072639740ac239333e3708a1623b9de3590d972e6b1060071b726ecfd9b216001b45391717d9fbeb780438
      - name: Content-Type
        in: header
        description: Must be "multipart/form-data".
        required: true
        schema:
          type: string
        example: multipart/form-data
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/CreateRelatedContentForm'
      responses:
        '200':
          description: Content processed
          content:
            application/json:
              examples:
                'type: Resource':
                  description: 'type: Resource'
                  value:
                    message: RECEIVED
                    resource:
                      name: ON24 Whitepaper
                      file: myfile.pdf
                'type: URL':
                  description: 'type: URL'
                  value:
                    message: RECEIVED
                    resource:
                      name: ON24 Website
                      url: https://www.on24.com
        '400':
          description: File is not accepted filetype | More than one {matchname} for event {eventid}
        '401':
          description: AccessTokenKey and AccessTokenSecret are wrong or invalid | You do not have permission to perform the requested operation
        '403':
          description: You have reached the maximum number of calls for this api | The client id {clientId} is inactive | The event id {eventId} is inactive
        '404':
          description: The client {clientId} doesn't exist | The event {eventId} doesn't exist | {matchname} not found for event {eventid}
  /client/{clientId}/event/{eventId}/slides:
    get:
      tags:
      - Event Management
      summary: Slide Listing
      description: Returns information about event slides.
      operationId: EventManagement.SlideListing
      parameters:
      - name: accessTokenKey
        in: header
        description: Client access token key
        required: true
        schema:
          type: string
        example: 63129107067A520E6B7DE18D5E1CB2BF
      - name: accessTokenSecret
        in: header
        description: Client access token secret
        required: true
        schema:
          type: string
        example: 072639740ac239333e3708a1623b9de3590d972e6b1060071b726ecfd9b216001b45391717d9fbeb780438
      - name: clientId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: eventId
        in: path
        required: true
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: Returns a list of slides
          content:
            application/json:
              example:
                eventid: 1111111
                eventtitle: My Webcast
                slides:
                - mediaurlid: 144085980
                  message: SUCCESS
                  mediafile: myPresentation.pptx
                - mediaurlid: 144085981
                  message: SUCCESS
                  mediafile: myPresentation2.pptx
        '400':
          description: Invalid filetype.
        '401':
          description: AccessTokenKey and AccessTokenSecret are wrong or invalid
        '403':
          description: You do not have permission to perform the requested operation | You have reached the maximum number of calls for this api | The client id {clientId} is inactive | The client id {eventId} is inactive
        '404':
          description: The client {clientId} doesn't exist | The client {eventId} doesn't exist | No slides found
    post:
      tags:
      - Event Management
      summary: Upload Slides
      description: Uploads slides to a webinar.
      operationId: EventManagement.UploadSlides
      parameters:
      - name: accessTokenKey
        in: header
        description: Client access token key
        require

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/on24/refs/heads/main/openapi/on24-event-management-api-openapi.yml