CI ingest API

POST your test-run summaries from CI. QualityPilot aggregates across runs, tracks grade + flakiness trends, and notifies on regressions.

Quick start

Use a published reporter — pick your framework on /docs/install. The page below documents the underlying API for anyone writing a custom reporter.

npm install --save-dev @qlens/jest-reporter
npm install --save-dev @qlens/playwright-reporter
pip install qlens-pytest-reporter

Endpoint

POST https://www.qlens.dev/api/v1/test-runs
Content-Type: application/json
X-API-Key: qlens_<your-key>

Payload

{
  "repo": "owner/name",              // required
  "commit": "abc1234",               // optional
  "branch": "feature/x",             // optional
  "framework": "jest",               // jest | vitest | playwright | pytest | ...
  "ciProvider": "github_actions",    // github_actions | gitlab_ci | circleci | ...
  "summary": {
    "total": 142,                    // required
    "passed": 140,                   // required
    "failed": 2,                     // required
    "skipped": 0,
    "flaky": 1,
    "durationMs": 38241
  },
  "cases": [                         // optional, max 10,000 per run
    {
      "suite": "auth/login",
      "name": "rejects invalid password",
      "status": "failed",            // passed | failed | skipped | flaky
      "durationMs": 421,
      "errorMessage": "expected 401, got 500",
      "attempts": 1
    }
  ]
}

Response

202 Accepted
{ "id": "uuid", "accepted": true, "casesStored": 142 }

400  Invalid JSON / missing required field
401  Invalid or missing API key
429  Rate limit exceeded. Retry-After header in seconds.
     X-RateLimit-Limit: 60
     X-RateLimit-Window: 60s
500  Storage failure

Rate limits

Each API key can post up to 60 requests per 60 seconds (sliding window). On 429, respect the Retry-After header — reporters retry automatically.

OpenAPI spec

Machine-readable schema at /api/v1/openapi.json (OpenAPI 3.1, CORS-allowed).

Use cases

Notes

Need something else?

Missing a reporter for your framework? Want a batch endpoint or Parquet export? Email support@qlens.dev.