� Documentação da API

Explore e teste os endpoints da API da plataforma

Base URL: http://localhost:3000

🔐 Autenticação

POST /api/auth/login

Realiza login e retorna um token JWT para autenticação nas rotas protegidas.

Parâmetros do Body (JSON):

Parâmetro Tipo Descrição
usernameobrigatório string Nome de usuário (admin ou demo)
passwordobrigatório string Senha do usuário

Exemplo de Requisição:

curl -X POST http://localhost:3000/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "username": "admin",
    "password": "admin123"
  }'

Exemplo de Resposta:

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "user": {
    "username": "admin",
    "role": "admin"
  }
}

🧪 Testar Endpoint

📊 Estatísticas (Públicas)

GET /api/stats/public

Retorna estatísticas públicas básicas do bot (não requer autenticação).

Exemplo de Requisição:

curl http://localhost:3000/api/stats/public

Exemplo de Resposta:

{
  "totalUsers": 156,
  "activeUsers": 89,
  "totalSearches": 45231,
  "totalRevenue": 12450.00
}

👥 Usuários

GET /api/users 🔒 Requer Autenticação

Lista todos os usuários com suporte a paginação e busca.

Query Parameters:

Parâmetro Tipo Descrição
pageopcional number Número da página (padrão: 1)
limitopcional number Itens por página (padrão: 20)
searchopcional string Buscar por nome ou Telegram ID

Exemplo de Requisição:

curl http://localhost:3000/api/users?page=1&limit=20 \
  -H "Authorization: Bearer SEU_TOKEN_JWT"
GET /api/users/:telegramId 🔒 Requer Autenticação

Retorna detalhes completos de um usuário específico, incluindo histórico de uso e pagamentos.

Exemplo de Requisição:

curl http://localhost:3000/api/users/123456789 \
  -H "Authorization: Bearer SEU_TOKEN_JWT"

📈 Métricas de Uso

GET /api/usage/daily

Retorna estatísticas de uso diário dos últimos N dias.

Query Parameters:

daysopcional number Número de dias (padrão: 7, máx: 90)

Exemplo de Requisição:

curl http://localhost:3000/api/usage/daily?days=30
GET /api/usage/by-platform

Retorna distribuição de uso por plataforma (Mercado Livre, Amazon, Shopee, etc).

GET /api/usage/by-hour

Retorna distribuição de uso por hora do dia (0-23).

📊 Crescimento de Usuários

GET /api/users/growth

Retorna dados de crescimento de usuários (novos cadastros por dia).

Query Parameters:

daysopcional number Número de dias (padrão: 30)

💰 Pagamentos

GET /api/payments/stats 🔒 Requer Autenticação

Retorna estatísticas gerais de pagamentos.

GET /api/payments/revenue

Retorna histórico de receita por mês.

📋 Códigos de Status HTTP

Código Descrição
200 Requisição bem-sucedida
201 Recurso criado com sucesso
400 Requisição inválida (erro nos parâmetros)
401 Não autorizado (token ausente ou inválido)
404 Recurso não encontrado
500 Erro interno do servidor