Docs · API
API reference
Direct REST API access for custom integrations. All endpoints require authentication via API key or session token.
Authentication
Include your API key in the Authorization header:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://your-dashboard.com/api/executionsGet your API key from Settings → API Keys in the dashboard.
Base URL
https://your-dashboard.vercel.app/apiReplace with your actual dashboard URL.
Endpoints
/api/executionsList test executions with optional filters
/api/executions/:idGet detailed execution including all test results and artifacts
/api/metricsDashboard metrics: pass rate, failure counts, duration averages
/api/trendsTime-series pass/fail data with flexible granularity (hourly, daily, weekly, monthly)
/api/flaky-testsList flaky tests sorted by flakiness rate
/api/compareCompare two executions to identify regressions, improvements, and performance changes
/api/ingestUpload test results (used by Playwright Reporter and GitHub Action)
/api/ci/analyzeTrigger CI failure analysis. Returns a classification (HEALABLE, REAL_BUG, KNOWN_FLAKE, INFRA) with an action plan.
/api/ci/webhooksList all configured webhooks for the authenticated organization
/api/ci/webhooksCreate a new webhook endpoint with event subscriptions and optional HMAC secret
/api/ci/webhooks/[id]Update an existing webhook (URL, events, secret, active status)
/api/ci/webhooks/[id]Delete a webhook permanently
Rate Limits
API requests are rate limited to ensure fair usage:
- • 100 requests/minute for read endpoints
- • 10 requests/minute for write endpoints
- • Rate limit headers are included in responses
Error Handling
Errors return appropriate HTTP status codes with JSON error details:
{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid or expired API key"
}
}Common Status Codes
200- Success400- Bad request (invalid parameters)401- Unauthorized (invalid API key)404- Resource not found429- Rate limit exceeded500- Internal server error