QA Studio API Documentation

Complete REST API reference for test management and reporting

Projects

Manage test projects - the top-level container for organizing your testing activities.

GET /api/projects

List all projects with test case, test run, and test suite counts.

Responses

POST /api/projects

Create a new project.

Request Body

application/json
{
  "name": "E-Commerce Platform",
  "description": "Main e-commerce application testing",
  "key": "ECOM"
}

Responses

GET /api/projects/:id

Get detailed information about a specific project.

Parameters

NameTypeRequiredDescription
idpathYesProject ID

Responses

PATCH /api/projects/:id

Update an existing project.

Parameters

NameTypeRequiredDescription
idpathYesProject ID

Request Body

application/json
{
  "name": "E-Commerce Platform v2",
  "description": "Updated description"
}

Responses

DELETE /api/projects/:id

Delete a project and all its associated data (cascading delete).

Parameters

NameTypeRequiredDescription
idpathYesProject ID

Responses

Milestones

Manage release milestones for tracking testing progress.

GET /api/projects/:projectId/milestones

List all milestones for a project.

Parameters

NameTypeRequiredDescription
projectIdpathYesProject ID

Responses

POST /api/projects/:projectId/milestones

Create a new milestone.

Parameters

NameTypeRequiredDescription
projectIdpathYesProject ID

Request Body

application/json
{
  "name": "Release 1.0",
  "description": "Initial release",
  "dueDate": "2024-03-01T00:00:00Z",
  "status": "ACTIVE"
}

Responses

Test Cases

Manage individual test cases with steps, priorities, and types.

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

List test cases with optional filtering.

Parameters

NameTypeRequiredDescription
projectIdpathYesProject ID
suiteIdqueryNoFilter by test suite
priorityqueryNoFilter by priority (CRITICAL, HIGH, MEDIUM, LOW)
typequeryNoFilter by type (FUNCTIONAL, REGRESSION, SMOKE, etc.)
automationStatusqueryNoFilter by automation status
tagsqueryNoFilter by tags (comma-separated)

Responses

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

Create a new test case.

Parameters

NameTypeRequiredDescription
projectIdpathYesProject ID

Request Body

application/json
{
  "title": "User can log in with valid credentials",
  "description": "Verify successful login flow",
  "preconditions": "User account exists",
  "steps": [
    {
      "action": "Navigate to login page",
      "expected": "Login form is displayed"
    },
    {
      "action": "Enter valid credentials",
      "expected": "Credentials are accepted"
    }
  ],
  "expectedResult": "User is logged in successfully",
  "priority": "CRITICAL",
  "type": "FUNCTIONAL",
  "automationStatus": "AUTOMATED",
  "tags": ["auth", "login"],
  "suiteId": "clx3c4d5e6f7g8h9i0j1k2l3"
}

Responses

Test Runs

Execute and track test runs across different environments.

GET /api/projects/:projectId/test-runs/:id

Get detailed test run with results and statistics.

Parameters

NameTypeRequiredDescription
projectIdpathYesProject ID
idpathYesTest Run ID

Responses

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

Create a new test run.

Parameters

NameTypeRequiredDescription
projectIdpathYesProject ID

Request Body

application/json
{
  "name": "Regression Test - Sprint 23",
  "description": "Full regression suite",
  "milestoneId": "clx2b3c4d5e6f7g8h9i0j1k2",
  "environmentId": "clx6f7g8h9i0j1k2l3m4n5o6",
  "status": "PLANNED"
}

Responses

Test Results

Record and manage test execution results with detailed step tracking.

POST /api/projects/:projectId/test-runs/:runId/results

Create a test result for a test run.

Parameters

NameTypeRequiredDescription
projectIdpathYesProject ID
runIdpathYesTest Run ID

Request Body

application/json
{
  "testCaseId": "clx4d5e6f7g8h9i0j1k2l3m4",
  "status": "FAILED",
  "comment": "Login button not responding",
  "duration": 15000,
  "errorMessage": "Element not found: #login-btn",
  "stackTrace": "at LoginPage.clickLogin()...",
  "steps": [
    {
      "description": "Navigate to login page",
      "status": "PASSED"
    },
    {
      "description": "Click login button",
      "status": "FAILED",
      "comment": "Button not clickable"
    }
  ]
}

Responses

Attachments

Upload and manage screenshots, logs, and other test artifacts.

POST /api/attachments

Upload an attachment (screenshot, log, video, etc.).

Request Body

multipart/form-data
FormData:
  - file: [File]
  - testCaseId: "clx4d5e6f7g8h9i0j1k2l3m4" (optional)
  - testResultId: "clx7g8h9i0j1k2l3m4n5o6p7" (optional)

Responses

DELETE /api/attachments/:id

Delete an attachment.

Parameters

NameTypeRequiredDescription
idpathYesAttachment ID

Responses

Getting Started

Making Your First Request

// Fetch all projects
fetch('https://your-domain.com/api/projects')
  .then(res => res.json())
  .then(data => console.log(data));

Creating a Test Result

// Submit test result
fetch('https://your-domain.com/api/projects/PROJECT_ID/test-runs/RUN_ID/results', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    testCaseId: 'TEST_CASE_ID',
    status: 'PASSED',
    duration: 5000
  })
}).then(res => res.json());