Skip to content

Resource UserResource

CrucifiedPain edited this page Jun 26, 2026 · 11 revisions

UserResource (client.user)

Endpoints: • user.getUserById • user.getUserLite • user.getUsersByCountry (cursor-paginated)

.collect_all()

Fetch every user from every country concurrently using auto pagination.

This is the fastest way to retrieve all users in the game. It:

  1. Fetches all country IDs via country.getAllCountries.
  2. Concurrently paginates through users for all countries.

Args: concurrency: Max concurrent requests.

Returns: A flat list of all :class:UserLite objects across every country.

Signature

await client.user.collect_all(*, concurrency: 'int' = 500) -> 'list[UserLite]'

Parameters

Name Type Default
concurrency int 500

.collect_by_country()

Return all users in a country as a flat list, fetched in parallel.

Signature

await client.user.collect_by_country(country_id: 'str', oldest_date: 'datetime | str | None' = None, time_slice_days: 'int' = 30, concurrency: 'int' = 500, **kwargs: 'Any') -> 'list[UserLite]'

Parameters

Name Type Default
country_id str *Required*
oldest_date `datetime str
time_slice_days int 30
concurrency int 500
kwargs Any *Required*

.get_by_country()

Get users belonging to a country (cursor-paginated).

Signature

await client.user.get_by_country(country_id: 'str', *, limit: 'int' = 10, cursor: 'str | None' = None, auto_items: 'bool' = False, max_pages: 'int | float' = inf, cursor_end: 'str | None' = None) -> 'CursorPage[UserLite] | AsyncIterator[UserLite]'

Parameters

Name Type Default
country_id str *Required*
limit int 10
cursor `str None`
auto_items bool False
max_pages `int float`
cursor_end `str None`

.get_by_id()

Get a user's profile by ID.

Signature

await client.user.get_by_id(user_id: 'str') -> 'User'

Parameters

Name Type Default
user_id str *Required*

.get_lite()

Get a user's lite profile by ID. (Deprecated in favor of get_by_id)

Signature

await client.user.get_lite(user_id: 'str') -> 'UserLite'

Parameters

Name Type Default
user_id str *Required*

.get_many()

Fetch multiple users by ID concurrently using the auto-batcher.

Signature

await client.user.get_many(user_ids: 'list[str]', *, concurrency: 'int' = 500) -> 'list[User | None]'

Parameters

Name Type Default
user_ids list[str] *Required*
concurrency int 500

.invalidate_cache()

Clear the SWR cache for all resources.

Signature

await client.user.invalidate_cache() -> 'None'

Clone this wiki locally