Skip to content

HoYoLAB Client

HoyolabClient

HoyolabClient(
    cookies: Optional[AnyCookieOrHeader] = None,
    *,
    authkey: Optional[str] = None,
    lang: Lang = "en-us",
    region: Region = OVERSEAS,
    proxy: Optional[str] = None,
    game: Optional[Game] = None,
    uid: Optional[int] = None,
    hoyolab_id: Optional[int] = None,
    device_id: Optional[str] = None,
    device_fp: Optional[str] = None,
    headers: Optional[LooseHeaders] = None,
    cache: Optional[BaseCache] = None,
    debug: bool = False,
    on_cookie_update: Optional[CookieUpdateHook] = None,
)

Hoyolab component.

Methods:

accompany_character async

accompany_character(
    *, role_id: int, topic_id: int
) -> AccompanyResult

Accompany a character, role_id and topic_id can be found by calling get_accompany_characters.

buy_mimo_shop_item async

buy_mimo_shop_item(
    item_id: int,
    *,
    game_id: Optional[int] = None,
    version_id: Optional[int] = None,
    game: Optional[Union[Literal["hoyolab"], Game]] = None,
    lang: Optional[str] = None,
) -> str

Buy an item from the Traveling Mimo shop and return a gift code to redeem it.

check_in_community async

check_in_community() -> None

Check in to the hoyolab community and claim your daily 5 community exp.

claim_mimo_task_reward async

claim_mimo_task_reward(
    task_id: int,
    *,
    game_id: Optional[int] = None,
    version_id: Optional[int] = None,
    game: Optional[Union[Literal["hoyolab"], Game]] = None,
    lang: Optional[str] = None,
) -> None

Claim a Traveling Mimo mission (task) reward.

delete_reply async

delete_reply(*, reply_id: int, post_id: int) -> None

Delete a reply.

draw_mimo_lottery async

draw_mimo_lottery(
    *,
    game_id: Optional[int] = None,
    version_id: Optional[int] = None,
    game: Optional[Union[Literal["hoyolab"], Game]] = None,
    lang: Optional[str] = None,
) -> MimoLotteryResult

Draw a Traveling Mimo lottery.

fetch_mi18n async

fetch_mi18n(
    url: Union[str, URL],
    filename: str,
    *,
    lang: Optional[str] = None,
) -> Mapping[str, str]

Fetch a mi18n file.

finish_mimo_task async

finish_mimo_task(
    task_id: int,
    *,
    game_id: Optional[int] = None,
    version_id: Optional[int] = None,
    game: Optional[Union[Literal["hoyolab"], Game]] = None,
    lang: Optional[str] = None,
) -> None

Finish a Traveling Mimo mission (task) reward.

get_accompany_character_details async

get_accompany_character_details(
    *, topic_id: int, lang: Optional[str] = None
) -> AccompanyCharacterDetails

Get the page details of an accompany character, topic_id can be found by calling get_accompany_characters.

get_accompany_characters async

get_accompany_characters(
    *, lang: Optional[str] = None
) -> Sequence[AccompanyCharacterGame]

Get a list of accompany characters, this endpoint doesn't require cookies.

get_accompany_voice_setting async

get_accompany_voice_setting(
    *, game_id: int, role_id: int
) -> AccompanyVoiceSetting

Get the voice and subtitle language setting of an accompany character.

get_genshin_announcements async

get_genshin_announcements(
    *, uid: Optional[int] = None, lang: Optional[str] = None
) -> Sequence[Announcement]

Get a list of Genshin Impact announcements.

get_hoyolab_user async

get_hoyolab_user(
    hoyolab_id: Optional[int] = None,
    *,
    lang: Optional[str] = None,
) -> FullHoyolabUser

Get a hoyolab user.

get_mimo_games async

get_mimo_games(
    *, lang: Optional[str] = None
) -> Sequence[MimoGame]

Get a list of Traveling Mimo games.

get_mimo_lottery_info async

get_mimo_lottery_info(
    *,
    game_id: Optional[int] = None,
    version_id: Optional[int] = None,
    game: Optional[Union[Literal["hoyolab"], Game]] = None,
    lang: Optional[str] = None,
) -> MimoLotteryInfo

Get Traveling Mimo lottery info.

get_mimo_point_count async

get_mimo_point_count(
    *,
    game: Optional[Union[Literal["hoyolab"], Game]] = None,
) -> int

Get the current Traveling Mimo point count.

get_mimo_point_history async

get_mimo_point_history(
    operation: MimoPointOperation,
    *,
    page: int = 1,
    page_size: int = 20,
    game_id: Optional[int] = None,
    version_id: Optional[int] = None,
    game: Optional[Union[Literal["hoyolab"], Game]] = None,
    lang: Optional[str] = None,
) -> Sequence[MimoPointRecord]

Get the Traveling Mimo point history for the given operation (income or expense).

get_mimo_shop_items async

get_mimo_shop_items(
    *,
    game_id: Optional[int] = None,
    version_id: Optional[int] = None,
    game: Optional[Union[Literal["hoyolab"], Game]] = None,
    lang: Optional[str] = None,
) -> Sequence[MimoShopItem]

Get a list of Traveling Mimo shop items.

get_mimo_tasks async

get_mimo_tasks(
    *,
    game_id: Optional[int] = None,
    version_id: Optional[int] = None,
    game: Optional[Union[Literal["hoyolab"], Game]] = None,
    lang: Optional[str] = None,
) -> Sequence[MimoTask]

Get a list of Traveling Mimo missions (tasks).

get_recommended_users(
    *, limit: int = 200
) -> Sequence[PartialHoyolabUser]

Get a list of recommended active users.

get_starrail_announcements async

get_starrail_announcements(
    *, uid: Optional[int] = None, lang: Optional[str] = None
) -> Sequence[Announcement]

Get a list of Star Rail announcements.

get_web_events async

get_web_events(
    game: Optional[Game] = None,
    *,
    size: int = 15,
    offset: Optional[int] = None,
    lang: Optional[str] = None,
) -> list[WebEvent]

Get a list of web events.

get_zzz_announcements async

get_zzz_announcements(
    *, uid: Optional[int] = None, lang: Optional[str] = None
) -> Sequence[Announcement]

Get a list of Zenless Zone Zero announcements.

join_topic async

join_topic(topic_id: int) -> None

Join a topic.

leave_topic async

leave_topic(topic_id: int) -> None

Leave a topic.

redeem_code async

redeem_code(
    code: str,
    uid: Optional[int] = None,
    *,
    game: Optional[Game] = None,
    lang: Optional[str] = None,
    region: Optional[str] = None,
) -> None

Redeems a gift code for the current user.

reply_to_post async

reply_to_post(content: str, *, post_id: int) -> int

Reply to a community post.

search_users async

search_users(
    keyword: str, *, lang: Optional[str] = None
) -> Sequence[PartialHoyolabUser]

Search hoyolab users.

set_accompany_voice_setting async

set_accompany_voice_setting(
    *,
    game_id: int,
    role_id: int,
    voice_lang: str,
    script_lang: str,
    sync_all_roles: bool = False,
) -> None

Set the voice and subtitle language setting of an accompany character.