Introduction to the Firehose
How does it work?
Unlike the imin Events API, the Firehose is not a search API. It is a "feed" that is compatible with the OpenActive Modelling Specification and published using the OpenActive Paging Specification.
The Firehose has two "types" of data, each of which has 'parent' and 'child' feeds:
Events are split into
SessionSeries
andScheduledSession
s. These concepts are explained here.Facilities are split into
FacilityUse
s andSlot
s. These concepts are explained here.
Terms of use for access to the imin Firehose differ from the standard terms. Please see Firehose Usage Policy & Restrictions.
The Firehose @id
will not resolve
@id
will not resolveThe @id
s found in Firehose (e.g. https://firehose.imin.co/firehose/facility-uses/pulsedursley-FacilityUse-PULSEGYM) are merely an identifier that is guaranteed to be unique.
The Firehose @id
does not need to actually resolve to an object.
Cross-Referencing Endpoints
A SessionSeries
will have one or more ScheduledSession
s and a FacilityUse
will have one or more Slot
s. Additionally some Slots
relate to an IndividualFacilityUse
within a FacilityUse
. In order to link the data together:
ScheduledSession <-> SessionSeries
The ScheduledSession's
data.superEvent
must match the SessionSeries'data["@id"]
.
Slot <-> FacilityUse
For FacilityUses with the
individualFacilityUse
property, then:The Slot's
data.facilityUse
must match one of the FacilityUse'sdata.individualFacilityUse[]["@id"]
IDs. This Slot will relate to a single court (e.g. Badminton Court 3).
For FacilityUses without the
individualFacilityUse
property, then:The Slot's
data.facilityUse
must match the FacilityUse'sdata["@id"]
. This Slot will represent an aggregation of courts (e.g. 6 badminton courts available)
Last updated