CompanyResource (client.company)
Endpoints:
• company.getById
• company.getCompanies (cursor-paginated, filter by userId)
• company.getRecommendedRegionIdsByItemCode
• company.getProductionBonus
.collect_all()
Convenience: fetch all company IDs globally (or by country if passed)
using parallel slicing. This is much faster than fetching sequentially.
Returns ID strings as exposed by company.getCompanies. Hydrate with
:meth:get_many when full objects are needed.
Signature
await client.company.collect_all(oldest_date: 'datetime | str | None' = None, time_slice_days: 'int' = 30, concurrency: 'int' = 500, **kwargs: 'Any') -> 'list[str]'
Parameters
| Name |
Type |
Default |
oldest_date |
datetime | str |
None |
time_slice_days |
int |
30 |
concurrency |
int |
500 |
kwargs |
Any |
Required |
.collect_by_users()
Fetch all companies owned by a list of users.
Uses native tRPC batching to group up to 50 user queries per HTTP request,
making it extremely fast and rate-limit friendly.
Args:
user_ids: List of user ID strings to fetch companies for.
concurrency: Max concurrent requests.
Returns:
A flat list of all :class:Company objects across every user.
Signature
await client.company.collect_by_users(user_ids: 'list[str]', *, concurrency: 'int' = 500) -> 'list[Company]'
Parameters
| Name |
Type |
Default |
user_ids |
list[str] |
Required |
concurrency |
int |
500 |
Return Models
Company
| Field |
Type |
Required |
_id |
string |
Optional |
__v |
integer |
Optional |
name |
string |
Optional |
owner |
string |
Optional |
country |
string |
Optional |
region |
string |
Optional |
type |
string |
Optional |
quality |
integer |
Optional |
size |
integer |
Optional |
employees |
integer |
Optional |
production |
number |
Optional |
wealth |
number |
Optional |
image |
string |
Optional |
isHiring |
boolean |
Optional |
activeUpgradeLevels |
CompanyActiveUpgradeLevels |
Optional |
concreteInvested |
integer | number |
Optional |
dates |
CompanyDates |
Optional |
estimatedValue |
integer | number |
Optional |
isFull |
boolean |
Optional |
itemCode |
string |
Optional |
movedUpAt |
string |
Optional |
user |
string |
Optional |
workerCount |
integer |
Optional |
workers |
array[any] |
Optional |
createdAt |
string |
Optional |
updatedAt |
string |
Optional |
CompanyActiveUpgradeLevels
| Field |
Type |
Required |
_id |
string |
Optional |
__v |
integer |
Optional |
automatedEngine |
integer |
Optional |
breakRoom |
integer |
Optional |
storage |
integer |
Optional |
CompanyDates
| Field |
Type |
Required |
_id |
string |
Optional |
__v |
integer |
Optional |
lastHiresAt |
array[string] |
Optional |
.get()
Get a single company by ID.
Signature
await client.company.get(company_id: 'str') -> 'Company'
Parameters
| Name |
Type |
Default |
company_id |
str |
Required |
Return Models
Company
| Field |
Type |
Required |
_id |
string |
Optional |
__v |
integer |
Optional |
name |
string |
Optional |
owner |
string |
Optional |
country |
string |
Optional |
region |
string |
Optional |
type |
string |
Optional |
quality |
integer |
Optional |
size |
integer |
Optional |
employees |
integer |
Optional |
production |
number |
Optional |
wealth |
number |
Optional |
image |
string |
Optional |
isHiring |
boolean |
Optional |
activeUpgradeLevels |
CompanyActiveUpgradeLevels |
Optional |
concreteInvested |
integer | number |
Optional |
dates |
CompanyDates |
Optional |
estimatedValue |
integer | number |
Optional |
isFull |
boolean |
Optional |
itemCode |
string |
Optional |
movedUpAt |
string |
Optional |
user |
string |
Optional |
workerCount |
integer |
Optional |
workers |
array[any] |
Optional |
createdAt |
string |
Optional |
updatedAt |
string |
Optional |
CompanyActiveUpgradeLevels
| Field |
Type |
Required |
_id |
string |
Optional |
__v |
integer |
Optional |
automatedEngine |
integer |
Optional |
breakRoom |
integer |
Optional |
storage |
integer |
Optional |
CompanyDates
| Field |
Type |
Required |
_id |
string |
Optional |
__v |
integer |
Optional |
lastHiresAt |
array[string] |
Optional |
.get_by_user()
Convenience: fetch all companies owned by a user (collects all pages).
Paginated ID listing is hydrated via :meth:get_many into full
:class:Company objects.
Signature
await client.company.get_by_user(user_id: 'str', **kwargs: 'Any') -> 'list[Company]'
Parameters
| Name |
Type |
Default |
user_id |
str |
Required |
kwargs |
Any |
Required |
Return Models
Company
| Field |
Type |
Required |
_id |
string |
Optional |
__v |
integer |
Optional |
name |
string |
Optional |
owner |
string |
Optional |
country |
string |
Optional |
region |
string |
Optional |
type |
string |
Optional |
quality |
integer |
Optional |
size |
integer |
Optional |
employees |
integer |
Optional |
production |
number |
Optional |
wealth |
number |
Optional |
image |
string |
Optional |
isHiring |
boolean |
Optional |
activeUpgradeLevels |
CompanyActiveUpgradeLevels |
Optional |
concreteInvested |
integer | number |
Optional |
dates |
CompanyDates |
Optional |
estimatedValue |
integer | number |
Optional |
isFull |
boolean |
Optional |
itemCode |
string |
Optional |
movedUpAt |
string |
Optional |
user |
string |
Optional |
workerCount |
integer |
Optional |
workers |
array[any] |
Optional |
createdAt |
string |
Optional |
updatedAt |
string |
Optional |
CompanyActiveUpgradeLevels
| Field |
Type |
Required |
_id |
string |
Optional |
__v |
integer |
Optional |
automatedEngine |
integer |
Optional |
breakRoom |
integer |
Optional |
storage |
integer |
Optional |
CompanyDates
| Field |
Type |
Required |
_id |
string |
Optional |
__v |
integer |
Optional |
lastHiresAt |
array[string] |
Optional |
.get_companies()
List company IDs, optionally filtered by owner user ID (cursor-paginated).
The WarEra API returns ID strings only. Use :meth:get_by_user or
:meth:get_many when you need full :class:Company objects.
Signature
await client.company.get_companies(*, user_id: 'str | None' = None, per_page: 'int' = 10, cursor: 'str | None' = None, auto_items: 'bool' = False, max_pages: 'int | float' = inf, cursor_end: 'str | None' = None) -> 'CursorPage[str] | AsyncIterator[str]'
Parameters
| Name |
Type |
Default |
user_id |
str |
None |
per_page |
int |
10 |
cursor |
str |
None |
auto_items |
bool |
False |
max_pages |
int | float |
inf |
cursor_end |
str |
None |
Return Models
CursorPage[str]
| Field |
Type |
Required |
_id |
string |
Optional |
__v |
integer |
Optional |
items |
array[string] |
Required |
nextCursor |
string |
Optional |
hasMore |
boolean |
Optional |
.get_many()
Fetch multiple companies by ID concurrently using the auto-batcher.
Signature
await client.company.get_many(company_ids: 'list[str]', *, concurrency: 'int' = 500) -> 'list[Company | None]'
Parameters
| Name |
Type |
Default |
company_ids |
list[str] |
Required |
concurrency |
int |
500 |
Return Models
Company
| Field |
Type |
Required |
_id |
string |
Optional |
__v |
integer |
Optional |
name |
string |
Optional |
owner |
string |
Optional |
country |
string |
Optional |
region |
string |
Optional |
type |
string |
Optional |
quality |
integer |
Optional |
size |
integer |
Optional |
employees |
integer |
Optional |
production |
number |
Optional |
wealth |
number |
Optional |
image |
string |
Optional |
isHiring |
boolean |
Optional |
activeUpgradeLevels |
CompanyActiveUpgradeLevels |
Optional |
concreteInvested |
integer | number |
Optional |
dates |
CompanyDates |
Optional |
estimatedValue |
integer | number |
Optional |
isFull |
boolean |
Optional |
itemCode |
string |
Optional |
movedUpAt |
string |
Optional |
user |
string |
Optional |
workerCount |
integer |
Optional |
workers |
array[any] |
Optional |
createdAt |
string |
Optional |
updatedAt |
string |
Optional |
CompanyActiveUpgradeLevels
| Field |
Type |
Required |
_id |
string |
Optional |
__v |
integer |
Optional |
automatedEngine |
integer |
Optional |
breakRoom |
integer |
Optional |
storage |
integer |
Optional |
CompanyDates
| Field |
Type |
Required |
_id |
string |
Optional |
__v |
integer |
Optional |
lastHiresAt |
array[string] |
Optional |
.get_production_bonus()
Get the full production bonus breakdown for a company.
Returns a :class:CompanyProductionBonus with strategic_bonus,
deposit_bonus, ethic_specialization_bonus, ethic_deposit_bonus,
and total.
Signature
await client.company.get_production_bonus(company_id: 'str') -> 'CompanyProductionBonus'
Parameters
| Name |
Type |
Default |
company_id |
str |
Required |
.get_recommended_region_ids_by_item_code()
Get recommended region IDs by item code.
Signature
await client.company.get_recommended_region_ids_by_item_code(item_code: 'str') -> 'list[str]'
Parameters
| Name |
Type |
Default |
item_code |
str |
Required |
.get_recommended_regions()
Get recommended regions for producing a given item, ranked by total bonus.
Args:
item_code: Item code to check (e.g. "iron", "weapon_q1").
include_deposit: Whether to include deposit bonuses in the ranking.
Returns:
A list of :class:RecommendedRegion objects sorted by bonus (best first).
Signature
await client.company.get_recommended_regions(item_code: 'str', *, include_deposit: 'bool' = True) -> 'list[RecommendedRegion]'
Parameters
| Name |
Type |
Default |
item_code |
str |
Required |
include_deposit |
bool |
True |
.invalidate_cache()
Clear the SWR cache for all resources.
Signature
await client.company.invalidate_cache() -> 'None'