E2E Testing
API Reference

E2E Testing API Reference

Base URL: https://e2e.shellapps.com/api/v1/

All endpoints require authentication via ShellApps ID.

Test Runs

POST /runs

Trigger a new test run.

// Request
{
  "suite": "smoke",
  "target": "https://experience.shellapps.com",
  "browsers": ["chromium", "firefox"],
  "options": {
    "retries": 2,
    "timeout": 30000,
    "workers": 4
  }
}
 
// Response 201
{
  "runId": "run_abc123",
  "status": "queued",
  "suite": "smoke",
  "createdAt": "2025-03-01T10:00:00Z"
}

GET /runs/:runId

Get run status and results.

// Response 200
{
  "runId": "run_abc123",
  "status": "completed",
  "suite": "smoke",
  "results": {
    "total": 24,
    "passed": 23,
    "failed": 1,
    "skipped": 0,
    "duration": 124500
  },
  "failures": [
    {
      "test": "dashboard › should load widgets",
      "error": "Timeout waiting for selector .widget-grid",
      "screenshot": "https://e2e.shellapps.com/screenshots/run_abc123/failure-1.png"
    }
  ],
  "completedAt": "2025-03-01T10:02:04Z"
}

GET /runs

List recent test runs.

GET /runs?suite=smoke&status=failed&limit=10

DELETE /runs/:runId

Cancel a running test.

Screenshots

GET /runs/:runId/screenshots

List all screenshots from a run.

// Response 200
{
  "screenshots": [
    {
      "name": "dashboard.png",
      "url": "https://e2e.shellapps.com/screenshots/run_abc123/dashboard.png",
      "status": "passed"
    },
    {
      "name": "login-form.png",
      "url": "https://e2e.shellapps.com/screenshots/run_abc123/login-form.png",
      "status": "failed",
      "diffUrl": "https://e2e.shellapps.com/screenshots/run_abc123/login-form-diff.png"
    }
  ]
}

PUT /runs/:runId/screenshots/:name/approve

Approve a visual diff and update the baseline.

Suites

GET /suites

List available test suites.

GET /suites/:name

Get suite details including test count and average duration.

Error Responses

{
  "error": {
    "code": "RUN_NOT_FOUND",
    "message": "Run 'run_abc123' not found",
    "status": 404
  }
}
CodeStatusDescription
RUN_NOT_FOUND404Test run does not exist
SUITE_NOT_FOUND404Test suite does not exist
RUN_IN_PROGRESS409Suite already has an active run
CONTAINER_ERROR500Docker container failed to start

© 2026 Shell Technology. All rights reserved.