There are two special concepts you can make use of in the filter param: grouping and operators.
Grouping
You might want to write queries where your filters are more complicated than filter[first_name]=John&filter[last_name]=Doe You can accomplish this with filter groups using the and and or keywords - filter[or][0][first_name]=John&filter[or][1][first_name]=Jane.
Note: make sure to use numeric groups [0] after the and and or keywords
Operators
You may want to query with operators other than equals like: searching date ranges, matching an item in a collection, or matching part of a string.
To do this, you can post-fix filters with operators. They are specified like __[operator] (two underscores):
__gt(greater than)__gte(greater than or equal)__lt(less than)__lte(less than or equal)__in__notin__isnull__notnull__contains__starts__ends
Default Date Limit (Events Endpoint Only)
The /events endpoint applies a default date filter that limits results to a ±3 month window from the current date, but only if no start or end filters are specified.
If you include filters like filter[start__gte] or filter[end__lte], this default will be skipped automatically. You don’t need to do anything extra.
If you want to retrieve all events without applying any time filter, you can explicitly bypass the default by setting filter[unconstrained]=true.
⚠️ Use with caution: Removing the default date limit can return a large volume of data and may increase the risk of timeouts or errors.
Examples
- Simple Filtering:
Filter resources to those whose first_name ismad&filter[first_name]=mad - Multi-field Filtering:
Filter resources to those whose first_name ismadand whose last_name ismax&filter[first_name]=mad&filter[last_name]=max - Relation Filtering:
Filter resources to those whose league's season's program id is123and whose league is active&filter[league.season.program_id]=123&filter[league.is_active]=true - Filter Operators:
Filter events to those between 2019-03-01 and 2019-03-10&filter[start_date__gte]=2025-03-01&filter[end_date__lte]=2025-03-10 - And/Or Group Filtering:
You can also create sql or/and groups in the filter parameter. This example filters resources to those whose first_name ismadORmax&filter[or][0][first_name]=mad&filter[or][1][first_name]=max - Composite And/Or Group Filtering:
It can be a little tricky making composite and-or groupings. To do it make sure to start with a root AND group. This example will filter responses to those whose first name ismadand last name ismaxORmichael&filter[and][0][first_name]=mad&filter[and][1][or][0][first_name]=max&filter[and][1][or][1][first_name]=michael - Fetching All Events:
- Without Constrains: This example retrieves all events, bypassing the default 3-month constraint.
&filter[unconstrained]=true - Within a Date Range: This example retrieves all events that occurred in the year 2025, bypassing the default 3-month constraint.
filter[start__gt]=2025-01-01T00:00:00&filter[end__lt]=2025-12-31T00:00:00
- Without Constrains: This example retrieves all events, bypassing the default 3-month constraint.
