All Collections
For Developers
SportsEngine API
Connecting Memberships & Eligibility
Connecting Memberships & Eligibility

Knowing who is eligible and when they can participate is critical for safety in youth sports.

Updated over a week ago

Eligibility begins with purchasing a membership and building credentials. Users must complete the credentials for the profile of an Athlete/Coach/Staff to be eligible to participate. Credentials can include but are not limited to waivers, policies, background screenings, education, or abuse prevention training.

It is important to note that memberships connect to a profile once purchased. Free memberships will be available immediately. In some situations, like suspensions or multiple club assignments, requested memberships need to be reviewed and will be available when they are approved.

The last thing to remember about eligibility is that it will calculate upon query. Credential statuses can be overridden or suspended at any time, which will change eligibility status. See Leveraging Webhooks for Data Changes to receive eligibility changes in real time.

Memberships and Eligibility for a Profile

The best place to get all the information for a specific person is the profile(id) query. Those profiles will have an array of memberships containing eligibility and credentials. It is important to note that not all memberships will have eligibility, as it is optional upon set up.

query Profile { 
profile(id: 6874569, organizationId: 12345) {
id
firstName
lastName
memberships {
name
memberId
eligibility {
end
start
status
credentials {
category
completed
expires
name
start
status
}
}
}
}
}

In the response, the membership is in the credentials list. It is included in the list because membership is treated like a credential when calculating eligibility status.

{ 
"data": {
"eligibility": {
"pageInformation": {
"count": 1,
"page": 1,
"pages": 1,
"perPage": 25
},
"results": [
{
"end": "2024-09-01T04:59:59.000Z",
"firstName": "Philip",
"lastName": "Fry",
"memberId": "4897354",
"middleName": "J",
"start": "2023-11-28T13:20:01.927Z",
"status": "eligible",
"suffix": "",
"profileId": "6874569",
"credentials": [
{
"category": "membership”,
"completed": "2023-11-28T13:20:02.000Z",
"expires": "2024-09-01T05:59:59.000Z",
"name": "23-24 Player",
"start": "2023-09-01T06:00:00.000Z",
"status": "complete"
}
]
}
]
}
}
}

Search Eligibility Using a Keyword

There are several scenarios where you will need an exact profile ID to look up eligibility; this is where a keyword search helps get the correct information. The eligibility query keyword is a case-insensitive partial match on first name, last name, and member ID. Here is a query leveraging the eligibility query with a keyword and organization ID (organization ID is required).

query Eligibility { 
eligibility(keyword: "6874569", organizationId: 12345) {
pageInformation {
count
page
pages
perPage
}
results {
end
firstName
lastName
memberId
middleName
start
status
suffix
profileId
credentials {
category
completed
expires
name
start
status
}
}
}
}

Add the affiliation ID to the query to extend your eligibility search across an entire affiliation. Results will only populate if the organization is part of the affiliation.

Filtering with Membership Assignment

Membership assignment is a feature that connects a membership from a governing body or league (typically the root organization) to a specific club within an affiliation. This feature is helpful when finding everyone eligible and assigned to a particular organization. Be aware that not all memberships have the assignment feature enabled.

query Eligibility {     
eligibility(
organizationId: 12345
organizationAssignedType: ASSIGNED
organizationAssignedId: 67890
) {
pageInformation {
count
page
pages
perPage
}
results {
end
firstName
lastName
memberId
middleName
start
status
suffix
profileId
credentials {
category
completed
expires
name
start
status
}
}
}
}

To get the inverse of this query, see the enumeration on organizationAssignedStatus to find everyone with unassigned memberships. Exclude this attribute if you want all memberships regardless of assignment.

Connecting Teams and Eligibility

All players and staff on a team have the rosterStatus attribute. The attribute combines division participation rules, membership, and eligibility into a single status. To get details of their eligibility, you must use the profile(id) query with the player/staff profileId on the team.

In addition, every team has a rosterStatus attribute. rosterStatus is a roll-up of all staff and players on the team. Below are query examples focusing on rosterStatus for a team and all the players/staff.

query Team { 
team(id: "11eaec3a-a8fe-942e-9141-eea1e32bb687") {
id
name
rosterStatus
players {
firstName
lastName
profileId
rosterStatus
}
staff {
firstName
lastName
profileId
rosterStatus
title
}
}
}

query Teams { 
teams(organizationId: 22518) {
results {
id
name
rosterStatus
players {
firstName
lastName
profileId
rosterStatus
}
staff {
firstName
lastName
rosterStatus
title
profileId
}
}
pageInformation {
count
page
pages
perPage
}
}
}
Did this answer your question?