{
    "name": "ETSPM",
    "version": "1.0.0",
    "api_version": "v1",
    "status": "running",
    "timestamp": "2026-04-07 21:11:15",
    "endpoints": {
        "auth": {
            "GET /api/auth/check-root": "Check if root user exists",
            "POST /api/auth/setup-root": "Setup root account (first-time only)",
            "POST /api/auth/login": "Login to get JWT token",
            "GET /api/auth/profile": "Get current user profile",
            "PUT /api/auth/update-profile": "Update user profile"
        },
        "projects": {
            "GET /api/projects": "Get all projects",
            "GET /api/projects?id={id}": "Get single project",
            "POST /api/projects": "Create new project",
            "PUT /api/projects?id={id}": "Update project",
            "DELETE /api/projects?id={id}": "Delete project"
        },
        "phases": {
            "GET /api/phases?project_id={id}": "Get phases by project",
            "GET /api/phases?id={id}": "Get single phase",
            "POST /api/phases": "Create new phase",
            "PUT /api/phases?id={id}": "Update phase",
            "DELETE /api/phases?id={id}": "Delete phase"
        },
        "tasks": {
            "GET /api/tasks?phase_id={id}": "Get tasks by phase",
            "GET /api/tasks?id={id}": "Get single task",
            "POST /api/tasks": "Create new task",
            "PUT /api/tasks?id={id}": "Update task",
            "DELETE /api/tasks?id={id}": "Delete task"
        },
        "costs": {
            "GET /api/costs?project_id={id}": "Get costs by project",
            "GET /api/costs?phase_id={id}": "Get costs by phase",
            "POST /api/costs": "Create new cost",
            "PUT /api/costs?id={id}": "Update cost",
            "DELETE /api/costs?id={id}": "Delete cost"
        },
        "demos": {
            "GET /api/demos?project_id={id}": "Get demos by project",
            "POST /api/demos": "Create new demo",
            "PUT /api/demos?id={id}": "Update demo",
            "DELETE /api/demos?id={id}": "Delete demo"
        },
        "notifications": {
            "GET /api/notifications": "Get all notifications",
            "GET /api/notifications?unread=true": "Get unread notifications",
            "POST /api/notifications": "Create notification",
            "PUT /api/notifications?id={id}": "Mark notification as read",
            "DELETE /api/notifications?id={id}": "Delete notification"
        }
    },
    "authentication": "Bearer Token (JWT)",
    "note": "Add Authorization: Bearer {token} header to authenticated requests"
}