Skip to content

Services

Services available for retrieving Halo Infinite data.

Access service instances via HaloInfiniteClient properties.

DiscoveryUgcService

User-generated content discovery data services.

get_film_by_match_id(match_id) async

Get metadata and download information for a film.

Parameters:

Name Type Description Default
match_id str | UUID

The match ID of the film.

required

Returns:

Type Description
JsonResponse[Film]

The film details.

get_map(asset_id, version_id) async

Get details about a map.

Parameters:

Name Type Description Default
asset_id str | UUID

The asset ID of the map.

required
version_id str | UUID

The version ID of the map.

required

Returns:

Type Description
JsonResponse[Map]

The map details.

get_map_mode_pair(asset_id, version_id) async

Get details about a map mode pair.

Parameters:

Name Type Description Default
asset_id str | UUID

The asset ID of the map mode pair.

required
version_id str | UUID

The version ID of the map mode pair.

required

Returns:

Type Description
JsonResponse[MapModePair]

The map mode pair details.

get_playlist(asset_id, version_id) async

Get details about a playlist.

Parameters:

Name Type Description Default
asset_id str | UUID

The asset ID of the playlist.

required
version_id str | UUID

The version ID of the playlist.

required

Returns:

Type Description
JsonResponse[Playlist]

The playlist details.

get_ugc_game_variant(asset_id, version_id) async

Get details about a game mode.

Parameters:

Name Type Description Default
asset_id str | UUID

The asset ID of the game variant.

required
version_id str | UUID

The version ID of the game variant.

required

Returns:

Type Description
JsonResponse[UgcGameVariant]

The game variant details.

search_assets(start=0, count=25, sort='plays_recent', order='desc', asset_kind=None, term=None, tags=None, author=None, average_rating_min=None, from_date_created_utc=None, to_date_created_utc=None, from_date_modified_utc=None, to_date_modified_utc=None, from_date_published_utc=None, to_date_published_utc=None) async

Search for map, mode, and prefab assets.

Parameters:

Name Type Description Default
start int

Index of the first result to return, starting at 0.

0
count int

Count of results to return. Must be between 1 and 101.

25
sort _SortProperty

Property by which to sort the results. Must be one of the following: "name", "likes", "bookmarks", "plays_recent", "number_of_objects", "date_created_utc", "date_modified_utc", "date_published_utc", "plays_all_time", "parent_asset_count", "average_rating", "number_of_ratings". Defaults to "plays_recent".

'plays_recent'
order Literal['asc', 'desc']

Pass "asc" for ascending or "desc" for descending.

'desc'
asset_kind Literal['map', 'prefab', 'ugc_game_variant'] | None

Type of asset to be searched. Optional. If a value is provided, it must be be one of the following: "map", "prefab", "ugc_game_variant". By default, no filter is applied.

None
term str | None

Search term. Optional.

None
tags Iterable[str] | None

List of tags. Multiple tags are applied with an OR operator. Optional.

None
author str | None

Author ID. Valid values would be in one of the following formats: "xuid()", "aaid()", or "atui()", where is a 16-digit Xbox user ID, is a UUID, and is a pair of UUIDs separated by a period. Optional.

None
average_rating_min float | None

Minimum average rating between 0 and 5. Optional.

None
from_date_created_utc datetime | date | None

Minimum date created. Optional.

None
to_date_created_utc datetime | date | None

Maximum date created. Optional.

None
from_date_modified_utc datetime | date | None

Minimum date modified. Optional.

None
to_date_modified_utc datetime | date | None

Maximum date modified. Optional.

None
from_date_published_utc datetime | date | None

Minimum date published. Optional.

None
to_date_published_utc datetime | date | None

Maximum date published. Optional.

None

Returns:

Type Description
JsonResponse[AssetSearchPage]

A page of up to count search results.

EconomyService

Economy/customization data services.

get_player_customization(xuid, view_type='public') async

Get the customization selections for a player.

Parameters:

Name Type Description Default
xuid str | int

The Xbox Live ID of the player to retrieve data for.

required
view_type Literal['public', 'private']

Use "public" when requesting customization for players other than yourself. The "private" view type only applies to the authenticated player making the request and might include data not visible using the "public" view type.

'public'

Returns:

Type Description
JsonResponse[PlayerCustomization]

The player's customization selections.

GameCmsHacsService

Game content management data services.

get_career_reward_track() async

Get details for the career rank progression reward track.

Returns:

Type Description
JsonResponse[CareerRewardTrack]

The career rank reward track.

get_csr_season_calendar() async

Get IDs and dates for past and current CSR seasons.

CSR seasons represent the time periods between CSR resets.

Returns:

Type Description
JsonResponse[CsrSeasonCalendar]

The CSR season calendar.

get_image(relative_path) async

Get an image from the game content management service.

Parameters:

Name Type Description Default
relative_path str

The relative path to the image, such as "career_rank/ProgressWidget/272_Hero.png".

required

Returns:

Type Description
ImageResponse

The image data.

get_medal_metadata() async

Get details for all medals obtainable in the game.

Returns:

Type Description
JsonResponse[MedalMetadata]

The medal metadata.

get_season_calendar() async

Get IDs and dates for past/current reward track events/operations.

Reward tracks are the progression systems that allow players to earn rewards from the XP earned by playing the game.

Returns:

Type Description
JsonResponse[SeasonCalendar]

The calendar of reward tracks.

ProfileService

Profile data services.

get_current_user() async

Get the current user profile.

Returns:

Type Description
JsonResponse[User]

The user.

get_user_by_gamertag(gamertag) async

Get user profile for the given gamertag.

Parameters:

Name Type Description Default
gamertag str

The gamertag of the player.

required

Returns:

Type Description
JsonResponse[User]

The user.

get_user_by_id(xuid) async

Get user profile for the given Xbox Live ID.

Parameters:

Name Type Description Default
xuid str | int

The Xbox Live ID of the player.

required

Returns:

Type Description
JsonResponse[User]

The user.

get_users_by_id(xuids) async

Get user profiles for the given list of Xbox Live IDs.

Parameters:

Name Type Description Default
xuids Iterable[str | int]

The Xbox Live IDs of the players.

required

Returns:

Type Description
JsonResponse[list[User]]

A list of users.

Raises:

Type Description
TypeError

If xuids is a str instead of an iterable of XUIDs.

SkillService

Skill data services.

get_match_skill(match_id, xuids) async

Get player CSR and team MMR values for a given match and player list.

Parameters:

Name Type Description Default
match_id str | UUID

Halo Infinite match ID.

required
xuids Iterable[str | int]

The Xbox Live IDs of the match's players. Only players in this list will have their skill data returned.

required

Returns:

Type Description
JsonResponse[MatchSkill]

The skill data for the match.

Raises:

Type Description
TypeError

If xuids is a str instead of an iterable of XUIDs.

ValueError

If xuids is empty.

get_playlist_csr(playlist_id, xuids, season_id=None) async

Get player CSR values for a given playlist and player list.

Parameters:

Name Type Description Default
playlist_id str | UUID

Halo Infinite playlist asset ID.

required
xuids Iterable[str | int]

The Xbox Live IDs of the players.

required
season_id str | None

Halo Infinite season ID. If not provided, the current season will be used. Value can be provided as a path, e.g. "Csr/Seasons/CsrSeason5-1.json", or as a bare ID, e.g. "CsrSeason5-1". If provided as a path, the path prefix and ".json" extension will be removed. Case is not important.

None

Returns:

Type Description
JsonResponse[PlaylistCsr]

The summary CSR data for the players in the given playlist.

Raises:

Type Description
TypeError

If xuids is a str instead of an iterable of XUIDs.

ValueError

If xuids is empty.

StatsService

Stats data services.

get_match_count(player) async

Get match counts across different game experiences for a player.

The counts returned are for custom matches, matchmade matches, local matches, and total matches.

Parameters:

Name Type Description Default
player str | int

Xbox Live ID or gamertag of the player to get counts for. Examples of valid inputs include "xuid(1234567890123456)", "1234567890123456", 1234567890123456, and "MyGamertag".

required

Returns:

Type Description
JsonResponse[MatchCount]

The match counts.

get_match_history(player, start=0, count=25, match_type='all') async

Request a batch of matches from a player's match history.

Parameters:

Name Type Description Default
player str | int

Xbox Live ID or gamertag of the player to get counts for. Examples of valid inputs include "xuid(1234567890123456)", "1234567890123456", 1234567890123456, and "MyGamertag".

required
start int

Index of the first match to request, starting at 0.

0
count int

The number of matches to request. Maximum number of results returned is 25.

25
match_type Literal['all', 'matchmaking', 'custom', 'local']

The type of matches to return. One of "all", "matchmaking", "custom", or "local".

'all'

Returns:

Type Description
JsonResponse[MatchHistory]

The requested match history "page" of results.

get_match_stats(match_id) async

Request match details using the Halo Infinite match GUID.

Parameters:

Name Type Description Default
match_id str | UUID

Halo Infinite GUID identifying the match.

required

Returns:

Type Description
JsonResponse[MatchStats]

The match details.

get_service_record(player, match_type='matchmade', season_id=None, game_variant_category=None, is_ranked=None, playlist_asset_id=None) async

Get a service record for a player. Summarizes player stats.

Note that filters (season_id, game_variant_category, is_ranked, and playlist_asset_id) are only applicable to "matchmade" match_type. A warning is issued and the filters are ignored if they are provided for a non-matchmade match_type.

Filters must be combined appropriately. The following are valid: - season_id - season_id, game_variant_category - season_id, game_variant_category, playlist_asset_id - season_id, game_variant_category, is_ranked - season_id, playlist_asset_id - game_variant_category - game_variant_category, is_ranked

To collect possible values for the filter arguments, look at the "subqueries" attribute of an unfiltered service record response.

Parameters:

Name Type Description Default
player str | int

Xbox Live ID or gamertag of the player to get counts for. Examples of valid inputs include "xuid(1234567890123456)", "1234567890123456", 1234567890123456, and "MyGamertag".

required
match_type Literal['matchmade', 'custom', 'local']

The type of games to include in the service record. One of "matchmade", "custom", or "local".

'matchmade'
season_id str | None

The season ID to get service record for. Optional.

None
game_variant_category GameVariantCategory | int | None

The game variant category to filter service record data. See spnkr.parsers.refdata.GameVariantCategory for human-readable values. Optional.

None
is_ranked bool | None

Filter for ranked or unranked games. Optional.

None
playlist_asset_id str | UUID | None

Filter for a specific playlist with its asset ID. Optional.

None

Returns:

Type Description
JsonResponse[ServiceRecord]

The service record for the player with the given filters.

Raises:

Type Description
ValueError

If match_type is not one of "matchmade", "custom", or "local".

ValueError

If filter arguments are inappropriately combined.