Home / Documentation / API Reference

REST API Reference

Complete API documentation for Qulaxy integration

🔐 Authentication

All API requests require authentication using JWT tokens. Include the token in the Authorization header:

Authorization: Bearer YOUR_JWT_TOKEN

Get Access Token

POST/api/v1/auth/login

Request Body:

{
  "email": "user@example.com",
  "password": "your_password"
}

Response:

{
  "token": "eyJhbGciOiJIUzI1NiIs...",
  "user": {
    "id": "123",
    "email": "user@example.com",
    "name": "John Doe"
  }
}

📁 Projects API

List All Projects

GET/api/v1/projects

Query Parameters:

  • page - Page number (default: 1)
  • limit - Items per page (default: 20)
  • search - Search term

Response:

{
  "data": [
    {
      "id": "proj_123",
      "name": "E-Commerce Platform",
      "description": "Main e-commerce testing",
      "created_at": "2026-01-15T10:30:00Z"
    }
  ],
  "meta": {
    "total": 42,
    "page": 1,
    "limit": 20
  }
}

Create Project

POST/api/v1/projects

Request Body:

{
  "name": "Mobile App Testing",
  "description": "iOS and Android app QA",
  "status": "active"
}

Get Project Details

GET/api/v1/projects/:id

Update Project

PUT/api/v1/projects/:id

Delete Project

DELETE/api/v1/projects/:id

✅ Test Cases API

List Test Cases

GET/api/v1/projects/:projectId/test-cases

Query Parameters:

  • status - Filter by status (draft, approved, deprecated)
  • priority - Filter by priority (low, medium, high, critical)
  • tags - Comma-separated tags

Create Test Case

POST/api/v1/projects/:projectId/test-cases

Request Body:

{
  "title": "User Login Flow",
  "description": "Verify user can login successfully",
  "priority": "high",
  "steps": [
    {
      "step": "Navigate to login page",
      "expected": "Login form is displayed"
    },
    {
      "step": "Enter valid credentials",
      "expected": "Credentials are accepted"
    }
  ],
  "tags": ["authentication", "critical-path"]
}

🚀 Test Runs API

Create Test Run

POST/api/v1/projects/:projectId/test-runs

Request Body:

{
  "name": "Sprint 42 Regression",
  "description": "Full regression for Q1 release",
  "test_case_ids": ["tc_123", "tc_456", "tc_789"],
  "assigned_to": "user_123"
}

Update Test Result

PUT/api/v1/test-results/:id

Request Body:

{
  "status": "passed",
  "notes": "All validations passed",
  "execution_time": 120,
  "attachments": ["screenshot1.png"]
}

📊 Reports API

Get Project Dashboard

GET/api/v1/projects/:projectId/dashboard

Response:

{
  "test_cases": {
    "total": 250,
    "by_status": {
      "approved": 220,
      "draft": 25,
      "deprecated": 5
    }
  },
  "test_runs": {
    "active": 3,
    "completed": 42
  },
  "execution_rate": {
    "passed": 85.5,
    "failed": 10.2,
    "blocked": 4.3
  }
}

🔗 Webhooks

Configure webhooks to receive real-time notifications:

Available Events

Webhook Payload Example

{
  "event": "test_run.completed",
  "timestamp": "2026-01-18T10:30:00Z",
  "data": {
    "test_run_id": "tr_123",
    "project_id": "proj_456",
    "results": {
      "passed": 42,
      "failed": 3,
      "blocked": 1
    }
  }
}

⚡ Rate Limiting

API requests are limited to:

🔗 Next Steps