Skip to main content
The Sportrix Data fixture catalog lets you navigate from sports down to individual matches. All catalog endpoints require the fixtures scope. Your client is configured with an allowlist of enabled sports — you’ll only ever see data for those sports, and requests outside your allowlist return empty results rather than errors.
1
List your enabled sports
2
Start by fetching the sports your account can access. GET /sports returns a plain array (not paginated) because the list is small and bounded.
3
curl https://api.sportrixdata.com/api/sports \
  -H "X-API-Key: $KEY"
4
[{ "id": 1, "name": "Soccer" }]
5
Note the id — you’ll use it as the sport parameter in every subsequent request. Requesting data for a sport ID that isn’t in this list is not an error; it simply returns an empty result.
6
List leagues for a sport
7
Pass the sport ID to GET /leagues to retrieve all leagues available under that sport. Results are returned in a pagination envelope.
8
curl "https://api.sportrixdata.com/api/leagues?sport=1" \
  -H "X-API-Key: $KEY"
9
{
  "items": [{ "id": 172, "name": "USA USL W-League Women" }],
  "total": 1,
  "limit": 100,
  "offset": 0,
  "count": 1,
  "page": 1,
  "total_pages": 1,
  "has_more": false
}
10
To page through a large result set, increase offset by limit on each request until has_more is false. The maximum page size is 200; values above that are clamped automatically.
11
Filter to active leagues only
12
If you only want leagues that have something happening right now or soon, use GET /leagues/active. It returns the same pagination envelope as /leagues, but only includes leagues with at least one NOT_STARTED or STARTED match.
13
curl "https://api.sportrixdata.com/api/leagues/active?sport=1" \
  -H "X-API-Key: $KEY"
14
This is useful for building a live dashboard — skip the leagues with no activity rather than iterating the full list.
15
List matches for a league
16
With a league ID in hand, fetch its matches using GET /matches. The league parameter is required.
17
curl "https://api.sportrixdata.com/api/matches?league=172" \
  -H "X-API-Key: $KEY"
18
Each item in the response is a match object:
19
{
  "id": 41301,
  "home_team": "Salmon Bay FC (W)",
  "away_team": "West Seattle Rhodies FC (W)",
  "start_time": "2026-06-18T02:00:00Z",
  "status": "NOT_STARTED"
}
20
The match id is what you’ll use when calling /live, /result, or subscribing via WebSocket.
21
Filter matches by status
22
Add the status parameter to narrow results to one phase of play. The three valid values are NOT_STARTED, STARTED, and FINISHED.
23
curl "https://api.sportrixdata.com/api/matches?league=172&status=STARTED" \
  -H "X-API-Key: $KEY"
24
Matches that the data provider has marked as suspended or postponed are never returned by any catalog endpoint. They are filtered out before your request is answered.
25
Filter matches by date range
26
Use start_after and start_before to restrict results to a window of scheduled kick-off times. Both parameters accept ISO 8601 timestamps in UTC.
27
curl "https://api.sportrixdata.com/api/matches?league=172&start_after=2026-06-18T00:00:00Z&start_before=2026-06-19T00:00:00Z" \
  -H "X-API-Key: $KEY"
28
You can combine date filters with a status filter in the same request.
29
Get a single match
30
Once you know a match ID, retrieve it directly with GET /matches/{id}.
31
curl "https://api.sportrixdata.com/api/matches/41301" \
  -H "X-API-Key: $KEY"
32
This returns the match object directly (not inside a pagination envelope). A 404 is returned if the match doesn’t exist, is in a sport outside your allowlist, or has been suspended or postponed.