Virtual & Physical Sessions
Search for sessions that take place online, in a physical location, or both.
Last updated
Search for sessions that take place online, in a physical location, or both.
Last updated
Attendance Mode differentiates between sessions that occur physically, virtually or both. Please see the OpenActive discussion for this field .
Response field (in EventSeries): "eventAttendanceMode": "schema:OfflineEventAttendanceMode"
Sessions that only occur at a physical location. For example, they may occur at a leisure centre, park or gym.
Additionally, when searching for Offline Attendance sessions, location search parameter geo[radial]
is required.
Response field (in EventSeries): "eventAttendanceMode": "schema:OnlineEventAttendanceMode"
Fully virtual sessions that do not occur at a physical location, but occur virtually. For example, a yoga class with an instructor using a video conference where attendees can view the instructor and the instructor can view the attendees.
Online Attendance sessions may have location data, which is stored in the SessionSeries' location
field.
For fully online sessions, location data simply refers to the location that the organisation is affiliated with. Do not advertise that potential attendees visit this location. It is important to make this clear. The reason for including location data for fully virtual sessions is to satisfy use cases where organisations wish to support local activity providers, e.g. a local authority wanting to promote virtual sessions from the local fitness businesses in their constituency over and above other virtual sessions from elsewhere.
Online Attendance sessions may also have virtual location data. This is stored in the ScheduledSession's beta:virtualLocation
field. Virtual location data is distinct from (physical) location data as it refers not to a physical place but a virtual place like a URL. In OpenActive, this is defined .
When searching for Online Attendance sessions and not Offline or Mixed Attendance sessions, location search parameter geo[radial]
is optional.
Response field (in EventSeries): "eventAttendanceMode": "schema:MixedEventAttendanceMode"
These are sessions that can be attended at a physical or virtual location.
When searching for Mixed Attendance sessions, location search parameter geo[radial]
is required.
It is important to consider how the different modes will be communicated to the end user on the front end.
For example, during the Government restrictions, schema:OnlineEventAttendanceMode
might render something like "Online Video". When the restrictions start to be lifted, think about how sessions withschema:MixedEventAttendanceMode
(e.g. "Online video and in-person") andschema:OfflineEventAttendanceMode
(e.g. "In-person") will be presented to the end user.
upcoming-sessions
: sessions are sorted by the date and time that they occur. Earlier sessions are shown first and later sessions are shown last.
imin:locationSummary
Please note that we will be removing imin:locationSummary
from search results where it is empty, i.e. where it includes information about a virtual session, like the following example:
With this in mind, it is worth considering the following:
Look at imin:locationSummary
in the API results.
If it has at least one item:
This will pertain to a physical location, so print locationSummary[0].name
.
This will display the physical location so people can go to the in-person part of the session if they wish/are allowed to do so.
If it has no items:
Print “N/A” or “Online Video” or similar to illustrate that it does not have a physical location.
At the moment you might be using "LIVESTREAM", which is included at locationSummary.name
(see example above). However, in future, imin:locationSummary
will not exist where there is no information related to a physical location. Therefore, we recommend that you do not code against imin:locationSummary
where it has no information.
The following query parameters are related to searches made for virtual sessions.
isVirtual
Possible values for the isVirtual
parameter are as follows:
true
: only sessions which occur virtually will be returned. This includes sessions with event attendance mode:
schema:OnlineEventAttendanceMode
; and
schema:MixedEventAttendanceMode
.
false
: only sessions which occur physically will be returned. This includes sessions with event attendance mode:
schema:OfflineEventAttendanceMode
; and
schema:MixedEventAttendanceMode
.
Not specified: where isVirtual
is not included in an API call, all three event attendance modes can be returned:
schema:OnlineEventAttendanceMode
;
schema:MixedEventAttendanceMode
; and
schema:OfflineEventAttendanceMode
.
The behaviour of the isVirtual
parameter is dictated by use of the geo[radial]
parameter, as set out below.
geo[radial]
This field is required for non-virtual searches and optional for virtual searches (i.e. where isVirtual=true
).
To return all available virtual classes, you must:
includeisVirtual=true
; and
exclude geo[radial]
.
isVirtuallyCoached
Is the coaching pre-recorded or live? This query parameter can also be used for non-virtual sessions (e.g. a spinning class that takes place in a gym with a pre-recorded coach). This is why it is not prefixed with virtual-
. Possible values for this parameter include:
true
: coach is pre-recorded; and
false
: coach is live.
levelType
For attending virtual sessions, it is especially important to match your own level. This is particularly important for beginners who either want to try something new or have just started. For this, use levelType=imin:BeginnerLevel
.
virtualIsInteractivityPreferred
Possible values for this parameter include:
true
: sessions where the attendee and instructor are advised to interact, e.g. a video conference where all participants can be seen and heard; and
false
: sessions where the attendee and instructor cannot interact, e.g. a live stream where only the instructor can be seen and heard.
Possible values for this query parameter include:
true
: the attendee must have some home equipment in order to participate properly, e.g. a yoga mat. This includes sessions with beta:participantSuppliedEquipment
values:
https://openactive.io/Required
(oa:Required
); and
https://openactive.io/Optional
(oa:Optional
).
false
: the attendee does not need any home equipment in order to participate, e.g. calisthenics. This includes sessions with beta:participantSuppliedEquipment
values:
https://openactive.io/Optional
; and
https://openactive.io/Unavailable
(oa:Unavailable
).
A Virtual Session will have the following fields:
eventAttendanceMode
: (STRING) either:
schema:OnlineEventAttendanceMode
; or
schema:MixedEventAttendanceMode
.
beta:isInteractivityPreferred
: (BOOLEAN) is this a session where attendee and instructor can interact?
beta:participantSuppliedEquipment
: (STRING) does the attendee need to have home equipment in order to participate properly? One of:
oa:Required
- equipment is required;
oa:Optional
- equipment is optional, and the participant can improvise; or
oa:Unavailable
- no equipment required.
location
: this field will NOT be included for virtual-only sessions, i.e. whereeventAttendanceMode
is schema:OnlineEventAttendanceMode
.
beta:virtualLocation
: (VirtualLocation) where the session is virtually located (e.g. a URL).
maximumVirtualAttendeeCapacity
: (NUMBER) the maximum number of connections to a shared virtual space.
An example, which only includes the salient data, of a search response that contains virtual sessions:
We have been working with activity providers on the information about virtual classes that should be included as standard in the open data. It is recommended that they include the following information at a minimum:
Class description;
The URL for livestream classes (if available);
Organiser name;
Organiser website and social media;
Price; and
Whether any equipment is required and if so, what equipment*.
Therefore, we recommend that your front end platform caters for the presence of this information in the API results.
Supported for Searches that may include Virtual Sessions:
Virtual sessions have a beta:affiliatedLocation
rather than a location
field (). For Virtual sessions, geo[radial]
filters on beta:affiliatedLocation
.
Use this to, for example, find virtual sessions that are affiliated with your local borough.
will deliver all virtual classes available via the API.
will deliver a smaller subset of virtual classes, i.e. only those with an actual location included.
beta:affiliatedLocation
: () where the virtual session was physically located before it moved online.
* NB where beta:participantSuppliedEquipment
is oa:Required
, providers are being encouraged to provide clarification on what equipment is required in either attendeeInstruction
or description
(see for further details).