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.

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.

Find out more...

For information on filtering by Activity, please see here.

Last updated