Pular para o capítulo
A / PROJETO ALEXANDRIA · ÍNDICEWAR ERA v0.26.2-beta · 11.10.2026
PARTE V / INFORMAÇÃO E ANÁLISE

API do War Era
operações e consultas

O catálogo público, as chamadas que usamos e um teste em Python.

AUTORES · VelhoKrois · STAFFjfont · RaphaelAmbrosius / EDIÇÃO DE TRABALHO

Nossas consultas, de fato

O Projeto Alexandria lê respostas da API pública do War Era em api2.warera.io/trpc/. As nove operações da primeira tabela já aparecem em páginas, ferramentas ou pesquisas deste manual. Cada nome identifica uma operação; input contém os parâmetros da consulta. Nas respostas que usamos, o dado vem em result.data. Não precisamos que o leitor decore a URL: ele precisa saber de onde saiu cada número e quando foi consultado.

Operação O que lemos Para que usamos
gameConfig.getGameConfig Configuração pública: habilidades, itens, receitas, bônus, custos e limites expostos pelo jogo. Conferir regras numéricas dos capítulos; identificar recursos possíveis por clima; alimentar parâmetros da calculadora de combate.
gameConfig.getDates Datas de virada informadas pelo servidor. Conferir a leitura dos períodos diário, semanal e mensal no capítulo 4. Foi uma consulta de pesquisa, não um relógio em tempo real do site.
region.getRegionsObject Regiões com ID, nome, clima, país original, controlador e depósito informado. Montar as linhas da tabela interativa de regiões e do CSV da edição.
country.getAllCountries Países com ID, nome e código. Nossa tabela faz essa chamada por POST com {}. Transformar os IDs de país recebidos nas regiões em nomes e bandeiras correspondentes.
tradingOrder.getTopOrders Ordens visíveis de compra e de venda de um item, com preço e quantidade. Informamos itemCode e limit: 100. Atualizar os exemplos de Aço, Grão e Concreto do capítulo 11; estimar custos de insumos na calculadora.
search.searchAnything IDs de usuários encontrados para o texto pesquisado. Procurar candidatos para o nick digitado na calculadora de combate. O leitor escolhe a conta; nomes parecidos não são associados automaticamente.
user.getUserLite Perfil público vinculado a um userId, incluindo nome visível e dados que a ferramenta consegue ler. Confirmar a conta escolhida, ler nível e habilidades para a simulação e atualizar os nomes dos autores sem trocar seus links por ID.
inventory.fetchCurrentEquipment Peças atualmente equipadas no perfil consultado, com atributos e estado retornados. Mostrar o conjunto observado na calculadora e separá-lo dos conjuntos hipotéticos que ela simula.
government.getByCountryId Composição do governo de um país no momento da consulta. Conferência pontual dos cargos descritos no capítulo 20; não é uma lista histórica de governos.

Essas operações não têm a mesma função. Configuração descreve parâmetros publicados; região e país descrevem um estado do mapa; livro de ofertas descreve ofertas naquele instante; perfil e equipamento descrevem uma conta observável. Juntar respostas diferentes é trabalho nosso. Por exemplo, a API não entrega uma frase pronta dizendo “vale a pena comprar Aço para upar a empresa”. O capítulo 11 combina ofertas com uma hipótese de produção e calcula uma comparação.

As outras operações do catálogo público

A documentação da API consultada em 11/10/2026 apresenta 40 operações na versão documental 0.17.4-beta: as nove acima e as 31 abaixo. A versão do catálogo é diferente da versão v0.26.2-beta exibida pelo jogo. Portanto, a lista descreve tudo o que estava naquele catálogo, sem prometer que ele inclua cada função adicionada depois ou que todas as operações respondam sem autenticação. Para as 31 abaixo, traduzimos a finalidade indicada pela documentação; não usamos seus resultados nas páginas do manual.

Empresas, trabalho e melhorias

Operação Para que serve, segundo o catálogo
company.getById Consulta uma empresa pelo ID.
company.getCompanies Lista empresas em páginas, com filtros opcionais.
workOffer.getById Consulta uma oferta de trabalho pelo ID.
workOffer.getWorkOfferByCompanyId Busca a oferta de trabalho ligada a uma empresa.
workOffer.getWorkOffersPaginated Lista ofertas de trabalho em páginas.
worker.getWorkers Consulta trabalhadores.
worker.getTotalWorkersCount Consulta o total de trabalhadores.
upgrade.getUpgradeByTypeAndEntity Consulta uma melhoria pelo tipo e pela entidade a que pertence.

Países, regiões, unidades e cidadãos

Operação Para que serve, segundo o catálogo
country.getCountryById Consulta um país pelo ID.
region.getById Consulta uma região pelo ID.
mu.getById Consulta uma unidade militar pelo ID.
mu.getManyPaginated Lista unidades militares em páginas.
user.getUsersByCountry Lista usuários de um país.
user.getUserById Consulta um usuário pelo ID.

Batalhas e seus registros

Operação Para que serve, segundo o catálogo
battle.getById Consulta uma batalha pelo ID.
battle.getLiveBattleData Consulta dados ao vivo de uma batalha.
battle.getBattles Lista batalhas.
round.getById Consulta uma rodada pelo ID.
round.getLastHits Consulta os golpes recentes de uma rodada.
battleRanking.getRanking Consulta a classificação de uma batalha.
battleOrder.getByBattle Consulta as ordens ligadas a uma batalha.
battleLootSummary.getByBattleAndUser Consulta o resumo de saque de um usuário numa batalha.

Preços, ofertas e transações

Operação Para que serve, segundo o catálogo
itemTrading.getPrices Consulta preços de itens.
itemOffer.getById Consulta uma oferta de item pelo ID.
transaction.getPaginatedTransactions Lista transações em páginas.
mercenaryContractAuction.getPaginatedAuctions Lista leilões de contratos mercenários ativos, com filtros opcionais.

Eventos, rankings e artigos

Operação Para que serve, segundo o catálogo
event.getEventsPaginated Lista eventos em páginas.
ranking.getRanking Consulta uma classificação geral.
article.getArticleById Consulta um artigo pelo ID.
article.getArticleLiteById Consulta a versão resumida de um artigo pelo ID.
article.getArticlesPaginated Lista artigos em páginas.

Como ler esta lista: getById pede o ID da entidade; Paginated indica uma lista dividida em páginas. Isso ajuda a procurar a operação na documentação, mas não substitui conferir seus parâmetros. Uma operação listada no Swagger pode exigir campos, sessão ou permissões que este capítulo não verificou.

Teste em casa: três regiões em Python

O exemplo abaixo consulta region.getRegionsObject, operação que já usamos na tabela regional. Ele precisa apenas do Python 3 e de acesso à internet. Copie para consultar_regioes.py e execute python consultar_regioes.py. Também deixamos o arquivo pronto:

import json
from urllib.request import Request, urlopen
from urllib.parse import urlencode

# Endereço base das operações públicas do War Era.
base = "https://api2.warera.io/trpc/"
# Esta operação não precisa de filtros: enviamos um objeto vazio em "input".
params = urlencode({"input": json.dumps({})})
url = base + "region.getRegionsObject?" + params
# Os cabeçalhos informam navegador e origem; não fazem login na conta.
request = Request(url, headers={
    "User-Agent": "Mozilla/5.0",
    "Origin": "https://app.warera.io",
    "Referer": "https://app.warera.io/",
})

# Faz a consulta e lê o JSON; os dados ficam dentro de "result.data".
with urlopen(request, timeout=15) as response:
    regions = json.load(response)["result"]["data"]

# Mostra o total recebido e apenas três regiões para não lotar o terminal.
print(f"A API devolveu {len(regions)} regiões.")
for region_id, region in list(regions.items())[:3]:
    print(region_id, region["name"], region["climate"])

O {} é o input vazio dessa consulta; urlencode o transforma em um parâmetro seguro de URL. O exemplo imprime a quantidade recebida naquele momento e apenas três nomes e climas, sem gravar nada no jogo. Se a chamada falhar, o Python mostrará o erro HTTP ou de conexão; tente de novo mais tarde e confira a documentação antes de trocar de operação. Algumas rotas precisam de parâmetros diferentes, e country.getAllCountries, por exemplo, é chamada por POST na nossa tabela regional. Não basta substituir o nome da rota no código acima para consultar qualquer linha do catálogo.

Três caminhos que já funcionam no projeto

Tabela regional. O navegador consulta regiões, países e configuração. Usa items[*].isDeposit e items[*].climates para listar o que pode surgir em cada clima; usa region.deposit para mostrar o que estava ativo na região consultada. Possibilidade e depósito ativo ocupam colunas diferentes justamente porque não são sinônimos. A tabela mantém o resultado por 30 minutos no navegador, espera 5 minutos antes de repetir uma tentativa malsucedida e, se não puder consultar, mostra a cópia da edição. O CSV continua sendo uma fotografia gerada na publicação, não uma exportação da consulta temporária de cada leitor.

Quadro de investimento. O HTML do capítulo 11 consulta o livro de ofertas ao abrir e também oferece Atualizar preços. Ele soma as quantidades disponíveis do lado certo do livro: para comprar, percorre vendedores; para vender, compradores. Se as ofertas visíveis não cobrem o volume do exemplo, não inventa um custo completo. O PDF conserva o retrato coletado quando foi gerado. Essa data acompanha o quadro porque preço de mercado não é constante do jogo.

Calculadora de combate. O nick entra em search.searchAnything; depois user.getUserLite e inventory.fetchCurrentEquipment fornecem o perfil e as peças observadas. gameConfig.getGameConfig fornece os parâmetros públicos, e tradingOrder.getTopOrders fornece ofertas de insumos. A ferramenta combina esses dados com escolhas do leitor, como ritmo de golpes e bônus da frente. O resultado é simulação, não um dano que a API prometeu. A implementação e seus limites estão na página da ferramenta.

O que a resposta não resolve sozinha

Uma configuração publicada pode conter um campo antes de a função aparecer na interface. Uma oferta pode desaparecer entre a consulta e o clique. Um depósito pode acabar, um país pode perder uma região e um jogador pode trocar equipamento. Por isso guardamos data e origem junto de retratos e deixamos a tela atual do jogo decidir ações concretas.

Há também dados que essas chamadas públicas não entregam para nossos exemplos: a ordem correta da batalha que o leitor pretende lutar, o saldo real de compras futuras, o tempo que ele jogará e a decisão de gastar seus recursos. Esses valores ficam como entrada explícita ou hipótese no cálculo. Quando um endpoint exigir autenticação ou não responder, o manual não completa a lacuna com um palpite. O capítulo 24 mostra como conferir uma afirmação publicada; aqui mostramos de qual resposta vieram os dados usados nas nossas páginas.

Nenhuma dessas páginas compra, vende, equipa, fabrica ou aplica uma build na conta do leitor. A tabela e a calculadora consultam a API no navegador dele; o gerador do CSV e do retrato impresso consulta a API na máquina de quem publica a edição. O site não recebe uma chave privada do jogador para fazer essas leituras.

Fontes desta lista