All Collections
For Developers
SportsEngine API
Introduction to the Platform Data Structure
Introduction to the Platform Data Structure

With many objects and IDs available in the API, let’s spend time understanding how everything connects so you can best leverage the API.

Updated over a week ago

Before getting deep into writing queries and mutations, let’s take a moment to understand how all the various objects connect in the SportsEngine platform. That way, we can write better queries and understand where data intersects.

Organization is where it all starts

SportsEngine is a multi-tenant platform, so everything revolves around organizations. As you go through the documentation, you will find that organizationId is EVERYWHERE! An organizationId is stable, consistent, and rarely changes. OrganizationId is sometimes called an "HQ," the primary way most organizations work with SportsEngine.

If you access multiple organizations on the platform, you must keep track of each organization's ID, as it is a requirement for most queries and mutations. When organizationId is not explicit, it derives from another connected/parent object.

Core objects build on the foundation

The core objects in the API are profiles, events, venues, teams, and registrations. These objects are usually the primary reason most organizations access the API. While these objects are typically connected, it is essential to note that they can exist individually without connection.

Several queries will help access related core objects—for example, the team's query retrieving all events scheduled for a team. While convenient, those situations will always increase the complexity score because they access entirely different data sets.


Information that the organization can access about a person. Depending on the data and permission, this may differ if the person is part of multiple organizations.


Events belong to an organization. If the teams are in two different organizations, that typically means the event is part of a league, which means the league organization is the owner of the event.


Location management for events is done separately from events. These are exclusive to the organization and not shared across organizations.


Teams belong to an organization. Clubs typically manage primary teams. For leagues, franchises, and governing bodies leveraging affiliated season management, the affiliate team contains the data shared for viewing by the parent organization. It will have a different teamId than the primary team.


This teamId defines the information collected in a sign-up and belonging to an organization. When registrations duplicate between organizations, each copy is distinct and not connected.

Interconnecting data between core objects

Connecting data across the platform includes subvenues, registration results, memberships, credentials, suspensions, and eligibility. These objects cannot exist without being attached or multiple core objects.


Subvenues can only exist by being connected to a venue. They help connect a single venue with multiple events unique to each organization.

Registration Results

These cannot exist without a registration and are a direct connection between a single registration and a single profile. If the registration is monetary, it will also connect to a sale.


A membership cannot exist without being connected to a single profile. Memberships can connect to eligibility and credentials depending on how the membership configuration. For leagues, franchises, and governing bodies, a membership can also link to a parent membership (e.g., regional membership to a national membership) - referred to as Linked Memberships.


Eligibility is the largest and most complex intersection of several core and secondary objects across the platform, including profiles, memberships, credentials, and suspensions. Each membership will have its own eligibility in Linked Membership or multiple club assignment situations.


Credentials cannot exist without being connected to a profile. While they typically connect with eligibility and memberships, that connection is optional and can exist without eligibility.


Suspensions must connect to a profile. They will automatically connect with eligibility only when the profile has active eligibility and the suspension is between the start and end dates.

Did this answer your question?