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
- Documentação pública da API do War Era, catálogo Swagger 0.17.4-beta com 40 operações, e respostas das operações que usamos, confrontadas com o código do Projeto Alexandria em 11/10/2026. A documentação e os formatos podem mudar.
- Código da tabela regional, gerador do CSV, quadro do capítulo 11, retrato de mercado, nomes dos autores e calculadora de combate: mostram quais operações o projeto realmente chama e como trata falhas ou dados incompletos.