Skip to main content
Workshops are one-off events — seminars, intensives, retreats — kept separate from the regular class schedule. Canceled workshops are never returned.

Address, not a place

A workshop carries address directly instead of referencing a place. This is the main difference from a class, and it has two consequences:
  • There is no locationId to resolve, and no isOnline flag.
  • The workshops endpoint has no placeIds filter.
address is null when the studio filled in no address field at all. Otherwise the object is present and each of street, city, postalCode, and country is independently nullable.

Times and references

start, end, localTimeStart, localTimeEnd, and timezone behave exactly as on a class. lecturerIds holds opaque lecturer IDs to resolve against GET /v1/lecturers, and tags are embedded inline. shortDescription is the workshop’s description — note the different field name from a class, which uses description. image is a URL or null.

Capacity

capacity appears only when you pass includeCapacity=true or includeCapacity=1:
Workshops report available directly, which classes do not. It is max - reserved, clamped at zero, so it never goes negative when a studio lowers the capacity below the existing reservations. Every workshop has a seat limit, so max and available are always numbers.
_id
string

Opaque workshop ID.

Example:

"6d3f90b25e814ca70f2db6913a5ce048"

name
string
shortDescription
string | null
image
string | null

URL of the workshop image, or null.

start
string<date-time> | null

Start in UTC.

end
string<date-time> | null
localTimeStart
string | null

Start in the studio's time zone, with a numeric offset.

localTimeEnd
string | null
timezone
string
Example:

"Europe/Prague"

lecturerIds
string[]
address
object | null

The workshop's own address, or null when the studio left every address field empty. Workshops do not reference a place.

pricingOptions
object[]
tags
object[]
publicUrl
string
capacity
object

Present only when includeCapacity is requested.