DayzHUBDiscord

FuncionalidadesPremium 1

API do Bot

Mostra os dados do teu servidor no teu próprio site

Cria um token secreto no teu painel e o teu site ou ferramentas podem ler informação em direto sobre o teu servidor: a classificação de níveis, os sorteios a decorrer, o número de tickets, o estado do teu servidor de jogo e os produtos da tua loja. Só lê. Nada do que faz pode alterar o teu servidor, e os membros que optaram por sair ficam sempre anónimos.

bot-api

🚫

Sem mensagem no Discord

A API do Bot funciona a partir do teu painel e do teu próprio site. Nada é publicado no Discord.

Como funciona

A funcionar em minutos

  1. 01

    Cria um token

    Painel, Gestão, API do Bot: dá-lhe um nome, marca o que pode ler e copia. É mostrado apenas uma vez.

  2. 02

    Mantém-no secreto

    Guarda-o no teu próprio servidor como uma palavra-passe. Usa um token por site ou ferramenta.

  3. 03

    Pede os teus dados

    O teu site envia o token num cabeçalho Authorization e recebe os teus dados de volta como JSON.

  4. 04

    Revoga quando quiseres

    Carrega em Revogar na página da API do Bot e o token deixa de funcionar de imediato.

O que podes construir

A API do Bot permite que o teu site ou as tuas ferramentas leiam informação em direto sobre o teu servidor Discord. Só lê. Nada do que construíres com ela pode alterar o teu servidor nem mexer nos teus membros. Aqui ficam algumas ideias que as pessoas montam numa tarde.

  • Um widget de classificaçãoMostra os teus 10 melhores sobreviventes por nível no site da tua comunidade.
  • Uma contagem decrescente de sorteioPõe o sorteio a decorrer, o prémio e a hora de fim na tua página inicial.
  • Número de ticketsMostra quantos tickets estão abertos e a rapidez com que a tua equipa responde, num painel para a equipa ou num banner "respondemos em cerca de 10 minutos".
  • Um selo de estadoMostra se o teu servidor de jogo está online e quantos jogadores tem.
  • Uma lista de produtos da lojaLista os produtos da tua Loja de Donativos com preços no teu próprio site e liga diretamente ao pagamento.

Não programas? Envia esta página à pessoa que trata do teu site. Ela saberá o que fazer com ela.

Passo a passo: cria o teu token

Um token é uma palavra-passe secreta e comprida que permite a um site ou ferramenta ler o teu servidor. Crias no teu painel.

  1. 01

    Abre a página da API do Bot

    Inicia sessão em dayzhub.net, abre o teu painel, escolhe o teu servidor e escolhe API do Bot na secção Gestão do menu lateral. Só quem tem a permissão Gerir Servidor a vê. Os membros com acesso da equipa não.

  2. 02

    Dá-lhe um nome

    Escreve um nome curto que diga para que serve, por exemplo "Classificação do site". Usa um token por site ou ferramenta.

  3. 03

    Escolhe o que pode ler

    Marca as caixas dos dados de que precisas, como sorteios ou a classificação de níveis. Menos caixas é mais seguro. Podes sempre criar outro token mais tarde.

  4. 04

    Site permitido (só às vezes)

    Deixa vazio, a não ser que uma página web nos navegadores dos teus visitantes chame a API diretamente. Nesse caso escreve o endereço do teu site exatamente, como https://oteusite.com, sem caminho no fim.

  5. 05

    Carrega em Criar token e copia-o

    Aparece uma caixa com o teu token, que começa por dhba_. Carrega em Copiar e cola-o logo num sítio seguro. É mostrado apenas uma vez. Se o perderes, crias um novo.

  6. 06

    Mantém-no secreto

    Trata o token como uma palavra-passe. Não o publiques no Discord, não o ponhas num projeto público do GitHub e não o colles numa página web que os visitantes possam ler. Guarda-o no teu próprio servidor ou num gestor de palavras-passe.

O teu primeiro pedido

Vamos verificar se o teu token funciona. Precisas de duas coisas: o token que acabaste de copiar e o ID do teu servidor (no Discord, ativa o Modo de Programador nas definições, depois clica com o botão direito no servidor e escolhe Copiar ID do Servidor). A primeira chamada abaixo só precisa do token.

Substitui dhba_YOUR_TOKEN pelo teu token verdadeiro em todos os exemplos. Cada um envia o token num cabeçalho chamado Authorization. Pô-lo no endereço web não funciona.

Windows PowerShell (use curl.exe with the .exe, plain curl means something else in PowerShell)

curl.exe -H "Authorization: Bearer dhba_YOUR_TOKEN" https://dayzhub.net/api/v1/bot/me

curl (macOS, Linux and most hosting)

curl -H "Authorization: Bearer dhba_YOUR_TOKEN" https://dayzhub.net/api/v1/bot/me

JavaScript on your own server (Node 18 or newer). Keep the token in an environment variable.

const res = await fetch("https://dayzhub.net/api/v1/bot/guilds/YOUR_SERVER_ID/giveaways?status=active", {
  headers: { Authorization: "Bearer " + process.env.DAYZHUB_BOT_API_TOKEN }
});
const { ok, data } = await res.json();
console.log(data);

JavaScript in a visitor's browser (needs the Allowed website setting on the token, and shows the token to everyone, so use a token with the fewest boxes ticked)

fetch("https://dayzhub.net/api/v1/bot/guilds/YOUR_SERVER_ID/leaderboard/levels?limit=10", {
  headers: { Authorization: "Bearer dhba_YOUR_TOKEN" }
}).then(r => r.json()).then(j => console.log(j.data));

Uma página que corre no navegador de um visitante pode ser lida por esse visitante, token incluído. Chamar a API a partir do teu próprio servidor é a forma segura. As chamadas a partir do navegador são só para tokens que leem factos públicos inofensivos.

O que recebes de volta

Cada resposta é JSON. As respostas bem-sucedidas têm "ok": true e os teus dados. As listas vêm com uma parte "page": quando "hasMore" é true, passa o valor de "nextCursor" como ?cursor= para obter a página seguinte. As datas estão em UTC.

GET /me: who the token belongs to

{
  "ok": true,
  "data": {
    "guildId": "123456789012345678",
    "name": "Website leaderboard",
    "prefix": "dhba_aB3dE",
    "scopes": ["leveling:read", "giveaways:read"],
    "allowedOrigin": null,
    "rateLimitPerMin": 60,
    "createdAt": "2026-10-01T12:00:00.000Z",
    "plan": "premium1",
    "limits": { "tokens": 2, "perMinute": 60 },
    "tokensUsed": 1
  }
}

GET /guilds/ID/leaderboard/levels?limit=2

{
  "ok": true,
  "data": [
    { "rank": 1, "member": { "id": "111111111111111111", "anonymous": false }, "xp": 18450, "level": 27 },
    { "rank": 2, "member": { "id": null, "anonymous": true }, "xp": 17020, "level": 26 }
  ],
  "page": { "limit": 2, "hasMore": true, "nextCursor": "eyJpZCI6IjY..." }
}

GET /guilds/ID/giveaways?status=active

{
  "ok": true,
  "data": [{
    "id": "6650f0c2a1b2c3d4e5f60718",
    "prize": "Premium VIP for 30 days",
    "status": "active",
    "type": "reaction",
    "winnerCount": 1,
    "entryCount": 86,
    "endsAt": "2026-10-08T18:00:00.000Z",
    "requirements": { "role": false, "verified": true, "minInvites": 0 },
    "host": { "id": "111111111111111111", "anonymous": false },
    "winners": []
  }],
  "page": { "limit": 25, "hasMore": false, "nextCursor": null }
}

GET /guilds/ID/tickets/summary

{
  "ok": true,
  "data": {
    "open": 4,
    "closed": 212,
    "total": 216,
    "last30Days": { "created": 38, "closed": 41, "averageRating": 4.7, "ratingCount": 29, "averageFirstResponseMinutes": 9.5 },
    "byCategory": [ { "category": "Support", "open": 3, "closed": 150 } ]
  }
}

GET /guilds/ID/shop/products

{
  "ok": true,
  "shop": { "name": "Survivor HQ Shop", "description": "Support the server", "slug": "survivor-hq", "url": "https://dayzhub.net/shop/survivor-hq" },
  "data": [{
    "id": "6650f0c2a1b2c3d4e5f60999", "name": "VIP Role", "slug": "vip-role", "description": "Priority queue and a gold name",
    "price": 9.99, "compareAtPrice": null, "currency": "EUR", "type": "subscription", "interval": "monthly",
    "thumbnailUrl": null, "featured": true, "inStock": true, "url": "https://dayzhub.net/shop/survivor-hq/vip-role"
  }],
  "page": { "limit": 25, "hasMore": false, "nextCursor": null }
}

GET /guilds/ID/server-status

{
  "ok": true,
  "data": {
    "listed": true,
    "servers": [{ "name": "Survivor HQ", "slug": "survivor-hq", "url": "https://dayzhub.net/s/survivor-hq", "online": true, "players": 42, "maxPlayers": 60, "address": "game.yourserver.gg:2302", "lastChangeAt": "2026-10-01T09:30:00.000Z" }]
  }
}

When something is wrong, for example a mixed-up server ID (HTTP 403)

{ "ok": false, "error": "guild_mismatch", "code": "guild_mismatch", "message": "This token belongs to another server", "requestId": "3f2b8c1e-5a7d-4e0b-9c64-1d2e3f4a5b6c" }

A lista completa de endpoints e de todos os campos está na descrição legível por máquinas em /api/v1/bot/openapi.json. Cada resposta traz o cabeçalho X-Request-Id, e os erros repetem-no como requestId. Indica-o quando contactares o suporte.

Limites, planos e privacidade

  • Só de leituraNão há botões que alterem nada. Só respondemos a pedidos GET.
  • PlanosO teu servidor precisa de um plano pago ou de um teste gratuito ativo. Os dados de sorteios precisam do Premium 2. A lista da loja precisa de acesso pago a sério, porque o teste gratuito não inclui a Loja de Donativos.
  • Quantos tokens podes terO Premium 1 inclui 2 tokens ativos, o Premium 2 inclui 5 e o Premium 3 inclui 10. Um teste gratuito ou um servidor patrocinado conta como Premium 1. Revoga os que já não usas para libertar um lugar. Se o teu plano descer, os tokens que já tens continuam a funcionar. Apenas não podes criar novos até estares abaixo do limite.
  • Limites de velocidadeCada token pode fazer 60 pedidos por minuto no Premium 1, 120 no Premium 2 e 300 no Premium 3, e um endereço de internet 300 por minuto. Acima do limite recebes uma resposta 429 com um cabeçalho Retry-After que indica quantos segundos esperar.
  • Consultar com cuidadoAs respostas incluem um ETag. Envia-o de volta num cabeçalho If-None-Match e, quando nada mudou, recebes uma pequenina resposta 304 em vez de todos os dados. Perguntar de 30 em 30 ou de 60 em 60 segundos chega bem, e a maioria dos widgets pode perguntar com menos frequência.
  • O que nunca é partilhadoTranscrições e mensagens de tickets, candidaturas e respetivas respostas, pagamentos e encomendas, endereços de e-mail, nomes e avatares, e as pessoas que participaram num sorteio. Só recebes contagens, mais IDs numéricos do Discord onde a funcionalidade já mostra pessoas publicamente no Discord, como o anfitrião de um sorteio ou a classificação de níveis.
  • Membros que optaram por sairQuem usou /privacy optout aparece sempre como anónimo (um id null). A posição e os números continuam a contar, por isso os totais batem certo.

Resolução de problemas

O que vêsPorque aconteceComo resolver
401 unauthorized ou invalid_tokenO token está em falta, mal escrito, cortado ou foi revogado.Copia-o outra vez por inteiro, incluindo o início dhba_, e envia-o como Authorization: Bearer TOKEN. Se foi revogado, cria um novo.
403 guild_mismatchO ID do servidor no endereço não é o servidor a que o token pertence.Chama /me para ver o guildId certo e usa esse.
403 missing_scopeO token não tinha permissão para ler este tipo de dados.Cria um novo token com a caixa respetiva marcada.
403 feature_not_in_planEssa funcionalidade não faz parte do plano do teu servidor, por exemplo sorteios sem Premium 2.Faz upgrade do plano ou deixa esses dados de fora.
403 plan_requiredO servidor não tem plano pago nem teste gratuito ativo.Inicia um plano em Faturação. A API volta a funcionar logo a seguir.
403 origin_not_allowedUma página web de outro site tentou usar o token.Define o site exato no token como Site permitido (https://oteusite.com) ou chama a partir do teu próprio servidor.
O navegador mostra erro CORSO token não tem Site permitido, por isso os navegadores não o podem chamar.Cria um token com o teu site em Site permitido ou passa a chamada para o teu servidor.
404 shop_not_enabledA tua Loja de Donativos não está ativada.Ativa a loja no teu painel.
429 rate_limitedDemasiados pedidos num minuto.Espera o número de segundos do cabeçalho Retry-After e depois pergunta com menos frequência. Usa ETag e respostas 304.
O PowerShell mostra um erro estranho com curlNo PowerShell, curl é outro comando.Escreve curl.exe em vez de curl.
503 unavailableUm pequeno soluço do nosso lado. A API nunca envia respostas a meio.Tenta outra vez dentro de um minuto.

Revogar e trocar um token

Faz isto logo se um token foi partilhado por engano, publicado em público ou se alguém que o conhecia saiu da tua equipa.

  1. 01

    Cria primeiro o novo token

    Na página da API do Bot cria um substituto com as mesmas definições e copia-o.

  2. 02

    Muda o teu site ou ferramenta

    Põe o novo token em todo o lado onde o antigo era usado e verifica se tudo continua a funcionar.

  3. 03

    Revoga o antigo

    Na lista dos teus tokens, carrega em Revogar no antigo e confirma. Deixa de funcionar de imediato, e tudo o que ainda o use recebe um 401. A criação e a revogação ficam registadas no registo de auditoria do teu servidor, nunca o token em si.

Perguntas frequentes

A API pode alterar alguma coisa no meu servidor?

Não. É só de leitura e não há forma de dar mais poder a um token.

Perdi o meu token. Podem mostrá-lo outra vez?

Não. Guardamos apenas uma impressão digital dele, por isso não pode ser mostrado outra vez. Revoga-o e cria um novo.

Posso usar um token para vários servidores?

Não. Um token pertence a um servidor e só lê esse. Cria tokens no painel de cada servidor.

Preciso de saber programar?

Para construir um widget, sim, ou pede à pessoa que faz o teu site. A parte do painel demora dois minutos.

Posso ver quem participou no meu sorteio através da API?

Não. Recebes o número de participações e os vencedores como IDs do Discord, nunca a lista de participantes.

Porque é que um membro aparece como anónimo?

Optou por sair do tratamento de dados com /privacy optout. Respeitamos isso em todo o lado, incluindo aqui.

O teste gratuito funciona?

Sim, durante um teste ativo podes criar tokens e ler as funcionalidades que o teste inclui. A Loja de Donativos não faz parte do teste.

Porque não consigo criar outro token?

Cada plano tem um limite: 2 tokens ativos no Premium 1, 5 no Premium 2 e 10 no Premium 3. Revoga um token que já não uses ou melhora o teu plano. A página da API do Bot mostra quantos já usaste.

O que acontece ao meu token se o meu plano terminar?

Continua a existir, mas responde 403 plan_required até voltares a ter um plano ou teste. Nada é apagado.

Pré-visualização

Vê como fica no Discord

Exatamente o que o Premium 3 desbloqueia — tal como aparece no teu servidor.

Premium 3€6.99 / mês

bot-api

🚫

Sem mensagem no Discord

A API do Bot funciona a partir do teu painel e do teu próprio site. Nada é publicado no Discord.

  • Tudo o que está no Premium 2
  • Até 10 tokens ativos por servidor
  • 300 pedidos por minuto por token

Planos

O que recebes

Cada plano inclui o que está na lista. Faz upgrade quando quiseres — as tuas definições mantêm-se.

Premium 1

€2.99/ mês

🎁 O Premium 1 inclui um teste gratuito de 7 dias (a Loja de Doações e os Mods Gratuitos ficam disponíveis quando subscreves)

  • Acesso só de leitura aos dados do teu próprio servidor
  • Até 2 tokens ativos por servidor
  • Classificação de níveis, resumo de tickets, resumo de sugestões, estado do servidor de jogo
  • 60 pedidos por minuto por token
  • Funciona durante o teste gratuito
Premium 2

€4.99/ mês

  • Tudo o que está no Premium 1
  • Até 5 tokens ativos por servidor
  • 120 pedidos por minuto por token
  • Dados de sorteios (a decorrer e terminados)
Premium 3

€6.99/ mês

  • Tudo o que está no Premium 2
  • Até 10 tokens ativos por servidor
  • 300 pedidos por minuto por token

🔌 API do Bot

Mostra os dados do teu servidor no teu próprio site

Adiciona o DayZ Hub ao teu servidor no Premium 1 e faz upgrade quando estiveres pronto para mais.

DayZ Hub

Definições de cookies

Escolhe se a DayZ Hub pode contar as tuas visitas com a nossa análise sem cookies. Podes mudar isto a qualquer momento.

Cookies necessáriosPrecisos para iniciar sessão, para a segurança, para o teu idioma e para esta escolha.
Sempre ativos
Estatísticas — PlausibleConta as visitas às páginas sem cookies nem dados pessoais, para podermos melhorar a DayZ Hub.