/conta obter_contaMostra a conta do token
Conta, pessoa e papel ligados ao token de API, com as permissões efetivas.
curl "https://app.bsncloud.com.br/api/v1/conta" \
-H "Authorization: Bearer $BSN_TOKEN"Desenvolvedores
Automatize suas VPS por código (REST) ou deixe um agente de IA cuidar delas por você (MCP). Tudo o que dá para fazer aqui passa pelas mesmas permissões e fica na mesma auditoria do painel.
API REST
https://app.bsncloud.com.br/api/v1
Documento OpenAPI
https://app.bsncloud.com.br/api/v1/openapi.json
Servidor MCP
https://app.bsncloud.com.br/mcp
1. Crie um token
No painel, em Conta › API, clique em Novo token, dê um nome (ex.: “script de backup”) e escolha o papel. O token aparece uma vez só: copie e guarde num lugar seguro.
2. Guarde o token numa variável
Assim ele não fica escrito no código nem no histórico de comandos.
export BSN_TOKEN="bcn_cole_o_seu_token_aqui"3. Faça o primeiro pedido
Lista as suas VPS. Copie o “id” de uma para os próximos.
curl "https://app.bsncloud.com.br/api/v1/vps" \
-H "Authorization: Bearer $BSN_TOKEN"Envie o token em todo pedido, no cabeçalho Authorization: Bearer bcn_…. Ele age como a pessoa que o criou, mas limitado ao papel escolhido (nunca mais do que o papel dela). Dá para revogar a qualquer hora em Conta › API, e todo uso fica na auditoria da conta.
Leitura
Vê tudo, não muda nada. O mais seguro para relatórios e agentes de IA que só consultam.
Técnico
Opera as VPS (ligar, snapshot, firewall, apps); não vê cobrança.
Financeiro
Faturas e pagamentos; só vê as VPS.
Admin
Tudo, menos encerrar a conta.
Dica: um token por uso (um para o script, outro para o agente de IA). Se um vazar, você revoga só ele.
O que muda a VPS entra numa fila e responde na hora com 202 e o id da ação. Para saber quando terminou, consulte obter_acao a cada poucos segundos: ela traz a situação (fila, executando, sucesso ou falha) e as etapas que já aconteceram, as mesmas que você vê no painel.
const h = { Authorization: `Bearer ${process.env.BSN_TOKEN}`, 'Content-Type': 'application/json' };
const base = 'https://app.bsncloud.com.br/api/v1';
// 1. Pede o snapshot (volta na hora com o id da ação)
const { id: acaoId } = await (await fetch(`${base}/vps/${vpsId}/snapshots`, {
method: 'POST', headers: h, body: JSON.stringify({ nome: 'antes-da-atualizacao' }),
})).json();
// 2. Acompanha até terminar
let acao;
do {
await new Promise((ok) => setTimeout(ok, 3000));
acao = await (await fetch(`${base}/vps/${vpsId}/acoes/${acaoId}`, { headers: h })).json();
console.log(acao.status, acao.passos.at(-1)?.passo);
} while (acao.status === 'fila' || acao.status === 'executando');Todo erro volta em JSON com error (código), message (em português, para mostrar a uma pessoa) e, quando ajuda, acao (o que fazer) e campos.
MCP é o jeito padrão de dar ferramentas a um assistente de IA. Conectando o BSN Cloud, você pede em português (“tira um snapshot da VPS da loja e me avisa quando terminar”) e o assistente usa as mesmas operações desta página. Antes de qualquer coisa que mude a VPS, ele precisa da sua confirmação.
Endereço: https://app.bsncloud.com.br/mcp · transporte HTTP (Streamable) · token no cabeçalho Authorization. Para um agente que só consulta, use um token de Leitura.
Claude Code (terminal)
claude mcp add --transport http bsn-cloud https://app.bsncloud.com.br/mcp \
--header "Authorization: Bearer $BSN_TOKEN"Claude Desktop
Em Configurações › Desenvolvedor › Editar configuração, acrescente (precisa do Node.js instalado):
{
"mcpServers": {
"bsn-cloud": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://app.bsncloud.com.br/mcp",
"--header",
"Authorization:${BSN_AUTH}"
],
"env": {
"BSN_AUTH": "Bearer bcn_cole_o_seu_token_aqui"
}
}
}
}Cursor
{
"mcpServers": {
"bsn-cloud": {
"url": "https://app.bsncloud.com.br/mcp",
"headers": {
"Authorization": "Bearer ${env:BSN_TOKEN}"
}
}
}
}VS Code (Copilot)
{
"inputs": [
{
"type": "promptString",
"id": "bsn-token",
"description": "Token do BSN Cloud",
"password": true
}
],
"servers": {
"bsn-cloud": {
"type": "http",
"url": "https://app.bsncloud.com.br/mcp",
"headers": {
"Authorization": "Bearer ${input:bsn-token}"
}
}
}
}n8n
No agente de IA, adicione a ferramenta MCP Client: endereço https://app.bsncloud.com.br/mcp, transporte HTTP Streamable e autenticação Header Auth com nome Authorization e valor Bearer bcn_….
Cada operação existe na API REST e como ferramenta do MCP (o nome em verde). As marcadas muda algo pedem confirmação no MCP.
/conta obter_contaMostra a conta do token
Conta, pessoa e papel ligados ao token de API, com as permissões efetivas.
curl "https://app.bsncloud.com.br/api/v1/conta" \
-H "Authorization: Bearer $BSN_TOKEN"/vps listar_vpsLista as VPS da conta
Todas as VPS da conta com status, IP dedicado, plano, uso e data de renovação.
curl "https://app.bsncloud.com.br/api/v1/vps" \
-H "Authorization: Bearer $BSN_TOKEN"/vps/{id} obter_vpsDetalhes de uma VPS
Configuração, sistema, ações recentes, snapshots e backups de uma VPS.
id*caminhoid (uuid)curl "https://app.bsncloud.com.br/api/v1/vps/ID_DA_VPS" \
-H "Authorization: Bearer $BSN_TOKEN"/vps/{id}/uso uso_vpsUso de CPU, memória, disco e rede
Série de uso da VPS na janela pedida (hour, day, week, month, year).
id*caminhoid (uuid)janelaconsulta"hour" | "day" | "week" | "month" | "year"padrão: daycurl "https://app.bsncloud.com.br/api/v1/vps/ID_DA_VPS/uso" \
-H "Authorization: Bearer $BSN_TOKEN"/vps/{id}/energiamuda algo energia_vpsLiga, desliga, reinicia ou para uma VPS
Põe a ação na fila e devolve o id dela; acompanhe as etapas em obter_acao. "desligar" pede ao sistema para desligar com segurança; "parar" corta na hora.
id*caminhoid (uuid)acao*corpo"ligar" | "desligar" | "reiniciar" | "parar"curl -X POST "https://app.bsncloud.com.br/api/v1/vps/ID_DA_VPS/energia" \
-H "Authorization: Bearer $BSN_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "acao": "ligar" }'/vps/{id}/acoes listar_acoesAções recentes de uma VPS
O que foi pedido para a VPS e como terminou, com o roteiro de etapas de cada ação (feitas, em andamento, avisos).
id*caminhoid (uuid)curl "https://app.bsncloud.com.br/api/v1/vps/ID_DA_VPS/acoes" \
-H "Authorization: Bearer $BSN_TOKEN"/vps/{id}/acoes/{acaoId} obter_acaoAcompanha uma ação
Situação de uma ação (fila, executando, sucesso, falha), as etapas do roteiro e as já feitas. Consulte a cada poucos segundos até "sucesso" ou "falha".
id*caminhoid (uuid)acaoId*caminhoid (uuid)curl "https://app.bsncloud.com.br/api/v1/vps/ID_DA_VPS/acoes/ID_DA_ACAO" \
-H "Authorization: Bearer $BSN_TOKEN"/vps/{id}/snapshotsmuda algo criar_snapshotTira um snapshot da VPS
Foto rápida do disco para voltar depois (até 3 por VPS). Os snapshots aparecem em obter_vps.
id*caminhoid (uuid)nome*corpotextodescricaocorpotextocurl -X POST "https://app.bsncloud.com.br/api/v1/vps/ID_DA_VPS/snapshots" \
-H "Authorization: Bearer $BSN_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "nome": "antes-da-atualizacao" }'/vps/{id}/backupsmuda algo fazer_backupFaz um backup agora
Cópia completa da VPS guardada fora dela. Os backups aparecem em obter_vps.
id*caminhoid (uuid)curl -X POST "https://app.bsncloud.com.br/api/v1/vps/ID_DA_VPS/backups" \
-H "Authorization: Bearer $BSN_TOKEN"/vps/{id}/firewall obter_firewallRegras do firewall da VPS
Portas liberadas e bloqueadas (valem também no IP dedicado).
id*caminhoid (uuid)curl "https://app.bsncloud.com.br/api/v1/vps/ID_DA_VPS/firewall" \
-H "Authorization: Bearer $BSN_TOKEN"/vps/{id}/firewall/portasmuda algo liberar_portaLibera uma porta no firewall
Abre uma porta (ex.: "8080") ou faixa ("3000-3010") para a internet. Vale em segundos.
id*caminhoid (uuid)porta*corpotextoprotocolocorpo"tcp" | "udp"padrão: tcpdescricaocorpotextopadrão: curl -X POST "https://app.bsncloud.com.br/api/v1/vps/ID_DA_VPS/firewall/portas" \
-H "Authorization: Bearer $BSN_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "porta": "8080", "protocolo": "tcp" }'/vps/{id}/ip-dedicado saude_ip_dedicadoSaúde do IP dedicado
Se o IP dedicado está respondendo, desde quando e o tráfego do mês.
id*caminhoid (uuid)curl "https://app.bsncloud.com.br/api/v1/vps/ID_DA_VPS/ip-dedicado" \
-H "Authorization: Bearer $BSN_TOKEN"/vps/{id}/chaves-ssh listar_chaves_sshChaves SSH da conta e quais valem nesta VPS
As chaves cadastradas na conta, marcando as que entram como root nesta VPS.
id*caminhoid (uuid)curl "https://app.bsncloud.com.br/api/v1/vps/ID_DA_VPS/chaves-ssh" \
-H "Authorization: Bearer $BSN_TOKEN"/aplicativos catalogo_aplicativosAplicativos que instalam sozinhos
Catálogo com slug, descrição, porta e memória mínima de cada app (use o slug em instalar_aplicativo).
curl "https://app.bsncloud.com.br/api/v1/aplicativos" \
-H "Authorization: Bearer $BSN_TOKEN"/vps/{id}/aplicativos aplicativos_da_vpsAplicativos instalados numa VPS
Apps instalados, situação (instalando, pronto, falhou) e o endereço para abrir.
id*caminhoid (uuid)curl "https://app.bsncloud.com.br/api/v1/vps/ID_DA_VPS/aplicativos" \
-H "Authorization: Bearer $BSN_TOKEN"/vps/{id}/aplicativosmuda algo instalar_aplicativoInstala um aplicativo na VPS
Instala em Docker, ao lado do que já existe (não apaga nada). Leva de 2 a 10 minutos.
id*caminhoid (uuid)slug*corpotextocurl -X POST "https://app.bsncloud.com.br/api/v1/vps/ID_DA_VPS/aplicativos" \
-H "Authorization: Bearer $BSN_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "slug": "n8n" }'/faturas listar_faturasFaturas da conta
Faturas com status, valor, vencimento e link para pagar ou baixar o recibo.
curl "https://app.bsncloud.com.br/api/v1/faturas" \
-H "Authorization: Bearer $BSN_TOKEN"/email/caixas listar_caixas_emailCaixas de e-mail da conta
Todas as caixas (endereço, nome e situação). Use o id nas outras operações de e-mail.
curl "https://app.bsncloud.com.br/api/v1/email/caixas" \
-H "Authorization: Bearer $BSN_TOKEN"/email/caixas/{caixaId}/pastas listar_pastas_emailPastas de uma caixa
Pastas com o papel (entrada, enviados, lixeira…), total e não lidas.
caixaId*caminhoid (uuid)curl "https://app.bsncloud.com.br/api/v1/email/caixas/SEU_CAIXAID/pastas" \
-H "Authorization: Bearer $BSN_TOKEN"/email/caixas/{caixaId}/mensagens listar_mensagens_emailMensagens de uma pasta (com busca)
Lista paginada (mais novas primeiro) com remetente, assunto, data, prévia e marcas. Filtros: todas, nao_lidas, lidas, favoritas, com_anexo.
caixaId*caminhoid (uuid)pastaconsultatextopadrão: INBOXbuscaconsultatextofiltroconsulta"todas" | "nao_lidas" | "lidas" | "favoritas" | "com_anexo"padrão: todaspaginaconsultanúmeropadrão: 1porPaginaconsultanúmeropadrão: 25curl "https://app.bsncloud.com.br/api/v1/email/caixas/SEU_CAIXAID/mensagens" \
-H "Authorization: Bearer $BSN_TOKEN"/email/caixas/{caixaId}/mensagens/{uid} ler_mensagem_emailLê uma mensagem
Cabeçalhos, texto, HTML limpo e lista de anexos. Ler marca como lida.
caixaId*caminhoid (uuid)uid*caminhonúmeropastaconsultatextopadrão: INBOXcurl "https://app.bsncloud.com.br/api/v1/email/caixas/SEU_CAIXAID/mensagens/SEU_UID" \
-H "Authorization: Bearer $BSN_TOKEN"/email/caixas/{caixaId}/enviarmuda algo enviar_emailEnvia um e-mail pela caixa
Envia (texto ou HTML) e guarda a cópia em Enviados. Para responder na mesma conversa, informe respostaA {pasta, uid}.
caixaId*caminhoid (uuid)paracorpoarraypadrão: cccorpoarraypadrão: ccocorpoarraypadrão: assuntocorpotextopadrão: textocorpotextohtmlcorpotextorespostaAcorpoobjectcurl -X POST "https://app.bsncloud.com.br/api/v1/email/caixas/SEU_CAIXAID/enviar" \
-H "Authorization: Bearer $BSN_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'/email/caixas/{caixaId}/movermuda algo mover_emailMove mensagens de pasta
Move as mensagens (uids) da pasta de origem para a pasta de destino.
caixaId*caminhoid (uuid)pastacorpotextopadrão: INBOXuids*corpoarraydestino*corpotextocurl -X POST "https://app.bsncloud.com.br/api/v1/email/caixas/SEU_CAIXAID/mover" \
-H "Authorization: Bearer $BSN_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "uids": "texto", "destino": "texto" }'/email/caixas/{caixaId}/marcarmuda algo marcar_emailMarca como lida/não lida ou favorita
Muda as marcas de lida e/ou favorita das mensagens (uids) de uma pasta.
caixaId*caminhoid (uuid)pastacorpotextopadrão: INBOXuids*corpoarraylidacorposim/nãofavoritacorposim/nãocurl -X POST "https://app.bsncloud.com.br/api/v1/email/caixas/SEU_CAIXAID/marcar" \
-H "Authorization: Bearer $BSN_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "uids": "texto" }'