Documentação da API
Referência para integrar seu bot ou sistema à Nexa.
Chaves individuais, saldo e operações de salas estão ativos. Para criar, sua conta precisa de crédito ou assinatura Nexa. Pix ainda não está disponível.
Criação de salas, consulta de jogadores e gerenciamento de partidas por requisições HTTP. Os exemplos usam JSON e podem ser adaptados à linguagem do seu projeto.
- Formato
- REST · JSON
- Autenticação
- Bearer token
- URL base
- https://187-127-38-140.sslip.io/v1
Primeiros passos
Do primeiro acesso à organização da sua operação.
Entre com Discord
Use o botão Entrar com Discord e autorize a identificação do seu perfil na página oficial do Discord. Se o acesso estiver em configuração, a tela informará isso.
Gere sua chave
No painel, abra Chaves de API. A chave é pessoal e autentica suas requisições à Nexa. Você pode revelá-la, copiá-la ou trocá-la.
Consulte suas salas
Envie a chave no cabeçalho Authorization para GET /v1/rooms. Cada conta enxerga somente as próprias salas.
Conheça os planos
Cada sala consome R$ 0,02 do saldo Nexa ou usa a assinatura ativa. O pagamento por Pix ainda não foi integrado; créditos e assinatura podem ser ativados manualmente pelo administrador para testes.
Proteja a chave
Guarde-a em uma variável de ambiente no servidor do seu bot ou sistema, nunca no código enviado ao navegador.
Autenticação
Discord para entrar. Chave de API para integrar.
O acesso ao painel usa o fluxo oficial OAuth2 do Discord. A Nexa solicita apenas a identificação básica do perfil. A senha é tratada pelo Discord, nunca pela Nexa.
Gere sua chave no painel e envie Authorization: Bearer NEXA_API_KEY em cada requisição. NEXA_API_KEY representa sua chave pessoal no exemplo.
Envie JSON com Content-Type: application/json nas requisições com corpo. Configure NEXA_API_URL como https://187-127-38-140.sslip.io/v1 no servidor da sua integração.
Mantenha segredos no servidor
Use variáveis de ambiente. Não coloque chaves em links, capturas de tela, repositórios públicos ou código do navegador.
Uma chave por conta
Sua chave fica vinculada ao login Discord e só consulta salas dessa conta. Cada pessoa deve gerar a própria chave.
Em caso de vazamento
Use Gerar Nova Key. A anterior é invalidada imediatamente; atualize seu bot ou sistema.
Authorization: Bearer NEXA_API_KEY
Content-Type: application/jsonCiclo de uma sala
Entenda a sequência antes de automatizar ações.
active · sala aberta
A sala foi criada e aguarda os jogadores. Consulte os membros antes de iniciar.
started · partida iniciada
O start foi enviado. A sessão ainda pode ser consultada por um período curto.
jogando · resultado parcial
O endpoint de resultado já pode mostrar jogadores e equipes, mas sem vencedor definido.
finalizada · resultado pronto
O endpoint de resultado informa o vencedor e as estatísticas finais. Pare de consultar quando poll_after_seconds for null.
Listar salas
Consulte as salas vinculadas à sua chave.
/v1/roomsAtivocurl --request GET "$NEXA_API_URL/rooms" \
--header "Authorization: Bearer $NEXA_API_KEY"{
"rooms": []
}Criar sala
Solicite uma nova sala com as configurações da sua operação.
/v1/roomsAtivoCorpo da requisição
room_namestring- Nome da sala, com até 80 caracteres. Se omitido, a Nexa escolhe um nome.
passwordstringobrigatório- Senha da sala, de 1 a 16 caracteres.
start_delay_minutesintegerobrigatório- Minutos até o start automático: 1–10 em AP, 1–20 em BR.
config_typestring- ap_padrao, gelo_inf, tatico, ap_fullcapa, capa_3, ap_uxd, ap_7r ou br_padrao. Padrão: ap_padrao.
map_namestring- Bermuda, Purgatory, Kalahari ou Nextera em AP. BR também aceita Nova Terra e Solara.
1500_ouroboolean- Em AP, começa o primeiro round com 1500 de ouro. Ignorado em BR.
carregamentoboolean- Em AP, cria a sala com carregamento ligado. Ignorado em BR.
equipestring- Apenas BR: solo, duo ou squad. Padrão: squad.
espectadoresinteger- Apenas BR: 30, 16, 8, 6, 4, 2 ou 1. Padrão: 30.
curl --request POST "$NEXA_API_URL/rooms" \
--header "Authorization: Bearer $NEXA_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"room_name": "Sala da comunidade",
"password": "1234",
"start_delay_minutes": 5,
"config_type": "ap_padrao",
"map_name": "Bermuda",
"1500_ouro": false,
"carregamento": false
}'{
"id": "00000000-0000-4000-8000-000000000001",
"session_id": "f6c87a7a2df44a21b4b8a4d2d2cbf8b0",
"room_id": 947072,
"room_name": "Sala da comunidade",
"status": "active",
"invite_link": "https://ffshare.garena.com/?region=BR"
}Consultar sala
Acompanhe o estado de uma sala pelo seu identificador.
/v1/rooms/{session_id}AtivoParâmetro de caminho
session_idstringobrigatório- Sessão retornada na criação da sala.
curl --request GET "$NEXA_API_URL/rooms/f6c87a7a2df44a21b4b8a4d2d2cbf8b0" \
--header "Authorization: Bearer $NEXA_API_KEY"{
"session_id": "f6c87a7a2df44a21b4b8a4d2d2cbf8b0",
"room_id": 947072,
"room_name": "Sala da comunidade",
"status": "active"
}Listar jogadores
Consulte quem entrou na sala antes de iniciar uma partida.
/v1/rooms/{session_id}/members?include_loadout=trueAtivoParâmetro de caminho
session_idstringobrigatório- Sessão retornada na criação da sala.
curl --request GET "$NEXA_API_URL/rooms/f6c87a7a2df44a21b4b8a4d2d2cbf8b0/members?include_loadout=true" \
--header "Authorization: Bearer $NEXA_API_KEY"{
"session_id": "f6c87a7a2df44a21b4b8a4d2d2cbf8b0",
"status": "active",
"member_count": 0,
"members": []
}Iniciar partida
Solicite o início de uma sala que está aguardando.
/v1/rooms/{session_id}/startAtivoParâmetro de caminho
session_idstringobrigatório- Sessão retornada na criação da sala.
curl --request POST "$NEXA_API_URL/rooms/f6c87a7a2df44a21b4b8a4d2d2cbf8b0/start" \
--header "Authorization: Bearer $NEXA_API_KEY"{
"session_id": "f6c87a7a2df44a21b4b8a4d2d2cbf8b0",
"status": "started",
"started": true
}Editar sala
Altere o modo de uma sala AP ainda aberta.
/v1/rooms/{session_id}/editAtivoParâmetro de caminho
session_idstringobrigatório- Sessão retornada na criação da sala.
Corpo da requisição
config_typestringobrigatório- Novo template AP: ap_padrao, gelo_inf, tatico, ap_fullcapa, capa_3, ap_uxd ou ap_7r.
passwordstring- Nova senha, de 1 a 16 caracteres. Se omitida, mantém a atual.
carregamentoboolean- Ativa carregamento no novo template. Padrão: false.
1500_ouroboolean- Ativa 1500 de ouro no primeiro round. Padrão: false.
curl --request POST "$NEXA_API_URL/rooms/f6c87a7a2df44a21b4b8a4d2d2cbf8b0/edit" \
--header "Authorization: Bearer $NEXA_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"config_type": "ap_uxd",
"carregamento": false,
"1500_ouro": false
}'{
"session_id": "f6c87a7a2df44a21b4b8a4d2d2cbf8b0",
"config_type": "ap_uxd",
"edited": true
}Remover jogador
Expulse um jogador da sua sala ativa.
/v1/rooms/{session_id}/kickAtivoParâmetro de caminho
session_idstringobrigatório- Sessão retornada na criação da sala.
Corpo da requisição
player_uidstringobrigatório- UID numérico do jogador retornado em /members. O dono da sala não pode ser expulso.
curl --request POST "$NEXA_API_URL/rooms/f6c87a7a2df44a21b4b8a4d2d2cbf8b0/kick" \
--header "Authorization: Bearer $NEXA_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"player_uid": "15076661321"
}'{
"session_id": "f6c87a7a2df44a21b4b8a4d2d2cbf8b0",
"player_uid": "15076661321",
"kicked": true
}Consultar resultado
Acompanhe a disponibilidade do resultado após a partida.
/v1/rooms/{session_id}/resultAtivoParâmetro de caminho
session_idstringobrigatório- Sessão retornada na criação da sala.
curl --request GET "$NEXA_API_URL/rooms/f6c87a7a2df44a21b4b8a4d2d2cbf8b0/result" \
--header "Authorization: Bearer $NEXA_API_KEY"{
"session_id": "f6c87a7a2df44a21b4b8a4d2d2cbf8b0",
"status": "jogando",
"poll_after_seconds": 12,
"winner_team": null,
"teams": []
}Liberar sala
Encerre a espera de uma sala que não será utilizada.
/v1/rooms/{session_id}/releaseAtivoParâmetro de caminho
session_idstringobrigatório- Sessão retornada na criação da sala.
curl --request POST "$NEXA_API_URL/rooms/f6c87a7a2df44a21b4b8a4d2d2cbf8b0/release" \
--header "Authorization: Bearer $NEXA_API_KEY"{
"session_id": "f6c87a7a2df44a21b4b8a4d2d2cbf8b0",
"released": true,
"reason": "manual_release"
}Estatísticas de jogadores
Consulte estatísticas TC para até 20 UIDs em uma chamada.
/v1/stats/tc?ids=1705236910,15076661321Ativocurl --request GET "$NEXA_API_URL/stats/tc?ids=1705236910,15076661321" \
--header "Authorization: Bearer $NEXA_API_KEY"{
"results": [
{
"account_id": 1705236910,
"matches": 33,
"wins": 23,
"kills": 5,
"mvp": 27
}
]
}Consultar saldo
Veja o saldo e a assinatura da sua própria conta Nexa.
/v1/balanceAtivocurl --request GET "$NEXA_API_URL/balance" \
--header "Authorization: Bearer $NEXA_API_KEY"{
"plan_type": "credit",
"credit": {
"balance": 6,
"total_spent": 0,
"total_purchased": 0,
"total_granted": 6
},
"subscription": {
"active": false,
"activated_at": null,
"expires_at": null
}
}Créditos e assinatura
Duas formas de planejar o uso da Nexa.
Recarga: valor provisório de R$ 0,02 por sala, com recarga mínima de R$ 6,00. O painel tem sugestões de R$ 20, R$ 50, R$ 100, R$ 200, R$ 500 e R$ 1.000.
Assinatura mensal: valor provisório de R$ 1.000 por 30 dias, com proposta de salas ilimitadas durante o período.
O saldo e a assinatura já são aplicados na criação de salas. O Pix ainda não foi integrado: os botões de pagamento estão desativados. Por enquanto, o administrador pode conceder créditos ou ativar 30 dias manualmente.
Erros e limites
Prepare sua integração para respostas previsíveis e falhas temporárias.
Trate o status HTTP antes de ler os dados. Erros da Nexa têm um campo error com uma mensagem legível. Não tome decisões automáticas com base apenas no texto da mensagem.
A criação aceita até 10 tentativas por minuto por conta; consultas e outras ações têm limites próprios. Se receber 429, aguarde antes de tentar novamente.
Em falhas de rede, não repita indiscriminadamente ações de criação, início ou remoção. Confirme o estado da sala antes de executar uma ação novamente.
| Status | Situação | Como tratar |
|---|---|---|
400 / 422 | Dados inválidos | Confira o formato e os campos da requisição. |
401 | Não autenticado | Confira a chave e o cabeçalho Authorization. |
403 | Sem permissão | A sala não pertence à sua conta. |
402 | Crédito necessário | Adicione saldo Nexa ou ative uma assinatura. |
404 | Não encontrado | Confira o identificador do recurso. |
409 | Conflito ou criação pendente | Atualize o estado da sala. Se uma criação ficou pendente, procure o suporte antes de repetir. |
429 | Limite de requisições | Aguarde antes de tentar novamente. |
500 / 503 | Falha no serviço | Aguarde e confirme o estado antes de repetir uma ação. |
{
"error": "Sala não encontrada."
}Ajuda e suporte
As informações certas ajudam a encontrar o problema mais rápido.
Antes de pedir ajuda, confira se está no ambiente correto. Chaves individuais, saldo e operações de sala estão ativos. Uma criação exige saldo ou assinatura Nexa; o Pix ainda não está ativo.
Ao relatar um problema, envie o horário, a tela ou o endpoint usado, o status HTTP e os passos para reproduzir. Remova chaves, cookies e dados pessoais das capturas e dos trechos de código.
O canal oficial de suporte da Nexa ainda será informado. Não compartilhe credenciais em servidores ou canais das referências usadas no design.
O Discord não abre?
Confira se o endereço de retorno do aplicativo Discord corresponde ao endereço publicado da Nexa.
A sala não foi criada?
Confira seu saldo ou assinatura em Planos. Durante os testes, o administrador pode conceder crédito ou 30 dias manualmente.
O botão de pagamento não gera uma cobrança?
Os pagamentos estão em configuração. Não há cobrança ou ativação de assinatura nesta versão.