Bem-vindo à API do EzServer

A API do EzServer é uma API RESTful que permite gerenciar seus servidores, implantar aplicações, executar comandos SSH, criar backups e muito mais - tudo programaticamente.

O que você pode fazer com a API

  • Criar e gerenciar servidores com acesso SSH
  • Executar comandos e transmitir saída em tempo real
  • Implantar aplicações com detecção automática de framework
  • Criar e restaurar backups
  • Monitorar métricas e recursos do servidor
  • Compartilhar acesso ao servidor com membros da equipe
  • Provisionar servidores na nuvem sob demanda

URL Base

https://ezserver.app/api/v1

Formato de Resposta

Todas as respostas são retornadas em formato JSON com uma estrutura consistente:

{
  "success": true,
  "message": "Operation completed successfully",
  "data": { ... },
  "meta": {
    "total": 10,
    "per_page": 15,
    "current_page": 1
  }
}

Início Rápido

1. Obtenha Seu Token de API

Gere um token de API no seu painel. Vá em Perfil > Tokens de API e crie um novo token.

2. Faça Sua Primeira Requisição

Use seu token para autenticar requisições. Inclua-o no cabeçalho Authorization.

3. Explore a API

Navegue pela documentação para descobrir todos os endpoints disponíveis e suas capacidades.

Tente listar seus servidores:

curl -X GET "https://ezserver.app/api/v1/servers" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Autenticação

A API do EzServer usa autenticação Bearer token via Laravel Sanctum. Inclua seu token de API no cabeçalho Authorization de cada requisição.

Formato do Cabeçalho

Authorization: Bearer YOUR_API_TOKEN
POST /api/v1/auth/register Público

Registrar

Criar uma nova conta de usuário.

curl -X POST "https://ezserver.app/api/v1/auth/register" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "name": "John Doe",
    "email": "john@example.com",
    "password": "password123",
    "password_confirmation": "password123"
  }'
POST /api/v1/auth/login Público

Login

Autenticar e receber um token de API.

curl -X POST "https://ezserver.app/api/v1/auth/login" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "email": "john@example.com",
    "password": "password123"
  }'
GET /api/v1/auth/profile Requer Autenticação

Obter Perfil

Obter perfil do usuário autenticado.

curl -X GET "https://ezserver.app/api/v1/auth/profile" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/auth/verify-2fa Público

Verificar 2FA

Verificar código de autenticação de dois fatores.

curl -X POST "https://ezserver.app/api/v1/auth/verify-2fa" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "challenge_token": "CHALLENGE_TOKEN_FROM_LOGIN",
    "code": "123456"
  }'
PUT /api/v1/auth/profile Requer Autenticação

Atualizar Perfil

Atualizar informações do perfil do usuário.

curl -X PUT "https://ezserver.app/api/v1/auth/profile" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "name": "John Updated",
    "email": "john.new@example.com"
  }'
POST /api/v1/auth/logout Requer Autenticação

Logout

Revogar o token de API atual.

curl -X POST "https://ezserver.app/api/v1/auth/logout" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/auth/logout-all Requer Autenticação

Logout de Todos os Dispositivos

Revogar todos os tokens de API do usuário.

curl -X POST "https://ezserver.app/api/v1/auth/logout-all" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
GET /api/v1/auth/tokens Requer Autenticação

Listar Tokens

Listar todos os tokens de API ativos.

curl -X GET "https://ezserver.app/api/v1/auth/tokens" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
DELETE /api/v1/auth/tokens/{tokenId} Requer Autenticação

Excluir Token

Revogar um token de API específico.

curl -X DELETE "https://ezserver.app/api/v1/auth/tokens/5" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Limites de Taxa

As requisições da API são limitadas para garantir uso justo e proteger o serviço. Os limites variam por endpoint e plano de assinatura.

Limites por Plano

Básico+

60

requests/min

Profissional+

300

requests/min

Empresarial

600

requests/min

Cabeçalhos de Limite de Taxa

Toda resposta inclui informações de limite de taxa nos cabeçalhos:

X-RateLimit-Limit: 60        // Máximo de requisições permitidas na janela
X-RateLimit-Remaining: 45   // Requisições restantes na janela atual
X-RateLimit-Reset: 1640000000 // Timestamp Unix de quando a janela reseta

Quando o Limite é Excedido

Quando você excede o limite, você receberá uma resposta 429 Too Many Requests:

{
  "success": false,
  "message": "Too Many Requests",
  "retry_after": 30
}

Servidores

Gerencie seus servidores com operações CRUD completas, teste de conectividade SSH, execução de comandos e monitoramento de métricas.

GET /api/v1/servers Requer Autenticação

Listar Servidores

Obter uma lista paginada de todos os seus servidores.

curl -X GET "https://ezserver.app/api/v1/servers" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/servers Requer Autenticação

Criar Servidor

Adicionar um novo servidor à sua conta.

curl -X POST "https://ezserver.app/api/v1/servers" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "name": "My Production Server",
    "host": "192.168.1.100",
    "port": 22,
    "username": "root",
    "password": "your-ssh-password",
    "type": "vps"
  }'
GET /api/v1/servers/{id} Requer Autenticação

Obter Servidor

Obter informações detalhadas sobre um servidor específico.

curl -X GET "https://ezserver.app/api/v1/servers/1" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/servers/{id}/test-connection Requer Autenticação

Testar Conexão

Testar conectividade SSH com o servidor.

curl -X POST "https://ezserver.app/api/v1/servers/1/test-connection" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/servers/{id}/execute-command Requer Autenticação

Executar Comando

Executar um comando SSH no servidor.

curl -X POST "https://ezserver.app/api/v1/servers/1/execute-command" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"command": "uptime"}'
PUT /api/v1/servers/{id} Requer Autenticação

Atualizar Servidor

Atualizar configuração do servidor.

curl -X PUT "https://ezserver.app/api/v1/servers/1" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "name": "Updated Server Name",
    "port": 2222
  }'
DELETE /api/v1/servers/{id} Requer Autenticação

Excluir Servidor

Remover um servidor da sua conta.

curl -X DELETE "https://ezserver.app/api/v1/servers/1" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/servers/{id}/scan Requer Autenticação

Escanear Servidor

Escanear e detectar configuração do servidor, aplicações e serviços.

curl -X POST "https://ezserver.app/api/v1/servers/1/scan" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
GET /api/v1/servers/{id}/metrics Requer Autenticação

Obter Métricas

Obter métricas do servidor em tempo real (CPU, memória, disco, rede).

curl -X GET "https://ezserver.app/api/v1/servers/1/metrics" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
GET /api/v1/servers/{id}/applications Requer Autenticação

Listar Aplicações

Obter todas as aplicações implantadas no servidor.

curl -X GET "https://ezserver.app/api/v1/servers/1/applications" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Sessões SSH

Gerencie sessões SSH e execute comandos com streaming em tempo real via SSE (Server-Sent Events) ou WebSocket.

GET /api/v1/ssh/sessions Requer Autenticação

Listar Sessões

Obter todas as sessões SSH ativas do usuário autenticado.

curl -X GET "https://ezserver.app/api/v1/ssh/sessions" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
GET /api/v1/ssh/sessions/server/{serverId} Requer Autenticação

Sessões do Servidor

Obter sessões SSH ativas de um servidor específico.

curl -X GET "https://ezserver.app/api/v1/ssh/sessions/server/1" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
DELETE /api/v1/ssh/sessions/{virtualSessionId} Requer Autenticação

Encerrar Sessão

Encerrar uma sessão SSH específica pelo seu ID de sessão virtual.

curl -X DELETE "https://ezserver.app/api/v1/ssh/sessions/abc123" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
DELETE /api/v1/ssh/sessions/server/{serverId}/all Requer Autenticação

Encerrar Todas

Encerrar todas as sessões SSH de um servidor específico.

curl -X DELETE "https://ezserver.app/api/v1/ssh/sessions/server/1/all" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Streaming em Tempo Real

O EzServer suporta dois métodos para execução de comandos em tempo real:

Server-Sent Events (SSE) Profissional+

Use SSE para streaming unidirecional da saída de comandos. Ideal para executar comandos e receber resultados.

Conectando ao Stream SSE
curl -N "https://ezserver.app/api/v1/mcp/sse" \
  -H "Authorization: Bearer YOUR_MCP_TOKEN" \
  -H "X-User-ID: YOUR_USER_ID" \
  -H "Accept: text/event-stream"

WebSocket

Use WebSocket para sessões de terminal interativas full-duplex. Ideal para shells interativos.

Conexão WebSocket
const ws = new WebSocket('wss://ezserver.app:8090/ssh-ws');

ws.onopen = () => {
  // Mensagem de autenticação para iniciar sessão
  ws.send(JSON.stringify({
    type: 'auth',
    data: {
      server_id: 1,
      token: 'YOUR_API_TOKEN'
    }
  }));
};

ws.onmessage = (event) => {
  const output = atob(event.data); // Base64 decoded
  console.log(output);
};

// Enviar entrada para o terminal
ws.send(JSON.stringify({
  type: 'input',
  data: btoa('ls -la\n') // Base64 encoded
}));

// Redimensionar janela do terminal
ws.send(JSON.stringify({
  type: 'resize',
  data: { cols: 120, rows: 40 }
}));

Backups

Básico+

Crie, gerencie e restaure backups de servidores. A frequência e recursos de backup dependem do seu plano de assinatura.

Recursos de backup requerem um plano Básico ou superior.

GET /api/v1/backups Básico+

Listar Backups

Obter todos os backups do usuário autenticado.

curl -X GET "https://ezserver.app/api/v1/backups" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/backups/quick Básico+

Backup Rápido

Criar um backup imediato de um servidor.

curl -X POST "https://ezserver.app/api/v1/backups/quick" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "server_id": 1,
    "type": "full",
    "name": "Pre-deployment backup"
  }'
GET /api/v1/backups/{id} Básico+

Obter Backup

Obter informações detalhadas sobre um backup específico.

curl -X GET "https://ezserver.app/api/v1/backups/1" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
DELETE /api/v1/backups/{id} Básico+

Excluir Backup

Excluir um backup permanentemente.

curl -X DELETE "https://ezserver.app/api/v1/backups/1" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
GET /api/v1/servers/{id}/backups Básico+

Backups do Servidor

Obter todos os backups de um servidor específico.

curl -X GET "https://ezserver.app/api/v1/servers/1/backups" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
GET /api/v1/servers/{id}/backup-configurations Básico+

Configurações de Backup

Gerenciar configurações de backup agendado.

curl -X GET "https://ezserver.app/api/v1/servers/1/backup-configurations" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Tipos de Backup

full

Backup completo do servidor incluindo todos os arquivos, bancos de dados e configurações

files

Backup apenas de arquivos e diretórios

database

Backup apenas de bancos de dados

Aplicações

Implante e gerencie aplicações com detecção automática de framework. Suporta 28+ frameworks incluindo Laravel, Node.js, Python e mais.

POST /api/v1/servers/{server}/applications Requer Autenticação

Implantar Aplicação

Implantar uma nova aplicação com detecção automática de framework.

curl -X POST "https://ezserver.app/api/v1/servers/1/applications" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "path": "/var/www/myapp",
    "domain": "myapp.example.com",
    "framework": "laravel"
  }'
POST /api/v1/servers/{server}/applications/{app}/start Requer Autenticação

Iniciar Aplicação

Iniciar uma aplicação que está atualmente parada.

curl -X POST "https://ezserver.app/api/v1/servers/1/applications/5/start" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/servers/{server}/applications/{app}/stop Requer Autenticação

Parar Aplicação

Parar uma aplicação em execução.

curl -X POST "https://ezserver.app/api/v1/servers/1/applications/5/stop" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/servers/{server}/applications/{app}/ssl Requer Autenticação

Habilitar SSL

Habilitar certificado SSL para a aplicação.

curl -X POST "https://ezserver.app/api/v1/servers/1/applications/5/ssl" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Frameworks Suportados

Laravel, Symfony, WordPress, Django, Flask, FastAPI, Express, Next.js, Nuxt.js, NestJS, Vue, React, Angular e mais.

Operações de Banco de Dados

Execute operações de banco de dados com suporte a uploads e downloads em chunks. Perfeito para arquivos de banco de dados grandes.

POST /api/v1/servers/{server}/database/upload/initialize Requer Autenticação

Inicializar Upload

Iniciar uma sessão de upload de arquivo de banco de dados em chunks.

curl -X POST "https://ezserver.app/api/v1/servers/1/database/upload/initialize" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "filename": "backup.sql",
    "size": 104857600,
    "database": "production_db"
  }'
POST /api/v1/servers/{server}/database/export Requer Autenticação

Exportar Banco de Dados

Exportar um banco de dados para um arquivo SQL.

curl -X POST "https://ezserver.app/api/v1/servers/1/database/export" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "database": "production_db",
    "format": "sql"
  }'

Operações de Arquivo

Baixe arquivos de servidores com suporte a downloads em chunks. Ideal para arquivos grandes e conexões instáveis.

POST /api/v1/servers/{server}/files/download/initialize Requer Autenticação

Inicializar Download

Iniciar uma sessão de download de arquivo em chunks.

curl -X POST "https://ezserver.app/api/v1/servers/1/files/download/initialize" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "path": "/var/www/myapp/storage/logs/laravel.log"
  }'
POST /api/v1/servers/{server}/files/download Requer Autenticação

Download em Background

Iniciar um job de download em background para arquivos grandes.

curl -X POST "https://ezserver.app/api/v1/servers/1/files/download" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "path": "/var/www/myapp/public/storage/large-file.zip",
    "background": true
  }'

Compartilhamento de Recursos

Compartilhe acesso ao servidor com membros da equipe com permissões granulares (visualizar, escrever, executar).

Níveis de Permissão

view

Visualizar detalhes e métricas do servidor

write

Modificar configurações e arquivos do servidor

execute

Executar comandos SSH no servidor

GET /api/v1/shares Requer Autenticação

Listar Compartilhamentos

Obter todos os compartilhamentos de recursos (enviados e recebidos).

curl -X GET "https://ezserver.app/api/v1/shares" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/shares Requer Autenticação

Criar Compartilhamento

Criar um novo convite de compartilhamento de recurso.

curl -X POST "https://ezserver.app/api/v1/shares" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "email": "teammate@example.com",
    "server_ids": [1, 2],
    "permissions": ["view", "execute"]
  }'
GET /api/v1/shares/pending Requer Autenticação

Convites Pendentes

Obter convites de compartilhamento pendentes.

curl -X GET "https://ezserver.app/api/v1/shares/pending" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/shares/{token}/accept Requer Autenticação

Aceitar Compartilhamento

Aceitar um convite de compartilhamento.

curl -X POST "https://ezserver.app/api/v1/shares/abc123def456/accept" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/shares/{token}/reject Requer Autenticação

Rejeitar Compartilhamento

Rejeitar um convite de compartilhamento.

curl -X POST "https://ezserver.app/api/v1/shares/abc123def456/reject" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
DELETE /api/v1/shares/{id} Requer Autenticação

Revogar Compartilhamento

Revogar um compartilhamento (apenas proprietário).

curl -X DELETE "https://ezserver.app/api/v1/shares/1" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Solicitações de Acesso

Solicite e gerencie acesso a recursos compartilhados. Usuários podem solicitar acesso a servidores que não possuem.

GET /api/v1/access-requests Requer Autenticação

Listar Solicitações

Obter todas as solicitações de acesso (enviadas e recebidas).

curl -X GET "https://ezserver.app/api/v1/access-requests" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/access-requests Requer Autenticação

Solicitar Acesso

Enviar uma nova solicitação de acesso a um recurso.

curl -X POST "https://ezserver.app/api/v1/access-requests" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "share_id": 1,
    "message": "I need access to deploy the frontend."
  }'
POST /api/v1/access-requests/{id}/approve Requer Autenticação

Aprovar Solicitação

Aprovar uma solicitação de acesso pendente (apenas proprietário).

curl -X POST "https://ezserver.app/api/v1/access-requests/1/approve" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/access-requests/{id}/reject Requer Autenticação

Rejeitar Solicitação

Rejeitar uma solicitação de acesso pendente (apenas proprietário).

curl -X POST "https://ezserver.app/api/v1/access-requests/1/reject" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Servidores Cloud

Empresarial

Provisione e gerencie servidores na nuvem sob demanda. Disponível em planos Empresarial.

Provisionamento de servidores na nuvem requer um plano Empresarial.

GET /api/v1/cloud/providers Público

Listar Provedores

Obter provedores de nuvem disponíveis.

curl -X GET "https://ezserver.app/api/v1/cloud/providers" \
  -H "Accept: application/json"
GET /api/v1/cloud/sizes Público

Listar Tamanhos

Obter tamanhos de servidor disponíveis e preços.

curl -X GET "https://ezserver.app/api/v1/cloud/sizes" \
  -H "Accept: application/json"
GET /api/v1/cloud/regions Público

Listar Regiões

Obter regiões disponíveis para cada provedor.

curl -X GET "https://ezserver.app/api/v1/cloud/regions" \
  -H "Accept: application/json"
GET /api/v1/cloud/pricing Público

Obter Preços

Obter informações de preços atuais.

curl -X GET "https://ezserver.app/api/v1/cloud/pricing" \
  -H "Accept: application/json"
POST /api/v1/cloud/servers/provision Empresarial

Provisionar Servidor

Provisionar um novo servidor na nuvem.

curl -X POST "https://ezserver.app/api/v1/cloud/servers/provision" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "provider": "digitalocean",
    "size": "s-2vcpu-4gb",
    "region": "nyc1",
    "name": "my-cloud-server"
  }'
GET /api/v1/cloud/subscriptions Empresarial

Listar Assinaturas

Obter suas assinaturas de servidores na nuvem.

curl -X GET "https://ezserver.app/api/v1/cloud/subscriptions" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/cloud/servers/{id}/cancel Empresarial

Cancelar Assinatura

Cancelar uma assinatura de servidor na nuvem.

curl -X POST "https://ezserver.app/api/v1/cloud/servers/1/cancel" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Protocolo MCP

Profissional+

Integração Model Context Protocol (MCP) para execução de comandos SSH com IA e gerenciamento de servidores.

O Protocolo MCP requer um plano Profissional ou superior.

Autenticação MCP

O MCP usa um método de autenticação separado com cabeçalhos personalizados:

Authorization: Bearer YOUR_MCP_TOKEN  // Seu token de API MCP (diferente do token de API regular)
X-User-ID: YOUR_USER_ID               // Seu ID de usuário
POST /api/v1/mcp/tool Profissional+

Executar Ferramenta

Executar uma ferramenta MCP.

curl -X POST "https://ezserver.app/api/v1/mcp/tool" \
  -H "Authorization: Bearer YOUR_MCP_TOKEN" \
  -H "X-User-ID: YOUR_USER_ID" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "tool": "executeCommand",
    "params": {
      "server_id": 1,
      "command": "uptime"
    }
  }'

Ferramentas Disponíveis

listServers Listar todos os servidores acessíveis
getServerDetails Obter informações detalhadas do servidor
executeCommand Executar comando SSH em um servidor
getServerMetrics Obter métricas do servidor em tempo real

Status da API

Monitore a disponibilidade da API e informações de versão.

GET /api/v1/health Público

Status da API

Verificar se a API está funcionando e obter informações de versão.

curl -X GET "https://ezserver.app/api/v1/health" \
  -H "Accept: application/json"

Painel

Obtenha uma visão geral da sua conta incluindo estatísticas de servidores, atividade recente e uso de recursos.

GET /api/v1/dashboard Requer Autenticação

Visão Geral do Painel

Obter estatísticas da conta, contagem de servidores e atividade recente.

curl -X GET "https://ezserver.app/api/v1/dashboard" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
GET /api/v1/metrics Requer Autenticação

Métricas Globais

Obter métricas agregadas de todos os seus servidores.

curl -X GET "https://ezserver.app/api/v1/metrics" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

WHM/cPanel

WHM

Gerencie servidores WHM/cPanel com gerenciamento de contas, operações de arquivos, gerenciamento de banco de dados, contas FTP, backups e implantação de aplicações.

O gerenciamento WHM/cPanel requer servidores configurados com acesso WHM.

GET /api/v1/servers/{server}/whm/accounts Requer Autenticação

Listar Contas

Obter todas as contas cPanel no servidor WHM.

curl -X GET "https://ezserver.app/api/v1/servers/1/whm/accounts" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/servers/{server}/whm/accounts/sync Requer Autenticação

Sincronizar Contas

Sincronizar contas cPanel com o banco de dados local.

curl -X POST "https://ezserver.app/api/v1/servers/1/whm/accounts/sync" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
GET /api/v1/servers/{server}/whm/accounts/{username}/files Requer Autenticação

Listar Arquivos

Listar arquivos em um diretório de conta cPanel.

curl -X GET "https://ezserver.app/api/v1/servers/1/whm/accounts/cpuser/files?path=/public_html" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
GET /api/v1/servers/{server}/whm/accounts/{username}/databases Requer Autenticação

Listar Bancos de Dados

Listar bancos de dados de uma conta cPanel.

curl -X GET "https://ezserver.app/api/v1/servers/1/whm/accounts/cpuser/databases" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/servers/{server}/whm/accounts/{username}/databases Requer Autenticação

Criar Banco de Dados

Criar um novo banco de dados para uma conta cPanel.

curl -X POST "https://ezserver.app/api/v1/servers/1/whm/accounts/cpuser/databases" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{"name": "myapp_db"}'
POST /api/v1/servers/{server}/whm/accounts/{username}/backups Requer Autenticação

Criar Backup

Criar um novo backup de uma conta cPanel.

curl -X POST "https://ezserver.app/api/v1/servers/1/whm/accounts/cpuser/backups" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"
POST /api/v1/servers/{server}/whm/accounts/{username}/deploy Requer Autenticação

Implantar Aplicação

Implantar uma aplicação em uma conta cPanel.

curl -X POST "https://ezserver.app/api/v1/servers/1/whm/accounts/cpuser/deploy" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "framework": "laravel",
    "domain": "myapp.example.com"
  }'
GET /api/v1/whm/frameworks Requer Autenticação

Frameworks Suportados

Obter lista de frameworks suportados para implantação WHM.

curl -X GET "https://ezserver.app/api/v1/whm/frameworks" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Webhooks

Configure e gerencie webhooks para implantações automatizadas e notificações de cobrança.

Webhooks Git não requerem autenticação. O repositório e token na URL servem como identificação.

POST /api/v1/webhooks/git/{repository}/{token} Público

Webhook Git

Receber eventos de push Git para implantações automatizadas.

curl -X POST "https://ezserver.app/api/v1/webhooks/git/my-repo/abc123token" \
  -H "Content-Type: application/json" \
  -d '{"ref": "refs/heads/main"}'
GET /api/v1/webhooks/git/{repository}/{token}/test Público

Testar Webhook

Testar se um endpoint de webhook está configurado corretamente.

curl -X GET "https://ezserver.app/api/v1/webhooks/git/my-repo/abc123token/test" \
  -H "Accept: application/json"
GET /api/v1/webhooks/git/{repository}/{token}/status Público

Status do Webhook

Obter o status atual e eventos recentes de um webhook.

curl -X GET "https://ezserver.app/api/v1/webhooks/git/my-repo/abc123token/status" \
  -H "Accept: application/json"

Tratamento de Erros

A API usa códigos de status HTTP padrão e retorna mensagens de erro detalhadas em formato JSON.

Códigos de Status HTTP

200 Requisição bem-sucedida
201 Recurso criado com sucesso
204 Requisição bem-sucedida sem conteúdo
400 Requisição inválida - Parâmetros inválidos
401 Não autorizado - Token inválido ou ausente
403 Proibido - Permissões insuficientes
404 Não encontrado - Recurso não existe
422 Erro de validação - Verifique os detalhes do erro
429 Muitas requisições - Limite de taxa excedido
500 Erro do servidor - Contate o suporte

Formato de Resposta de Erro

{
  "success": false,
  "message": "The given data was invalid.",
  "errors": {
    "email": ["The email field is required."],
    "password": ["The password must be at least 8 characters."]
  }
}

SDKs e Bibliotecas

Bibliotecas oficiais e mantidas pela comunidade para integrar com a API do EzServer.

JavaScript

Em breve

Python

Em breve

PHP

Em breve

Go

Em breve

Quer contribuir com um SDK? Entre em contato!

Contate o Suporte

Precisa de Ajuda?

Quer contribuir com um SDK? Entre em contato!

Contate o Suporte