Activities

Introduction to the OpenActive Activity List

According to the OpenActive website:

The OpenActive Activity List is a standardised list of physical activities widely practiced in the UK. Its intent is to improve the accuracy and findability of physical activities by providing standardised labels and identifiers for all the activities it contains.

These physical activities are instances of Concept and form a hierarchy of activities. The Activity List is made up of a list of hierarchical Concepts, with 134 topConceptOf and hundreds more lower-level Concepts.

At imin, we refer to topConceptOf as parent activities and lower-level concepts as children. The purpose of the these Concepts is to easily facilitate a seamless UX for end users when searching for activities.

An example of a Concept hierarchy is Funky HAU2, which is a child of Dance Aerobics, which is a child of Dance Fitness, which is a child of Group Exercise, which itself is one of the 134 topConceptOfs .and, therefore, the parent Concept.

"id": "https://openactive.io/activity-list#0a2a036f-2f60-45c7-98e3-276aee015732",
"identifier": "0a2a036f-2f60-45c7-98e3-276aee015732",
"type": "Concept",
"prefLabel": "Funky HAU2",
"broader": [
"https://openactive.io/activity-list#6b176d87-b82b-4fab-aec1-6d6f94ba8e4c"
],
"notation": "funky_hau2"

We refer to each activity, regardless of hierarchy, listed in the Activity List as a canonical activity. An activity that is not included in the List is referred to as a non-canonical activity.

The imin Platform and Activities

The Facets Endpoint

Activities can be found at the /events-api/v2/facets endpoint with JSONPath: $['imin:index'].activity['imin:item'] (see API Reference for more detail). The aforementioned hierarchy is represented by the broaderTransitive property in the activity object (as seen below) and references the id of its parent activities from the Activity List. This allows for the list of activities in the Facets endpoint to be polyhierarchical.

Bikram Yoga

{
  "id": "https://openactive.io/activity-list#a7f3179d-1640-4621-96d7-92e620a5e3a8",
  "type": "Concept",
  "prefLabel": "Bikram Yoga",
  "inScheme": "https://openactive.io/activity-list",
  "broaderTransitive": [ "https://openactive.io/activity-list#bf1a5e00-cdcf-465d-8c5a-6f57040b7f7e" ]
}

Yoga

{
  "id": "https://openactive.io/activity-list#bf1a5e00-cdcf-465d-8c5a-6f57040b7f7e",
  "type": "Concept",
  "prefLabel": "Yoga",
  "inScheme": "https://openactive.io/activity-list",
  "definition": "Yoga is an ancient form of exercise that focuses on strength, flexibility and breathing to boost physical and mental wellbeing.",
  "broaderTransitive": [ "https://openactive.io/activity-list#984068a7-5b7b-4989-bb33-f96953d8960c" ]
}

We recommend you heavily cache the results of this endpoint, as it is likely to change very infrequently (at most nightly).

Canonical and Non-Canonical Activities

Sometimes, open data providers do not work from the OpenActive Activity List and so the data in their RPDE feeds may include non-canonical activities.

As part of our service, any open data that includes non-canonical activities are matched by our Platform to the relevant concept in the Activity List. By doing so, we are able to ensure that as much open data as possible is high quality and searchable.

Our APIs do not return any items that have non-canonical activities, i.e. those not listed in the Activity List.

Sometimes the open data we consume will not contain activity data at all. Whilst we do our best to ensure a minimum standard of data in our platform, we cannot always guarantee an activity array will be present for each item in the API.

Parents & Children

Each activity array in the imin Platform can have more than one object. These will generally be a hierarchically related. For example:

"activity": [
  {
    "id": "https://openactive.io/activity-list#6b176d87-b82b-4fab-aec1-6d6f94ba8e4c",
    "type": "Concept",
    "prefLabel": "Dance Aerobics"
  },
  {
    "id": "https://openactive.io/activity-list#d3b5104a-2e31-4cca-a278-ef8e0987a764",
    "type": "Concept",
    "prefLabel": "Dance Fitness"
  }
]

NB the parent activity will not always be present in the activity array.

We do our very best to ensure that all activity information accurately reflects the session with which it is associated. However, given the nature of open data, we cannot guarantee this will always be the case. If you notice any data that you think is inaccurate, please let us know.

Find out more...

For information on filtering by Activity, please see here.

Last updated