Filtering
Filter the unneeded data for more efficient responses!
In this chapter, we’ll teach you how to filter out data from our API, which is useful when you want to request specific data and can omit the rest for faster response time. You can filter out data for various parameters per endpoint. See our API reference guide for more detailed information. For this tutorial, we’ll use the get fixtures by date endpoint.
This endpoint has the following parameters:
  • Leagues: filter on league IDs
  • Bookmakers*: filter on bookmaker IDs
  • Markets:* filter on market IDs
  • Status: filter on status
You can only filter on the bookmakers & markets parameters when you've enriched your response with the odds include.
In this tutorial, we’ll show you step by step how filtering works, but most importantly, why you would want to use it.

Create the request

First, we’ll show you why exactly filtering is useful. For example, we want to have all the fixtures on a specific date of the Italian Serie A (league id: 384).
As mentioned above, we’re going to use the same endpoint as in our includes tutorial. Requesting all the fixtures played on the 2nd of August 2020:
Request
Response
Field Description
1
https://soccer.sportmonks.com/api/v2.0/fixtures/date/2020-08-02?api_token={API_TOKEN}
Copied!
1
"data": [
2
{
3
"id": 11999555,
4
"league_id": 791,
5
"season_id": 16732,
6
"stage_id": 77446206,
7
"round_id": 187825,
8
"group_id": null,
9
"aggregate_id": null,
10
"venue_id": 1466,
11
"referee_id": 26134,
12
"localteam_id": 2451,
13
"visitorteam_id": 233261,
14
"winner_team_id": 233261,
15
"weather_report": {
16
"code": "clouds",
17
"type": "few clouds",
18
"icon": "https://cdn.sportmonks.com/images/weather/02n.png",
19
"temperature": {
20
"temp": 80.01,
21
"unit": "fahrenheit"
22
},
23
"temperature_celcius": {
24
"temp": 26.7,
25
"unit": "celcius"
26
},
27
"clouds": "20%",
28
"humidity": "42%",
29
"pressure": 1015,
30
"wind": {
31
"speed": "8.05 m/s",
32
"degree": 330
33
},
34
"coordinates": {
35
"lat": 35.47,
36
"lon": -97.52
37
},
38
"updated_at": "2020-08-02T02:00:08.649722Z"
39
},
40
"commentaries": false,
41
"attendance": null,
42
"pitch": "Good",
43
"details": null,
44
"neutral_venue": false,
45
"winning_odds_calculated": true,
46
"formations": {
47
"localteam_formation": null,
48
"visitorteam_formation": null
49
},
50
"scores": {
51
"localteam_score": 0,
52
"visitorteam_score": 3,
53
"localteam_pen_score": null,
54
"visitorteam_pen_score": null,
55
"ht_score": "0-2",
56
"ft_score": "0-3",
57
"et_score": null,
58
"ps_score": null
59
},
60
"time": {
61
"status": "FT",
62
"starting_at": {
63
"date_time": "2020-08-02 00:00:00",
64
"date": "2020-08-02",
65
"time": "00:00:00",
66
"timestamp": 1596326400,
67
"timezone": "UTC"
68
},
69
"minute": 90,
70
"second": null,
71
"added_time": null,
72
"extra_minute": null,
73
"injury_time": null
74
},
75
"coaches": {
76
"localteam_coach_id": 37427975,
77
"visitorteam_coach_id": 32013107
78
},
79
"standings": {
80
"localteam_position": 10,
81
"visitorteam_position": 3
82
},
83
"assistants": {
84
"first_assistant_id": 26754,
85
"second_assistant_id": 53662,
86
"fourth_official_id": 26135
87
},
88
"leg": "1/1",
89
"colors": {
90
"localteam": {
91
"color": "#0B750B",
92
"kit_colors": "#008040,#008040,#008040,#00C1BA,#C40010,#0046A8,#F0F0F0"
93
},
94
"visitorteam": {
95
"color": "#D6003D",
96
"kit_colors": "#0046A8,#0046A8,#D6003D,#D6003D,#FF0000,#0000FF,#D6003D"
97
}
98
},
99
"deleted": false,
100
"is_placeholder": false,
101
},
Copied!
Field
Description
data
Opens an array of data you've requested
id
A unique fixture id
league_id
The unique id of the league the fixture belongs to
season_id
The unique id of the season the fixture belongs to
stage_id
The unique id of the stage the fixture belongs to
round_id
The unique id of the round the fixture belongs to
group_id
The unique id of the group the fixture belongs to
aggregate_id
Indicates if the fixture has an aggregated score
venue_id
The unique id of the venue the fixture is played at
referee_id
The unique id of the referee that is in charge of the fixture
localteam_id
The unique id of the local team
visitorteam_id
The unique id of the visitor team
winnerteam_id
Contains the id of the team that won the fixture
weather_report
Opens an array of weather details. Possible values of the data in this array can be found in our statuses and definitions
commentaries
Indicates if this fixture has commentaries available
attendance
Give information about the visitor attendance of the fixture
pitch
Gives information about the pitch. Possible values can be found in our statuses and definitions
details
Optional additional information.
neutral_venue
Indicates if the fixture was played at a neutral fixture. This often happens in cup finals

Evaluate the response

The request works, but it is far from efficient. While you do receive the data you requested, it is incredibly hard to find the data for only the Italian Serie A (league id: 384) because you’ve just requested every single fixture on that date. For this example, we made the request with an Enterprise Plan subscribed API token, which means that the API would return all fixtures of 1200+ leagues.
Note, that there is only one league id in the previous response snippet. And it's not a fixture from the Italian Serie A (league id: 384).
You can find a short overview of the response at the bottom of the request. This is called the meta description:
Meta Section
Field Description
1
],
2
"pagination": {
3
"total": 570,
4
"count": 100,
5
"per_page": 100,
6
"current_page": 1,
7
"total_pages": 6,
8
"links": {
9
"next": "https://soccer.sportmonks.com/api/v2.0/fixtures/date/2020-08-02?page=2"
10
}
11
}
12
}
Copied!
Field
Description
pagination
Opens an array of information about the pages in the API response
total
The total amount of results the API returns
count
The amount of results on the current page
per_page
The amount of results per page
current_page
The number of page currently browsed
total_pages
The total number of pages
links
The link if you want to go to the next API page
As you can see, the API returns a total of 570 results with 100 results per page. Obviously, this is way too much if you only want to request fixtures for a specific league. Therefore, this request is inefficient and needs some slight adjustments.
Please check our pagination tutorial for more information about pages.

Improve the request

This is where filtering comes into play. Because we only want the fixtures of the Italian Serie A (league id: 384) in our response. We can easily exclude the rest of the data that we won’t be needing. Simply add the leagues parameter to your request:
1
https://soccer.sportmonks.com/api/v2.0/fixtures/date/2020-08-02?api_token={API_TOKEN}&leagues={IDs}
Copied!
Now, you can simply add the league id of the Italian Serie A to your request: &leagues=384
The result? Only five fixtures instead of 570! Again, you can see this in the meta description of the response.
Request
Response
Meta Section
1
https://soccer.sportmonks.com/api/v2.0/fixtures/date/2020-08-02?api_token={API_TOKEN}&leagues=384
Copied!
1
{
2
"data": [
3
{
4
"id": 11937816,
5
"league_id": 384,
6
"season_id": 16415,
7
"stage_id": 77445257,
8
"round_id": 180800,
9
"group_id": null,
10
"aggregate_id": null,
11
"venue_id": 7316,
12
"referee_id": 15303,
13
"localteam_id": 394,
14
"visitorteam_id": 109,
15
"winner_team_id": 109,
16
"weather_report": {
17
"code": "rain",
18
"type": "light rain",
19
"icon": "https://cdn.sportmonks.com/images/weather/10d.png",
20
"temperature": {
21
"temp": 84.38,
22
"unit": "fahrenheit"
23
},
24
"temperature_celcius": {
25
"temp": 29.1,
26
"unit": "celcius"
27
},
28
"clouds": "4%",
29
"humidity": "55%",
30
"pressure": 1009,
31
"wind": {
32
"speed": "7.7 m/s",
33
"degree": 103
34
},
35
"coordinates": {
36
"lat": 44.8,
37
"lon": 11.83
38
},
39
"updated_at": "2020-08-02T17:45:03.076667Z"
40
},
41
"commentaries": true,
42
"attendance": 0,
43
"pitch": null,
44
"details": null,
45
"neutral_venue": false,
46
"winning_odds_calculated": true,
47
"formations": {
48
"localteam_formation": "4-4-1-1",
49
"visitorteam_formation": "3-5-2"
50
},
51
"scores": {
52
"localteam_score": 1,
53
"visitorteam_score": 3,
54
"localteam_pen_score": null,
55
"visitorteam_pen_score": null,
56
"ht_score": "1-1",
57
"ft_score": "1-3",
58
"et_score": null,
59
"ps_score": null
60
},
61
"time": {
62
"status": "FT",
63
"starting_at": {
64
"date_time": "2020-08-02 16:00:00",
65
"date": "2020-08-02",
66
"time": "16:00:00",
67
"timestamp": 1596384000,
68
"timezone": "UTC"
69
},
70
"minute": 90,
71
"second": null,
72
"added_time": null,
73
"extra_minute": null,
74
"injury_time": null
75
},
76
"coaches": {
77
"localteam_coach_id": 932371,
78
"visitorteam_coach_id": 896626
79
},
80
"standings": {
81
"localteam_position": 20,
82
"visitorteam_position": 9
83
},
84
"assistants": {
85
"first_assistant_id": 12803,
86
"second_assistant_id": 14003,
87
"fourth_official_id": 16419
88
},
89
"leg": "1/1",
90
"colors": {
91
"localteam": {
92
"color": "#F4F48A",
93
"kit_colors": "#F4F48A,#F4F48A,#F4F48A,#F4F48A,#F0F0F0,#0046A8,#0A0A0A"
94
},
95
"visitorteam": {
96
"color": "#482F8A",
97
"kit_colors": "#482F8A,#482F8A,#5B3BAE,#5B3BAE,#482F8A,#482F8A,#482F8A"
98
}
99
},
100
"deleted": false
101
},
102
{
103
"id": 11937817,
104
"league_id": 384,
105
"season_id": 16415,
106
"stage_id": 77445257,
107
"round_id": 180800,
108
"group_id": null,
109
"aggregate_id": null,
110
"venue_id": 86,
111
"referee_id": 17862,
112
"localteam_id": 102,
113
"visitorteam_id": 1123,
114
"winner_team_id": 102,
115
"weather_report": {
116
"code": "clouds",
117
"type": "scattered clouds",
118
"icon": "https://cdn.sportmonks.com/images/weather/03n.png",
119
"temperature": {
120
"temp": 70.77,
121
"unit": "fahrenheit"
122
},
123
"temperature_celcius": {
124
"temp": 21.5,
125
"unit": "celcius"
126
},
127
"clouds": "40%",
128
"humidity": "78%",
129
"pressure": 1008,
130
"wind": {
131
"speed": "3.36 m/s",
132
"degree": 300
133
},
134
"coordinates": {
135
"lat": 44.5,
136
"lon": 9.07
137
},
138
"updated_at": "2020-08-02T20:30:02.943964Z"
139
},
140
"commentaries": true,
141
"attendance": 0,
142
"pitch": null,
143
"details": null,
144
"neutral_venue": false,
145
"winning_odds_calculated": true,
146
"formations": {
147
"localteam_formation": "3-5-2",
148
"visitorteam_formation": "3-4-2-1"
149
},
150
"scores": {
151
"localteam_score": 3,
152
"visitorteam_score": 0,
153
"localteam_pen_score": null,
154
"visitorteam_pen_score": null,
155
"ht_score": "3-0",
156
"ft_score": "3-0",
157
"et_score": null,
158
"ps_score": null
159
},
160
"time": {
161
"status": "FT",
162
"starting_at": {
163
"date_time": "2020-08-02 18:45:00",
164
"date": "2020-08-02",
165
"time": "18:45:00",
166
"timestamp": 1596393900,
167
"timezone": "UTC"
168
},
169
"minute": 90,
170
"second": null,
171
"added_time": null,
172
"extra_minute": null,
173
"injury_time": null
174
},
175
"coaches": {
176
"localteam_coach_id": 364995,
177
"visitorteam_coach_id": 127980
178
},
179
"standings": {
180
"localteam_position": 17,
181
"visitorteam_position": 11
182
},
183
"assistants": {
184
"first_assistant_id": 15790,
185
"second_assistant_id": 15305,
186
"fourth_official_id": 14084
187
},
188
"leg": "1/1",
189
"colors": {
190
"localteam": {
191
"color": "#D82520",
192
"kit_colors": "#1C1A48,#D82520,#1C1A48,#D82520,#5C8FAE,#FFDF1B,#1C1A48"
193
},
194
"visitorteam": {
195
"color": "#FFDF1B",
196
"kit_colors": "#FFDF1B,#FFDF1B,#F0F0F0,#00C1BA,#C40010,#0046A8,#FFDF1B"
197
}
198
},
199
"deleted": false
200
},
201
],
Copied!
1
"pagination": {
2
"total": 5,
3
"count": 5,
4
"per_page": 100,
5
"current_page": 1,
6
"total_pages": 1,
7
"links": {}
8
}
9
}
10
}
Copied!
Did you get a blank response?
Note that there may be no fixtures on the date you’ve requested in the leagues you’ve access to.
Since we’re on a roll, we might as well filter on more than just one league. Simply add more league ids! You can separate them with a comma:
1
https://soccer.sportmonks.com/api/v2.0/fixtures/date/2020-08-02?api_token={API_TOKEN}&leagues=8,384,501,271....etc.
Copied!

Filtering and using includes

In the previous chapter, you’ve learned about includes. Thanks to our API’s flexibility, you can filter and use includes in the same request! Let’s mix up the previous request with some includes:
Request
Response
1
https://soccer.sportmonks.com/api/v2.0/fixtures/date/2020-08-02?api_token={API_TOKEN}&include=localTeam,visitorTeam,events&leagues=384
Copied!
1
{
2
"data": [
3
{
4
"id": 11937816,
5
"league_id": 384,
6
"season_id": 16415,
7
"stage_id": 77445257,
8
"round_id": 180800,
9
"group_id": null,
10
"aggregate_id": null,
11
"venue_id": 7316,
12
"referee_id": 15303,
13
"localteam_id": 394,
14
"visitorteam_id": 109,
15
"winner_team_id": 109,
16
"weather_report": {
17
"code": "rain",
18
"type": "light rain",
19
"icon": "https://cdn.sportmonks.com/images/weather/10d.png",
20
"temperature": {
21
"temp": 84.38,
22
"unit": "fahrenheit"
23
},
24
"temperature_celcius": {
25
"temp": 29.1,
26
"unit": "celcius"
27
},
28
"clouds": "4%",
29
"humidity": "55%",
30
"pressure": 1009,
31
"wind": {
32
"speed": "7.7 m/s",
33
"degree": 103
34
},
35
"coordinates": {
36
"lat": 44.8,
37
"lon": 11.83
38
},
39
"updated_at": "2020-08-02T17:45:03.076667Z"
40
},
41
"commentaries": true,
42
"attendance": 0,
43
"pitch": null,
44
"details": null,
45
"neutral_venue": false,
46
"winning_odds_calculated": true,
47
"formations": {
48
"localteam_formation": "4-4-1-1",
49
"visitorteam_formation": "3-5-2"
50
},
51
"scores": {
52
"localteam_score": 1,
53
"visitorteam_score": 3,
54
"localteam_pen_score": null,
55
"visitorteam_pen_score": null,
56
"ht_score": "1-1",
57
"ft_score": "1-3",
58
"et_score": null,
59
"ps_score": null
60
},
61
"time": {
62
"status": "FT",
63
"starting_at": {
64
"date_time": "2020-08-02 16:00:00",
65
"date": "2020-08-02",
66
"time": "16:00:00",
67
"timestamp": 1596384000,
68
"timezone": "UTC"
69
},
70
"minute": 90,
71
"second": null,
72
"added_time": null,
73
"extra_minute": null,
74
"injury_time": null
75
},
76
"coaches": {
77
"localteam_coach_id": 932371,
78
"visitorteam_coach_id": 896626
79
},
80
"standings": {
81
"localteam_position": 20,
82
"visitorteam_position": 9
83
},
84
"assistants": {
85
"first_assistant_id": 12803,
86
"second_assistant_id": 14003,
87
"fourth_official_id": 16419
88
},
89
"leg": "1/1",
90
"colors": {
91
"localteam": {
92
"color": "#F4F48A",
93
"kit_colors": "#F4F48A,#F4F48A,#F4F48A,#F4F48A,#F0F0F0,#0046A8,#0A0A0A"
94
},
95
"visitorteam": {
96
"color": "#482F8A",
97
"kit_colors": "#482F8A,#482F8A,#5B3BAE,#5B3BAE,#482F8A,#482F8A,#482F8A"
98
}
99
},
100
"deleted": false,
101
"is_placeholder" false,
102
"localTeam": {
103
"data": {
104
"id": 394,
105
"legacy_id": 2543,
106
"name": "SPAL",
107
"short_code": "SPA",
108
"twitter": "@spalferrara",
109
"country_id": 251,
110
"national_team": false,
111
"founded": 1907,
112
"logo_path": "https://cdn.sportmonks.com/images//soccer/teams/10/394.png",
113
"venue_id": 7316,
114
"current_season_id": 17533
115
}
116
},
117
"visitorTeam": {
118
"data": {
119
"id": 109,
120
"legacy_id": 176,
121
"name": "Fiorentina",
122
"short_code": "FIO",
123
"twitter": "@acffiorentina",
124
"country_id": 251,
125
"national_team": false,
126
"founded": 1926,
127
"logo_path": "https://cdn.sportmonks.com/images//soccer/teams/13/109.png",
128
"venue_id": 7223,
129
"current_season_id": 17488
130
}
131
},
132
"events": {
133
"data": [
134
{
135
"id": 11937816001,
136
"team_id": "109",
137
"type": "goal",
138
"var_result": null,
139
"fixture_id": 11937816,
140
"player_id": 129152,
141
"player_name": "A. Duncan",
142
"related_player_id": 129836,
143
"related_player_name": "F. Chiesa",
144
"minute": 30,
145
"extra_minute": null,
146
"reason": null,
147
"injuried": null,
148
"result": "0-1"
149
},
150
{
151
"id": 11937816002,
152
"team_id": "394",
153
"type": "goal",
154
"var_result": null,
155
"fixture_id": 11937816,
156
"player_id": 129446,
157
"player_name": "M. D'Alessandro",
158
"related_player_id": 129010,
159
"related_player_name": "M. Valoti",
160
"minute": 39,
161
"extra_minute": null,
162
"reason": null,
163
"injuried": null,
164
"result": "1-1"
165
},
166
{
167
"id": 11937816003,
168
"team_id": "394",
169
"type": "yellowcard",
170
"var_result": null,
171
"fixture_id": 11937816,
172
"player_id": 130165,
173
"player_name": "M. Fares",
174
"related_player_id": null,
175
"related_player_name": null,
176
"minute": 45,
177
"extra_minute": 2,
178
"reason": "Holding",
179
"injuried": null,
180
"result": null
181
},
182
{
183
"id": 11937816004,
184
"team_id": "109",
185
"type": "substitution",
186
"var_result": null,
187
"fixture_id": 11937816,
188
"player_id": 131955,
189
"player_name": "C. Kouame",
190
"related_player_id": 786811,
191
"related_player_name": "K. Agudelo",
192
"minute": 55,
193
"extra_minute": null,
194
"reason": null,
195
"injuried": null,
196
"result": null
197
},
198
{
199
"id": 11937816005,
200
"team_id": "394",
201
"type": "substitution",
202
"var_result": null,
203
"fixture_id": 11937816,
204
"player_id": 12790660,
205
"player_name": "K. Horvath",
206
"related_player_id": 37397147,
207
"related_player_name": "J. A. Cuellar Mendoza",
208
"minute": 61,
209
"extra_minute": null,
210
"reason": null,
211
"injuried": null,
212
"result": null
213
},
214
{
215
"id": 11937816006,
216
"team_id": "394",
217
"type": "substitution",
218
"var_result": null,
219
"fixture_id": 11937816,
220
"player_id": 133364,
221
"player_name": "G. Strefezza",
222
"related_player_id": 129949,
223
"related_player_name": "A. Murgia",
224
"minute": 61,
225
"extra_minute": null,
226
"reason": null,
227
"injuried": null,
228
"result": null
229
},
230
{
231
"id": 11937816007,
232
"team_id": "109",
233
"type": "substitution",
234
"var_result": null,
235
"fixture_id": 11937816,
236
"player_id": 133805,
237
"player_name": "P. Cutrone",
238
"related_player_id": 177988,
239
"related_player_name": "D. Vlahovic",
240
"minute": 65,
241
"extra_minute": null,
242
"reason": null,
243
"injuried": null,
244
"result": null
245
},
246
{
247
"id": 11937816008,
248
"team_id": "109",
249
"type": "substitution",
250
"var_result": null,
251
"fixture_id": 11937816,
252
"player_id": 3181370,
253
"player_name": "R. Sottil",
254
"related_player_id": 131982,
255
"related_player_name": "L. Venuti",
256
"minute": 65,
257
"extra_minute": null,
258
"reason": null,
259
"injuried": null,
260
"result": null
261
},
262
{
263
"id": 11937816009,
264
"team_id": "394",
265
"type": "substitution",
266
"var_result": null,
267
"fixture_id": 11937816,
268
"player_id": 129975,
269
"player_name": "F. Di Francesco",
270
"related_player_id": 129010,
271
"related_player_name": "M. Valoti",
272
"minute": 80,
273
"extra_minute": null,
274
"reason": null,
275
"injuried": true,
276
"result": null
277
},
278
{
279
"id": 11937816010,
280
"team_id": "394",
281
"type": "substitution",
282
"var_result": null,
283
"fixture_id": 11937816,
284
"player_id": 129551,
285
"player_name": "B. Salamon",
286
"related_player_id": 130165,
287
"related_player_name": "M. Fares",
288
"minute": 80,
289
"extra_minute": null,
290
"reason": null,
291
"injuried": null,
292
"result": null
293
},
294
{
295
"id": 11937816011,
296
"team_id": "394",
297
"type": "substitution",
298
"var_result": null,
299
"fixture_id": 11937816,
300
"player_id": 89660,
301
"player_name": "G. Tunjov",
302
"related_player_id": 129446,
303
"related_player_name": "M. D'Alessandro",
304
"minute": 86,
305
"extra_minute": null,
306
"reason": null,
307
"injuried": true,
308
"result": null
309
},
310
{
311
"id": 11937816012,
312
"team_id": "109",
313
"type": "goal",
314
"var_result": null,
315
"fixture_id": 11937816,
316
"player_id": 131955,
317
"player_name": "C. Kouame",
318
"related_player_id": 129694,
319
"related_player_name": "E. Pulgar",
320
"minute": 89,
321
"extra_minute": null,
322
"reason": null,
323
"injuried": null,
324
"result": "1-2"
325
},
326
{
327
"id": 11937816013,
328
"team_id": "109",
329
"type": "yellowcard",
330
"var_result": null,
331
"fixture_id": 11937816,
332
"player_id": 129836,
333
"player_name": "F. Chiesa",
334
"related_player_id": null,
335
"related_player_name": null,
336
"minute": 90,
337
"extra_minute": 2,
338
"reason": "Tripping",
339
"injuried": null,
340
"result": null
341
},
342
{
343
"id": 11937816015,
344
"team_id": "109",
345
"type": "substitution",
346
"var_result": null,
347
"fixture_id": 11937816,
348
"player_id": 2170272,
349
"player_name": "A. Terzic",
350
"related_player_id": 129152,
351
"related_player_name": "A. Duncan",
352
"minute": 90,
353
"extra_minute": 5,
354
"reason": null,
355
"injuried": null,
356
"result": null
357
},
358
{
359
"id": 11937816016,
360
"team_id": "109",
361
"type": "substitution",
362
"var_result": null,
363
"fixture_id": 11937816,
364
"player_id": 24837939,
365
"player_name": "C. Dalle Mura",
366
"related_player_id": 129836,
367
"related_player_name": "F. Chiesa",
368
"minute": 90,
369
"extra_minute": 5,
370
"reason": null,
371
"injuried": null,
372
"result": null
373
},
374
{
375
"id": 11937816014,
376
"team_id": "109",
377
"type": "penalty",
378
"var_result": null,
379
"fixture_id": 11937816,
380
"player_id": 129694,
381
"player_name": "E. Pulgar",
382
"related_player_id": null,
383
"related_player_name": null,
384
"minute": 90,
385
"extra_minute": 4,
386
"reason": null,
387
"injuried": null,
388
"result": "1-3"
389
}
390
]
391
}
392
},
Copied!
Just like that, you have built an efficient request and experienced the flexibility of our API. By filtering the request on the data you need, you can save yourself from a lot of irrelevant data. Moreover, you can combine filtering with includes as well. The possibilities are near limitless! Next, we'll be covering limiting API responses.