Vidyst API
API referenceWebinars

List webinars

GET
/webinars

The webinars the API key's account owns, newest first, a page at a time. Needs the webinars:read scope (webinars:write includes it).

Filter by status, access, licenceKey, sessions in a time range (startsAfter, startsBefore) and a title search; order with sort. Filters combine: a webinar must match all of them.

Page with cursor: pass the nextCursor of one page to get the next, with the same filters and sort. See Pagination.

Authorization

apiKey
headerAuthorizationBearer <vk_live_<public id>_<secret>>

An API key from the Vidyst studio (Developer → API keys), sent as Authorization: Bearer vk_live_….

Query Parameters

limit?integer

How many webinars a page has (1–100).

Range1 <= value <= 100
Default20
cursor?string

Continues a list: the nextCursor of the previous page. Use it with the same filters and sort it came from (otherwise 400 invalid_cursor).

Match^[A-Za-z0-9_-]{1,200}$
status?string

Only webinars in one of these statuses: a comma list of draft, scheduled, live, ended.

Lengthlength <= 100
access?string

Only open or only registration webinars.

Value in"open""registration"
licenceKey?string

Only webinars on this licence (its key, as the studio shows it).

Lengthlength <= 40
search?string

Only webinars whose title contains this (2–100 characters, case-insensitive, matched literally).

Length2 <= length <= 100
startsAfter?string

Only webinars with a session starting at or after this time (ISO 8601 with an offset). With a series, any of its sessions counts.

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
Formatdate-time
startsBefore?string

Only webinars with a session starting before this time. With startsAfter, a session in the range.

Match^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
Formatdate-time
sort?string

-createdAt newest first (the default), createdAt oldest first, scheduledAt soonest first session first, -scheduledAt latest first. Drafts without a date come last in both schedule orders.

Default"-createdAt"
Value in"-createdAt""createdAt""scheduledAt""-scheduledAt"

Response Body

A page of webinars.

application/json
  1. response

A page of webinars.

data*array<>

This page's webinars, in the order asked for.

nextCursor*|

Pass it as cursor for the next page; null on the last page.

hasMore*boolean

Whether there's another page (nextCursor isn't null).

Example Request
curl -X GET 'https://vapi.vidyst.com/public/v1/webinars' \  -H 'Authorization: Bearer vk_live_…'
Example Response
{  "data": [    {      "id": "01929c5e-8f3a-7b21-9d4e-5a6b7c8d9e0f",      "title": "Product launch: what's new in Q4",      "description": "A tour of everything we shipped this quarter, with live Q&A.",      "status": "scheduled",      "access": "registration",      "licenceKey": "VDL-M4A05-TKY9Q-0A5V6-WMR8H",      "scheduledAt": "2026-12-01T15:30:00.000Z",      "timezone": "Asia/Kolkata",      "durationMinutes": 45,      "repeat": "weekly",      "repeatCount": 6,      "repeatDays": [],      "occurrences": [        {          "index": 0,          "startsAt": "2026-12-01T15:30:00.000Z",          "done": false        }      ],      "nextSessionAt": "2026-12-01T15:30:00.000Z",      "sessionsLeft": 6,      "registrationLimit": 500,      "registrationCount": 0,      "passcodeProtected": true,      "reminders": [        "confirmation",        "day_before",        "hour_before"      ],      "agenda": [        {          "time": "10:00",          "title": "Welcome and introductions"        }      ],      "faqs": [        {          "question": "Will there be a replay?",          "answer": "Yes, registrants get the replay by email."        }      ],      "questions": [        {          "label": "What's your role?",          "type": "multiple_choice",          "required": true,          "options": [            "Marketing",            "Engineering",            "Other"          ]        }      ],      "pageUrl": "https://vidyst.live/w/4fQ9zK2mXp",      "startedAt": null,      "endedAt": null,      "createdAt": "2026-11-03T09:30:00.000Z",      "updatedAt": "2026-11-03T09:30:00.000Z"    }  ],  "nextCursor": "eyJ2IjoyLCJzIjoiLWNyZWF0ZWRBdCJ9",  "hasMore": true}