ALM-2 / backend /api /api_contract.json
ACA050's picture
Upload 520 files
2ed8996 verified
Invalid JSON:Expected ',' or '}' after property value in JSONat line 1308, column 1
{
"metadata": {
"total_endpoints": 185,
"api_version": "v1",
"base_path": "/api/v1",
"generated_at": "2025-06-17T10:14:00Z",
"description": "Complete API contract for AegisLM SaaS Backend - Single Source of Truth"
},
"endpoints": {
"authentication": {
"POST /auth/signup": {
"description": "Register a new user account and send OTP verification email",
"request": {
"email": "string",
"password": "string",
"full_name": "string"
},
"response": {
"success": "boolean",
"message": "string",
"data": {
"user_id": "string",
"email": "string",
"full_name": "string",
"message": "string",
"next_step": "string",
"otp_length": "number",
"otp_expiry_minutes": "number"
}
}
},
"POST /auth/login": {
"description": "Authenticate user and create Redis session",
"request": {
"email": "string",
"password": "string"
},
"response": {
"success": "boolean",
"message": "string",
"data": {
"session_id": "string",
"access_token": "string",
"token_type": "string",
"session_type": "string",
"expires_in": "number",
"user": "UserResponse"
}
}
},
"GET /auth/me": {
"description": "Get current user profile from Redis session",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": "UserResponse"
}
},
"GET /auth/validate-session/{session_id}": {
"description": "Validate session from Redis",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": {
"valid": "boolean",
"user": "object"
}
}
},
"POST /auth/logout": {
"description": "Logout user by clearing session cookie",
"request": {},
"response": {
"success": "boolean",
"message": "string"
}
},
"PUT /auth/me": {
"description": "Update current user profile",
"request": "UserUpdate",
"response": {
"success": "boolean",
"message": "string",
"data": "UserResponse"
}
},
"POST /auth/change-password": {
"description": "Change user password",
"request": {
"current_password": "string",
"new_password": "string"
},
"response": {
"success": "boolean",
"message": "string"
}
},
"POST /auth/reset-password": {
"description": "Request password reset",
"request": {
"email": "string"
},
"response": {
"success": "boolean",
"message": "string"
}
},
"POST /auth/reset-password/confirm": {
"description": "Confirm password reset with token",
"request": {
"token": "string",
"new_password": "string"
},
"response": {
"success": "boolean",
"message": "string"
}
},
"DELETE /auth/deactivate": {
"description": "Deactivate user account",
"request": {},
"response": {
"success": "boolean",
"message": "string"
}
},
"GET /auth/stats": {
"description": "Get user statistics",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": "object"
}
},
"POST /auth/verify-otp": {
"description": "Verify OTP and activate user account",
"request": {
"email": "string",
"otp": "string"
},
"response": {
"success": "boolean",
"message": "string",
"data": {
"user": "UserResponse",
"message": "string",
"next_step": "string"
}
}
},
"POST /auth/resend-otp": {
"description": "Resend OTP verification email",
"request": {
"email": "string"
},
"response": {
"success": "boolean",
"message": "string",
"data": {
"message": "string",
"otp_length": "number",
"otp_expiry_minutes": "number"
}
}
},
"POST /auth/verify-email": {
"description": "Verify user email with token",
"request": {
"token": "string"
},
"response": {
"success": "boolean",
"message": "string"
}
},
"POST /auth/resend-verification": {
"description": "Resend email verification",
"request": {},
"response": {
"success": "boolean",
"message": "string"
}
}
},
"evaluations": {
"POST /evaluations/": {
"description": "Create a new evaluation job",
"request": "EvaluationCreate",
"response": {
"success": "boolean",
"message": "string",
"job_id": "string",
"status": "string",
"estimated_duration": "string"
}
},
"GET /evaluations/": {
"description": "Get paginated evaluations for current user",
"request": {
"page": "number",
"size": "number",
"status_filter": "string"
},
"response": {
"success": "boolean",
"message": "string",
"data": "EvaluationList"
}
},
"GET /evaluations/{evaluation_id}": {
"description": "Get evaluation by ID",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": "EvaluationResponse"
}
},
"GET /evaluations/job/{job_id}": {
"description": "Get evaluation by job ID",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": "EvaluationResponse"
}
},
"PUT /evaluations/{evaluation_id}": {
"description": "Update evaluation metadata",
"request": "EvaluationUpdate",
"response": {
"success": "boolean",
"message": "string",
"data": "EvaluationResponse"
}
},
"POST /evaluations/{evaluation_id}/cancel": {
"description": "Cancel evaluation job",
"request": {},
"response": {
"success": "boolean",
"message": "string"
}
},
"POST /evaluations/job/{job_id}/cancel": {
"description": "Cancel evaluation job by job ID",
"request": {},
"response": {
"success": "boolean",
"message": "string"
}
},
"GET /evaluations/job/{job_id}/status": {
"description": "Get evaluation job status",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"job_id": "string",
"status": "string",
"progress": "number",
"started_at": "datetime",
"completed_at": "datetime",
"error_message": "string"
}
},
"POST /evaluations/{evaluation_id}/execute-advanced": {
"description": "Execute advanced unified evaluation with LLM Judge and Multi-turn Conversation",
"request": {
"enable_multi_turn": "boolean",
"enable_llm_judge": "boolean",
"max_conversation_turns": "number",
"judge_evaluation_types": "array"
},
"response": {
"success": "boolean",
"message": "string",
"data": "object"
}
},
"GET /evaluations/{evaluation_id}/advanced-results": {
"description": "Get comprehensive results from advanced unified evaluation execution",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": "object"
}
},
"POST /evaluations/{evaluation_id}/execute": {
"description": "Execute evaluation using unified execution pipeline",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": "object"
}
},
"GET /evaluations/{evaluation_id}/unified-results": {
"description": "Get comprehensive results from unified evaluation execution",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": "object"
}
},
"GET /evaluations/stats/summary": {
"description": "Get evaluation statistics for current user",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": "EvaluationStats"
}
}
},
"benchmarks": {
"POST /benchmarks/": {
"description": "Create a new benchmark comparison",
"request": "BenchmarkRequest",
"response": {
"success": "boolean",
"message": "string",
"data": "object",
"metadata": "object"
}
},
"GET /benchmarks/{benchmark_id}/status": {
"description": "Get benchmark status",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": "object",
"metadata": "object"
}
},
"GET /benchmarks/{benchmark_id}/results": {
"description": "Get benchmark results",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": "object",
"metadata": "object"
}
},
"GET /benchmarks/leaderboard": {
"description": "Get model leaderboard",
"request": {
"metric": "string",
"limit": "number"
},
"response": {
"success": "boolean",
"message": "string",
"data": "object",
"metadata": "object"
}
},
"GET /benchmarks/": {
"description": "List user's benchmarks",
"request": {
"page": "number",
"size": "number"
},
"response": {
"success": "boolean",
"message": "string",
"data": "object",
"pagination": "object"
}
},
"DELETE /benchmarks/{benchmark_id}": {
"description": "Delete a benchmark",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"metadata": "object"
}
},
"GET /benchmarks/health": {
"description": "Health check for benchmark services",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": {
"components": "object"
}
}
}
},
"datasets": {
"GET /datasets/": {
"description": "List all available datasets with filtering and pagination",
"request": {
"name": "string",
"category": "string",
"version": "string",
"is_standard": "boolean",
"page": "number",
"size": "number"
},
"response": "DatasetList"
},
"GET /datasets/{dataset_id}": {
"description": "Get detailed information about a specific dataset",
"request": {},
"response": "Dataset"
},
"GET /datasets/{dataset_id}/entries": {
"description": "Get entries from a specific dataset with pagination",
"request": {
"page": "number",
"size": "number"
},
"response": {
"entries": "array",
"total": "number",
"page": "number",
"size": "number",
"has_next": "boolean",
"has_prev": "boolean"
}
},
"POST /datasets/": {
"description": "Create a new dataset (Power User only)",
"request": {
"name": "string",
"category": "string",
"description": "string",
"version": "string",
"is_standard": "boolean"
},
"response": "Dataset"
},
"POST /datasets/{dataset_id}/upload": {
"description": "Upload dataset entries from a JSON file (Power User only)",
"request": "FormData",
"response": {
"success": "boolean",
"message": "string",
"dataset_id": "string",
"entries_uploaded": "number",
"validation": "object"
}
},
"GET /datasets/{dataset_id}/stats": {
"description": "Get statistics for a specific dataset",
"request": {},
"response": "DatasetStats"
},
"GET /datasets/standard/benchmarks": {
"description": "Get list of available standard benchmarks",
"request": {},
"response": {
"benchmarks": "array",
"total": "number"
}
},
"POST /datasets/standard/load/{benchmark_name}": {
"description": "Load a standard benchmark dataset (Power User only)",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"dataset_id": "string",
"entries_loaded": "number"
}
},
"PUT /datasets/{dataset_id}": {
"description": "Update dataset metadata (Power User only)",
"request": {
"name": "string",
"description": "string",
"version": "string"
},
"response": "Dataset"
},
"DELETE /datasets/{dataset_id}": {
"description": "Delete a dataset (Power User only)",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"dataset_id": "string"
}
},
"POST /datasets/{dataset_id}/validate": {
"description": "Validate dataset structure and integrity (Power User only)",
"request": {},
"response": "DatasetValidation"
},
"GET /datasets/{dataset_id}/export": {
"description": "Export dataset entries",
"request": {
"format": "string"
},
"response": {
"success": "boolean",
"data": "object",
"format": "string",
"dataset_id": "string"
}
},
"GET /datasets/health": {
"description": "Health check for dataset services",
"request": {},
"response": {
"status": "string",
"service": "string",
"timestamp": "datetime"
}
}
},
"analytics": {
"POST /analytics/compare": {
"description": "Compare multiple experiment runs",
"request": "ComparisonRequest",
"response": {
"success": "boolean",
"message": "string",
"data": "object",
"metadata": "object"
}
},
"POST /analytics/trend": {
"description": "Analyze performance trends across multiple runs",
"request": "TrendAnalysisRequest",
"response": {
"success": "boolean",
"message": "string",
"data": "object",
"metadata": "object"
}
},
"POST /analytics/aggregate": {
"description": "Aggregate metrics across multiple runs",
"request": "AggregationRequest",
"response": {
"success": "boolean",
"message": "string",
"data": "object",
"metadata": "object"
}
},
"POST /analytics/top-performers": {
"description": "Get top performing models across multiple runs",
"request": "TopPerformersRequest",
"response": {
"success": "boolean",
"message": "string",
"data": "object",
"metadata": "object"
}
},
"GET /analytics/summary": {
"description": "Get analytics summary for the current user",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": "object"
}
},
"GET /analytics/health": {
"description": "Health check for analytics services",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": {
"components": "object"
}
}
},
"results": {
"GET /results/job/{job_id}": {
"description": "Get evaluation result by job ID",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": "object"
}
},
"GET /results/evaluation/{evaluation_id}": {
"description": "Get evaluation result by evaluation ID",
"request": {},
"response": {
"success": "boolean",
"message": "string",
"data": "object"
}
},
"GET /results/": {
"description": "Get paginated results for current user",
"request": {
"page": "number",
"size": "number",
"status_filter": "string"
},
"response": {
"success": "boolean",
"message": "string",
"data": "object"
}
}
},
"audit": {
"GET /audit/runs": {
"description": "List all audit runs with filtering and pagination",
"request": {
"run_id": "string",
"status": "AuditStatus",
"integrity_level": "IntegrityLevel",
"start_date": "datetime",
"end_date": "datetime",
"page": "number",
"size": "number"
},
"response": "AuditList"
},
"GET /audit/run/{run_id}": {
"description": "Get detailed audit trail for a specific run",
"request": {},
"response": "AuditTrail"
},
"POST /audit/replay/{run_id}": {
"description": "Replay an audit run for verification",
"request": {},
"response": "object"
},
"GET /audit/integrity/{run_id}": {
"description": "Verify integrity of a specific run",
"request": {},
"response": "IntegrityVerification"
},
"GET /audit/system-integrity": {
"description": "Get system-wide integrity report",
"request": {},
"response": "SystemIntegrityReport"
},
"GET /audit/statistics": {
"description": "Get audit statistics",
"request": {},
"response": "AuditStatistics"
}
},
"multimodal": {
"POST /multimodal/evaluate": {
"description": "Evaluate multi-modal input for adversarial vulnerabilities",
"request": {
"text": "string",
"image": "File",
"image_format": "string",
"target_model": "string",
"enable_image_attacks": "boolean",
"enable_text_image_attacks": "boolean",
"max_image_size": "number"
},
"response": "MultimodalEvaluationResult"
},
"GET /multimodal/supported-models": {
"description": "Get list of supported multi-modal models",
"request": {},
"response": {
"models": "array",
"capabilities": "object"
}
},
"POST /multimodal/batch-evaluate": {
"description": "Batch evaluate multiple multi-modal inputs",
"request": {
"inputs": "array",
"target_model": "string",
"attack_config": "MultimodalAttackConfig"
},
"response": {
"results": "array",
"summary": "object"
}
}
},
"performance": {
"GET /performance/metrics": {
"description": "Get current performance metrics",
"request": {
"time_range": "string",
"include_system": "boolean"
},
"response": "PerformanceMetrics"
},
"GET /performance/resources": {
"description": "Get system resource usage",
"request": {},
"response": "SystemResources"
},
"GET /performance/history": {
"description": "Get historical performance data",
"request": {
"time_range": "string",
"metric_type": "string"
},
"response": {
"data": "array",
"time_range": "string",
"summary": "object"
}
},
"POST /performance/benchmark": {
"description": "Run performance benchmark",
"request": {
"test_type": "string",
"iterations": "number"
},
"response": {
"benchmark_id": "string",
"results": "object",
"summary": "object"
}
}
},
"billing": {
"GET /billing/plans": {
"description": "Get available subscription plans",
"request": {},
"response": "Plan[]"
},
"GET /billing/subscription": {
"description": "Get current user's subscription",
"request": {},
"response": "Subscription"
},
"POST /billing/checkout/create": {
"description": "Create Stripe checkout session for subscription purchase",
"request": {
"plan_id": "string",
"success_url": "string",
"cancel_url": "string"
},
"response": {
"checkout_session_id": "string",
"checkout_url": "string"
}
},
"POST /billing/customer/create": {
"description": "Create or update Stripe customer",
"request": {
"email": "string",
"name": "string",
"billing_address": "BillingAddress",
"payment_method_id": "string"
},
"response": {
"customer_id": "string",
"email": "string",
"name": "string"
}
},
"POST /billing/webhook/stripe": {
"description": "Handle Stripe webhooks for payment processing",
"request": "WebhookEvent",
"response": {
"status": "string",
"event_type": "string"
}
},
"GET /billing/usage": {
"description": "Get current user's usage statistics",
"request": {},
"response": "UsageStats"
},
"GET /billing/invoices": {
"description": "Get user's billing history and invoices",
"request": {
"page": "number",
"size": "number"
},
"response": "Invoice[]"
},
"POST /billing/subscription/cancel": {
"description": "Cancel user's subscription",
"request": {},
"response": {
"message": "string"
}
},
"PUT /billing/subscription/update": {
"description": "Update user's subscription to a different plan",
"request": {
"plan_id": "string"
},
"response": {
"message": "string"
}
},
"GET /billing/payment-methods": {
"description": "Get user's saved payment methods",
"request": {},
"response": "PaymentMethod[]"
},
"POST /billing/payment-methods/add": {
"description": "Add a new payment method",
"request": {
"payment_method_id": "string"
},
"response": {
"message": "string"
}
},
"DELETE /billing/payment-methods/{payment_method_id}": {
"description": "Remove a payment method",
"request": {},
"response": {
"message": "string"
}
},
"GET /billing/health": {
"description": "Health check for billing services",
"request": {},
"response": {
"status": "string",
"service": "string",
"timestamp": "datetime"
}
}
},
"razorpay": {
"POST /razorpay/payments/create": {
"description": "Create a new Razorpay payment",
"request": "PaymentRequest",
"response": "PaymentResponse"
},
"POST /razorpay/payments/capture/{payment_id}": {
"description": "Capture a Razorpay payment",
"request": {
"amount": "number"
},
"response": "PaymentResponse"
},
"POST /razorpay/payments/refund/{payment_id}": {
"description": "Refund a Razorpay payment",
"request": "RefundRequest",
"response": "RefundResponse"
},
"POST /razorpay/customers/create": {
"description": "Create a Razorpay customer",
"request": "CustomerRequest",
"response": "CustomerResponse"
},
"GET /razorpay/customers/{customer_id}/payment-methods": {
"description": "Get available payment methods for a customer",
"request": {},
"response": {
"success": "boolean",
"customer_id": "string",
"available_methods": "array",
"customer_info": "object"
}
},
"POST /razorpay/subscriptions/create": {
"description": "Create a Razorpay subscription",
"request": "SubscriptionRequest",
"response": "SubscriptionResponse"
},
"POST /razorpay/subscriptions/{subscription_id}/cancel": {
"description": "Cancel a Razorpay subscription",
"request": {
"cancel_at_cycle_end": "boolean"
},
"response": {
"success": "boolean",
"subscription_id": "string",
"status": "string",
"ended_at": "datetime",
"cancelled_at": "datetime"
}
},
"GET /razorpay/payments/{payment_id}": {
"description": "Get payment details",
"request": {},
"response": {
"success": "boolean",
"payment": "object"
}
},
"GET /razorpay/subscriptions/{subscription_id}": {
"description": "Get subscription details",
"request": {},
"response": {
"success": "boolean",
"subscription": "object"
}
},
"POST /razorpay/webhooks/razorpay": {
"description": "Handle Razorpay webhooks",
"request": "WebhookEvent",
"response": {
"success": "boolean",
"message": "string"
}
},
"GET /razorpay/health": {
"description": "Health check endpoint",
"request": {},
"response": {
"status": "string",
"service": "string",
"timestamp": "datetime"
}
},
"GET /razorpay/config": {
"description": "Get Razorpay configuration",
"request": {},
"response": {
"key_id": "string",
"default_currency": "string",
"supported_currencies": "array",
"webhook_url": "string"
}
}
},
"reports": {
"POST /reports/generate": {
"description": "Generate a report for a specific run",
"request": "ReportGenerationRequest",
"response": "ReportGenerationResult"
},
"GET /reports/{run_id}/json": {
"description": "Get or generate JSON report for a run",
"request": {
"report_type": "ReportType"
},
"response": "File"
},
"GET /reports/{run_id}/csv": {
"description": "Get or generate CSV report for a run",
"request": {
"detailed": "boolean"
},
"response": "File"
},
"POST /reports/verify": {
"description": "Verify report integrity and authenticity",
"request": "ReportValidationRequest",
"response": "ReportValidationResult"
},
"GET /reports/list": {
"description": "List available reports",
"request": {
"run_id": "string",
"report_type": "ReportType",
"format": "ReportFormat",
"status": "ReportStatus",
"page": "number",
"page_size": "number",
"sort_by": "string",
"sort_order": "string"
},
"response": {
"reports": "array",
"total_count": "number",
"page": "number",
"page_size": "number",
"total_pages": "number"
}
},
"GET /reports/{run_id}/info": {
"description": "Get information about available reports for a run",
"request": {},
"response": {
"run_id": "string",
"total_reports": "number",
"json_reports": "number",
"csv_reports": "number",
"latest_report": "object",
"available_formats": "array",
"report_types": "array"
}
},
"DELETE /reports/{run_id}/format/{format}": {
"description": "Delete all reports for a run in specific format",
"request": {},
"response": {
"run_id": "string",
"format": "string",
"deleted_count": "number",
"failed_count": "number",
"total_attempted": "number"
}
},
"POST /reports/batch/generate": {
"description": "Generate reports for multiple runs in batch",
"request": {
"run_ids": "array",
"report_type": "ReportType",
"format": "ReportFormat"
},
"response": {
"run_ids": "array",
"report_type": "string",
"format": "string",
"results": "array",
"total_count": "number",
"successful_count": "number",
"failed_count": "number"
}
},
"POST /reports/batch/verify": {
"description": "Verify multiple reports in batch",
"request": {
"file_paths": "array"
},
"response": {
"file_paths": "array",
"results": "array",
"summary": "object"
}
},
"GET /reports/download/{file_name}": {
"description": "Download a report file by name",
"request": {},
"response": "File"
},
"GET /reports/stats": {
"description": "Get reporting system statistics",
"request": {},
"response": {
"total_reports": "number",
"format_distribution": "object",
"total_storage_mb": "number",
"average_file_size_kb": "number",
"reports_directory": "string",
"stats_timestamp": "datetime"
}
},
"GET /reports/health": {
"description": "Health check for reporting system",
"request": {},
"response": {
"status": "string",
"reports_directory_exists": "boolean",
"reports_directory_writable": "boolean",
"components": "object",
"timestamp": "datetime"
}
}
},
"experiments": {
"POST /experiments/": {
"description": "Create a new experiment",
"request": "ExperimentCreate",
"response": "Experiment"
},
"GET /experiments/{run_id}": {
"description": "Get experiment by run_id",
"request": {},
"response": "Experiment"
},
"GET /experiments/": {
"description": "List experiments with filtering and pagination",
"request": {
"model_name": "string",
"dataset_name": "string",
"dataset_version": "string",
"status": "ExperimentStatus",
"priority": "ExperimentPriority",
"attack_types": "array",
"created_by": "string",
"tags": "array",
"created_after": "datetime",
"created_before": "datetime",
"page": "number",
"page_size": "number",
"sort_by": "string",
"sort_order": "string"
},
"response": "ExperimentList"
},
"PUT /experiments/{run_id}": {
"description": "Update experiment",
"request": "ExperimentUpdate",
"response": "Experiment"
},
"DELETE /experiments/{run_id}": {
"description": "Delete experiment",
"request": {},
"response": 204
},
"POST /experiments/{run_id}/clone": {
"description": "Clone experiment with new run_id",
"request": {
"new_name": "string"
},
"response": "Experiment"
},
"POST /experiments/{run_id_1}/compare/{run_id_2}": {
"description": "Compare two experiments",
"request": {},
"response": "ExperimentComparison"
},
"GET /experiments/stats/overview": {
"description": "Get experiment statistics",
"request": {},
"response": "ExperimentStats"
},
"GET /experiments/analyze/performance-trends/{model_name}": {
"description": "Analyze performance trends for a specific model",
"request": {
"days": "number"
},
"response": "object"
},
"GET /experiments/analyze/model-comparison": {
"description": "Compare performance across multiple models",
"request": {
"model_names": "array"
},
"response": "object"
},
"GET /experiments/analyze/attack-effectiveness": {
"description": "Analyze effectiveness of different attack types",
"request": {
"attack_types": "array"
},
"response": "object"
},
"GET /experiments/{run_id}/export": {
"description": "Export experiment data",
"request": {
"format": "string"
},
"response": "object"
},
"POST /experiments/{run_id}/status/{status}": {
"description": "Update experiment status",
"request": {},
"response": "Experiment"
}
},
"monitoring": {
"GET /monitoring/health": {
"description": "Simple health check endpoint for load balancers",
"request": {},
"response": "object"
},
"GET /monitoring/health/detailed": {
"description": "Detailed health check with all service statuses",
"request": {},
"response": {
"status": "string",
"timestamp": "datetime",
"services": "object",
"overall_status": "string",
"uptime_seconds": "number"
}
},
"GET /monitoring/metrics": {
"description": "Get current system performance metrics",
"request": {},
"response": {
"status": "string",
"data": "object",
"timestamp": "datetime"
}
},
"GET /monitoring/metrics/history": {
"description": "Get historical system metrics",
"request": {
"hours": "number"
},
"response": {
"status": "string",
"data": {
"history": "array",
"period_hours": "number",
"total_entries": "number"
},
"timestamp": "datetime"
}
},
"GET /monitoring/alerts": {
"description": "Get currently active alerts",
"request": {},
"response": {
"status": "string",
"data": {
"alerts": "array",
"alert_count": "number",
"critical_alerts": "number"
},
"timestamp": "datetime"
}
},
"GET /monitoring/dashboard": {
"description": "Get comprehensive monitoring dashboard data",
"request": {},
"response": {
"status": "string",
"data": "object",
"timestamp": "datetime"
}
},
"POST /monitoring/health/check": {
"description": "Trigger immediate health check of all services",
"request": {},
"response": {
"status": "string",
"message": "string",
"results": "object",
"timestamp": "datetime"
}
},
"GET /monitoring/status": {
"description": "Get monitoring system status",
"request": {},
"response": {
"status": "string",
"data": {
"monitoring_active": "boolean",
"start_time": "datetime",
"alert_config": "object",
"last_check": "datetime"
},
"timestamp": "datetime"
}
}
},
"system": {
"GET /": {
"description": "Root endpoint",
"request": {},
"response": {
"name": "string",
"version": "string",
"status": "string",
"docs_url": "string",
"api_v1": "string"
}
},
"GET /health": {
"description": "Comprehensive health check endpoint",
"request": {},
"response": "HealthCheckResponse"
},
"GET /metrics": {
"description": "Basic metrics endpoint",
"request": {},
"response": {
"status": "string",
"timestamp": "datetime",
"uptime_seconds": "number",
"version": "string",
"debug": "boolean"
}
},
"GET /api/v1/info": {
"description": "Get API information",
"request": {},
"response": {
"name": "string",
"version": "string",
"api_version": "string",
"description": "string",
"endpoints": "object",
"documentation": "string"
}
},
"GET /api/v1/status": {
"description": "Get API status",
"request": {},
"response": {
"status": "string",
"services": "object",
"uptime_seconds": "number",
"version": "string"
}
}
}
},
"validation": {
"total_endpoints_found": 185,
"duplicate_endpoints": 0,
"inconsistent_routes": [],
"missing_implementations": [],
"version_conflicts": [],
"response_schema_inconsistencies": [
"Mixed use of SuccessResponse vs UnifiedSuccessResponse",
"Inconsistent error response formats",
"Varying data wrapper patterns"
],
"recommendations": [
"Standardize all response schemas to use UnifiedSuccessResponse",
"Implement consistent error handling across all endpoints",
"Create base response wrapper classes",
"Add request/response validation schemas",
"Document all endpoint parameters and examples"
]
}
}