Admin API

Administrative endpoints for system monitoring, metrics, logging, and user management.

🔐 Authentication

All admin endpoints require authentication with admin role.

Header:

Authorization: Bearer <admin_access_token>

📡 Endpoints

Health Check

System, database, and email service health status.

Endpoint: GET /api/admin/health

Response:

{
  "status": "healthy",
  "timestamp": "2025-12-18T10:00:00.000Z",
  "services": {
    "database": {
      "status": "connected",
      "responseTime": 12
    },
    "email": {
      "status": "operational",
      "provider": "nodemailer"
    },
    "redis": {
      "status": "connected",
      "memory": "2.4MB"
    }
  },
  "system": {
    "uptime": 86400,
    "memory": {
      "used": "245MB",
      "total": "512MB"
    },
    "cpu": {
      "usage": "15%"
    }
  }
}

Request Metrics

API request statistics and summaries.

Endpoint: GET /api/admin/metrics

Query Parameters:

?startDate=2025-12-01&endDate=2025-12-31&endpoint=/api/feedback

Response:

{
  "success": true,
  "data": {
    "totalRequests": 15420,
    "successRate": 98.5,
    "avgResponseTime": 145,
    "endpoints": [
      {
        "path": "/api/feedback",
        "method": "POST",
        "requests": 3821,
        "avgTime": 234,
        "errors": 12
      }
    ],
    "errors": [
      {
        "statusCode": 400,
        "count": 45
      },
      {
        "statusCode": 500,
        "count": 3
      }
    ]
  }
}

Logs

Retrieve structured application logs.

Endpoint: GET /api/admin/logs

Query Parameters:

?level=error&startDate=2025-12-18&limit=100

Response:

{
  "success": true,
  "data": [
    {
      "timestamp": "2025-12-18T10:00:00.000Z",
      "level": "error",
      "message": "Database connection failed",
      "context": {
        "service": "supabase",
        "error": "Connection timeout"
      }
    }
  ],
  "pagination": {
    "total": 250,
    "limit": 100,
    "offset": 0
  }
}

Add Log Entry

Endpoint: POST /api/admin/logs

Request Body:

{
  "level": "info",
  "message": "Manual log entry",
  "context": {
    "action": "user_action",
    "userId": "user_123"
  }
}

User Management

List all users with filtering.

Endpoint: GET /api/admin/users

Query Parameters:

?role=admin&active=true&limit=50

Response:

{
  "success": true,
  "data": [
    {
      "id": "user_123",
      "email": "admin@example.com",
      "name": "Admin User",
      "roles": ["admin"],
      "active": true,
      "lastLogin": "2025-12-18T09:00:00.000Z",
      "createdAt": "2025-01-01T00:00:00.000Z"
    }
  ]
}

📊 Status Dashboard

Web-based monitoring dashboard powered by express-status-monitor.

URL: /admin/status

Features:

  • Real-time metrics
  • CPU and memory usage graphs
  • Request/response statistics
  • Active connections
  • System information

Access requires admin authentication.

On this page