Gere uma chave de esports com dupla eliminação
Transforme uma lista ordenada de equipes em uma estrutura completa de dupla eliminação sem desenhar rodadas manualmente.
Executar grátis
O gerador usa a ordem como cabeças de chave, amplia o campo até a próxima potência de dois, adiciona as folgas necessárias e entrega chaves interligadas de vencedores e repescagem. Cada vaga posterior informa a partida e o resultado que a alimentam, enquanto a grande final inclui o reset condicional necessário se o finalista da repescagem vencer o primeiro confronto decisivo. O resultado é determinístico e pronto para sistemas de torneios, artes de transmissão, inscrições ou conferência antes do evento.
Prepare os cabeças de chave e entenda as folgas
Informe as equipes da cabeça de chave mais forte para a mais fraca. O primeiro nome recebe a posição um, o segundo a dois e assim por diante; o gerador nunca embaralha essa classificação. Todo nome deve ter texto visível e ser único sem diferenciar maiúsculas de minúsculas, pois participantes indistinguíveis tornariam os resultados ambíguos. Uma chave de dupla eliminação funciona melhor em uma potência de dois: seis equipes ocupam oito vagas, enquanto oito permanecem iguais. Vagas vazias aparecem como objetos explícitos de folga, não como adversários inventados. A distribuição canônica mantém as melhores equipes separadas pelo maior tempo possível. Uma equipe pareada com folga avança sem jogar, mas a vaga da partida inicial permanece para que identificadores e referências posteriores sejam estáveis. Isso ajuda quando as inscrições fecham com quantidade irregular ou uma desistência tardia reduz o campo planejado.
Leia as ligações entre vencedores e repescagem
A saída divide winners_bracket e losers_bracket em rodadas numeradas. Os primeiros confrontos trazem equipes classificadas ou folgas. Os seguintes usam objetos de origem porque os participantes dependem dos resultados: kind informa se a vaga recebe vencedor ou perdedor, match aponta o confronto anterior e slot preserva o lado do novo duelo. Derrotas na chave de vencedores entram na repescagem em etapas. Entre essas entradas, rodadas de consolidação reduzem os sobreviventes antes da chegada de outro grupo. Assim surge o ritmo tradicional em que uma equipe só sai após a segunda derrota competitiva. Identificadores como W2M1 e L3M2 são determinísticos. Seu aplicativo pode salvar resultados nessas chaves, resolver referências após o término de cada confronto e exibir a topologia como lista, chave gráfica ou arte de transmissão. A estrutura descreve progressão; ela não prevê vencedores nem inventa placares.
Trate a decisão e integre o resultado
O objeto grand_final contém a primeira decisão e uma partida condicional de reset. GF1 coloca o finalista invicto contra o sobrevivente da repescagem. Se o invicto vencer, o evento acaba porque o adversário já sofreu duas derrotas. Se o finalista da repescagem ganhar, ambos passam a ter uma derrota e GF2 decide o campeão em condições iguais. A regra explícita evita o erro comum de considerar apenas uma final. Para integrar, salve toda a resposta como definição do torneio e acrescente horários, servidores, placares e estados no seu sistema usando cada id como chave estável. Resolva uma origem somente quando a partida referenciada terminar e aplique suas regras às folgas. O gerador não acessa a rede nem retém equipes. No navegador, o uso é gratuito; uma solicitação API utiliza o preço base exibido de US$ 0,002 para automações de inscrição ou gestão de eventos.
Casos de uso
Organize uma classificatória online
Converta o ranking das inscrições em rodadas conectadas, mesmo quando a quantidade final exigir folgas.
Monte uma chave para transmissão
Use ids estáveis e origens de progressão para alimentar artes sem reconectar cada rodada manualmente.
Inicialize um sistema de torneios
Armazene primeiro a topologia determinística e depois inclua horários, placares, mapas e estados.
Perguntas frequentes
Quantas equipes são necessárias?
São exigidos pelo menos quatro nomes únicos e não vazios; o máximo aceito é 64 equipes.
Como as equipes são classificadas?
A ordem de entrada define as cabeças de chave. A primeira equipe recebe a posição um, e a distribuição canônica separa as favoritas.
O que ocorre quando a quantidade não é potência de dois?
O campo cresce até a próxima potência de dois e as posições não utilizadas viram folgas explícitas.
A chave inclui reset da grande final?
Sim. GF2 acontece somente se o finalista da repescagem derrotar o invicto em GF1.
A ferramenta agenda horários ou escolhe vencedores?
Não. Ela retorna a topologia e as referências de progressão; seu sistema controla agenda, placares e resultados.
Quanto custa uma solicitação API?
O preço base de cada solicitação API é US$ 0,002. Você também pode gerar a chave gratuitamente no navegador.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/sports/esports-bracket-seed-matchups \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"teams":["Aurora","Blaze","Cyclone","Dragons","Eclipse","Falcons"]}'const res = await fetch("https://api.kit.forhosting.com/sports/esports-bracket-seed-matchups", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"teams": [
"Aurora",
"Blaze",
"Cyclone",
"Dragons",
"Eclipse",
"Falcons"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/sports/esports-bracket-seed-matchups",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"teams": [
"Aurora",
"Blaze",
"Cyclone",
"Dragons",
"Eclipse",
"Falcons"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/sports/esports-bracket-seed-matchups", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"teams":["Aurora","Blaze","Cyclone","Dragons","Eclipse","Falcons"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"teams":["Aurora","Blaze","Cyclone","Dragons","Eclipse","Falcons"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/sports/esports-bracket-seed-matchups", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"teams": [
"Aurora",
"Blaze",
"Cyclone",
"Dragons",
"Eclipse",
"Falcons"
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "sports.esports_bracket_seed_matchups",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |