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
/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"
}'
/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"
}'
/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"
/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"
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
60
requests/min
300
requests/min
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.
/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"
/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"
}'
/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"
/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"
/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"}'
/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"
Sessões SSH
Gerencie sessões SSH e execute comandos com streaming em tempo real via SSE (Server-Sent Events) ou WebSocket.
/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"
/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"
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.
/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"
/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"
}'
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.
/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"
}'
/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"
/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.
/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"
}'
/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.
/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"
}'
/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
/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"]
}'
/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"
Servidores Cloud
EmpresarialProvisione e gerencie servidores na nuvem sob demanda. Disponível em planos Empresarial.
Provisionamento de servidores na nuvem requer um plano Empresarial.
/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"
/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"
}'
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
/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
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
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 SuportePrecisa de Ajuda?
Quer contribuir com um SDK? Entre em contato!
Contate o Suporte