WebinarJam and EverWebinar documentation Webinars for everyone!

Connecting to our API

Welcome to the EverWebinar API!

Please take note of the few bullet points below before digging into the actual technical articles:

  • Our API endpoint URL is https://api.webinarjam.com/everwebinar
  • You’re required to connect to our server from a SSL secure connection. Non SSL connections will be dropped.

Your API Key can be found in your main webinar dashboard, by clicking on the Advanced link for any of your webinars. You don’t need a new API Key for each webinar, since the Key is global for your entire account.

For users subject to GDPR requirements (mostly European users), and since our API can potentially subscribe users to your webinars without their manual input, it’s your responsibility to make sure that…

  • They have granted you permission to handle their personal data.
  • They have agreed to be subscribed to your webinars.
  • They have granted you permission to communicate with them in the future.

 

Finally, it’s important to note that our API system has a hardcoded limit of 20 API calls per second per user. That means that your script should not send more than 20 API calls per second to our API endpoint. If that limit is exceeded, the system will return a “Too many requests” error message (429 error), upon which you should wait 1 second and re-try the instruction again.

We strongly recommend you to implement in your scripts a queue system that throttles your outbound API calls to a maximum rate of 20 calls per second. That way, if your script goes through a burst of activity, it will pro-actively queue up the outbound calls and process them in a first-in-first-out sequential order, so they never go beyond the limit. It’s better to hold them back for a second or two than to get them error’ed out!

Retrieve a full list of all webinars published in your account

  • Method: webinars
  • Type: POST
  • Complete URL: https://api.webinarjam.com/everwebinar/webinars

 

The request must include all of the required fields, based on the table below:

Name Value
api_key* string(64)

* Required fields

 

The response body will be a JSON object containing an array of webinars. Each webinar object will contain:

Name Type Description
webinar_id integer Webinar ID
webinar_hash * string Webinar Hash
name string Webinar Name
description string Webinar Description
schedules array Empty for right now
timezone string Webinar timezone

* webinar_hash: this parameter is used in case you want your API to be able to generate the webinar’s one-click registration link.

 

Example CURL request:

curl --data "api_key=demokey" https://api.webinarjam.com/everwebinar/webinars

 

Example return:

{
  "status": "success",
  "webinars": [
    {
        "webinar_id": 5,
        "webinar_hash": "8wtp2b",
        "name": "demo5",
        "description": "My automated webinar",
        "schedules": [
            "Instant replay",
            "Just in time",
            "Every day, at 1:00 PM",
            "Every Monday, at 2:00 PM",
            "Saturday, 14 December 2019, at 3:00 PM"
        ],
        "timezone": "America/Los_Angeles",
    }
  ]
}

Get details about one particular webinar from your account

  • Method: webinar
  • Type: POST
  • Complete URL: https://api.webinarjam.com/everwebinar/webinar

 

The request must include all of the required fields, based on the table below:

Name Value
api_key* string(64)
webinar_id* integer
timezone ** GMT-5 or GMT+2 or GMT+4:30

* Required fields
** Required if your webinar timezone is set to “Auto-detect the user’s time zone”.
** For webinars configured to automatically display the schedule in the attendee’s own time zone, the API will automatically convert the time zone to EST if the time zone is not passed to the API call.

 

The response body will be a JSON object containing a webinar object with the following:

Name Value Parent Description
webinar_id integer Webinar ID
name string Webinar Name
webinar_hash **** string Webinar Hash
description string Webinar Descirption
schedules array
date string schedules Date and time of webinar
schedule int schedules Schedule ID
comment string schedules Schedule description
timezone string Webinar timezone
presenters array Presenters
name string presenters Presenter Name
email string presenters Presenter Email
picture string presenters Presenter Image URL
registration_url string Registration URL
registration_type string paid / free
registration_fee int Registration Fee
registration_currency** string Registration Currency
registration_checkout_url** string Registration Checkout URL
registration_post_payment_url** string Registration Post Payment URL
direct_live_room_url*** string Direct URL to the Live room
direct_replay_room_url*** string Direct URL to the Replay room

** This field will be returned only if they are enabled within that particular webinar configuration settings
*** These are generic links to the Live and Replay room, in case you want to send a user directly to those rooms without going through the Registration page
Note: The number of returned schedules will match “Displayed schedules” setting from the EverWebinar schedules configuration for each webinar
**** webinar_hash: this parameter is used in case you want your API to be able to generate the webinar’s one-click registration link.

 

Example CURL request:

curl --data "api_key=demokey&webinar_id=5" https://api.webinarjam.com/everwebinar/webinar

 

Example return:

{
    "status": "success",
    "webinar": {
        "webinar_id": 5,
        "webinar_hash": "8wtp2b",
        "name": "demo5",
        "description": "My automated webinar",
        "schedules": [
            {
                "date": "2099-01-01 10:00",
                "schedule": 22,
                "comment": "Instant replay",
            },
            {
                "date": "2099-01-02 10:00",
                "schedule": 29,
                "comment": "Just in time",
            },
            {
                "date": "2099-01-02 11:00",
                "schedule": 29,
                "comment": "Every day, 11:00 AM",
            }
        ],
        "timezone": "America/Los_Angeles",
        "presenters": [
            {
                "name": "John Doe",
                "email": "[email protected]",
                "picture": "https://test.s3.amazonaws.com/default_user.jpg"
            }
        ],
        "registration_url": "http://event.webinarjam.com/register/abcd123",
        "registration_type": "free",
        "registration_fee": 0,
        "registration_currency": "",
        "registration_checkout_url": "",
        "registration_post_payment_url": "",
        "direct_live_room_url": "https://event.webinarjam.com/go/live/1/abcd123",
        "direct_replay_room_url": "https://event.webinarjam.com/go/replay/1/abcd123"
    }
}

Register a person to a specific webinar

  • Method: register
  • Type: POST
  • Complete URL: https://api.webinarjam.com/everwebinar/register

 

The request must include all of the required fields, based on the table below:

Name Value
api_key* string(64)
webinar_id* {+} integer
first_name* string
last_name*** string, optional
email* string
schedule* {+} int
ip_address string, optional
phone_country_code*** string, optional, with “+”
phone*** string, optional, only numbers
timezone {-} Examples: GMT-5 or GMT+2 or GMT+4:30
date **** 2025-01-01 09:00

* Required fields
** Required if your webinar timezone is set to “Auto-detect the user’s time zone”.
*** This field might be required depending on the configured settings for each webinar
{+} The webinar_id and schedule must be obtained from a previous API call to retrieve the details of whatever specific webinar you want to register the person to. Also, please note that one particular schedule ID might refer to an entire series of webinars, and thus all individual webinar sessions within the same series will have the same schedule ID. In order to pin-point the specific individual session within a series, refer to the DATE parameter.
{-} For webinars configured to display the schedule in the attendee’s own time zone, the API will automatically convert the time zone to EST, unless you specify a particular time zone in your API call.
**** Use the DATE parameter to register a person to a specific webinar session date. Make sure it matches a valid date returned by a previous API call, or else the API will not be able to register the user to any event at all. Also, if the call was made using a custom timezone, make sure that the same timezone is passed with the request.

 

The response body will be a JSON object containing a user object with the following:

Name Value Description
webinar_id int Webinar ID
webinar_hash string Webinar Hash
user_id int Attendee Internal ID
first_name string Attendee Name
last_name* string Attendee Last Name
phone_country_code* string Attendee Phone Country Code
phone* string Attendee Phone Number
email string Attendee Email
password* string Attendee unique password to the room
schedule int Attendee Schedule
date string Webinar date and time
timezone string Webinar timezone
live_room_url {+} string Live Room URL
replay_room_url {+} string Replay Room URL
thank_you_url {+} string Registration Success URL

{+} live_room_url, replay_room_url and thank_you_url are unique to each attendee
* These fields will only be returned if they are enabled within the webinar’s configuration settings

 

Example CURL request:

curl --data "api_key=demokey&webinar_id=demo123&first_name=FirstName&last_name=LastName&phone_country_code=1&phone=1234567890&[email protected]&schedule=0" https://api.webinarjam.com/everwebinar/register

 

Example return:

{
    "status": "success",
    "user": {
        "webinar_id": 5,
        "webinar_hash": "8wtp2b",
        "user_id": 687321,
        "first_name": "FirstName",
        "last_name": "LastName",
        "phone_country_code": "+1",
        "phone": "1234567890",
        "email": "[email protected]",
        "password": null,
        "schedule": 29,
        "date": "2099-01-02 10:00",
        "timezone": "America/Los_Angeles",
        "live_room_url": "https://event.webinarjam.com/go/live/lk6790321HW",
        "replay_room_url": "https://event.webinarjam.com/go/replay/lk6790321HW",
        "thank_you_url": "https://event.webinarjam.com/registration/thank-you/lk6790321HW"
    }
}

© 2020 WebinarJam All Rights Reserved