SDLC_API_URL in CI workflows accordingly.
Authentication
Session-protected routes
Require authenticated GitHub OAuth session:/api/dashboard/api/repos/api/milestones(most routes)/api/sync/api/quality/api/reviews/api/history/api/projects/api/team/api/settings/api-keys/api/settings/mcp-keys/api/config/repo-warnings/api/events/api/debug
CI-authenticated routes
RequireAuthorization: Bearer with GitHub OIDC JWT or LaneSync API key:
POST /api/evidence/uploadPOST /api/evidence/upload-reportGET /api/milestones/check
repository_owner for OIDC) or API key scope — not from an unauthenticated body field.
Public routes (no auth)
GET /api/healthGET /api/auth/*GET /api/config/statusand GitHub App installation callbacks. Legacy/manifest-start,/manifest-callback, and/setupcredential writes return HTTP 410.POST /api/webhook(HMAC verified)POST /api/config/setup(first-run only)
Content type
JSON endpoints returnContent-Type: application/json unless noted. Multipart used for /api/evidence/upload-report.
Error format
Errors return a JSON body with anerror field:
HTTP status codes
Key endpoints by area
Collection pagination
Supplypage or pageSize to request a paginated collection. Pages start at 1; page defaults to 1 and accepts integers through 100000. pageSize defaults to 25 and accepts 10, 25 or 50. Invalid pagination values return 400.
These session-protected GET endpoints support pagination:
/api/dashboard:searchmatches repository or release;outcomeacceptsall,blocked,needs_approval,ready_to_deployorin_progress./api/repos:searchmatches organization or repository; results are returned ingroups./api/projects:orgselects an organization;searchmatches project details or linked repository/release names./api/reviews/pending:scope=mine(default) selects verified eligible reviews;scope=workspaceincludes other workspace reviews./api/history:repository=owner/repo,from=YYYY-MM-DDandto=YYYY-MM-DDfilter recorded releases. UTC date boundaries are inclusive./api/quality:owner,repo,milestone,typeandenvironmentfilter complete release groups inresults./api/milestones/{owner}/{repo}:searchmatches release versions in that repository.
total counts all matching records or release groups, rather than the rows on the current page. pages is at least 1, including an empty collection. An out-of-range page can return an empty collection; use the returned metadata to select a valid page.
Dashboard counts cover all active releases matching search, independently of the selected outcome and page. History also returns repository choices across its full collection. Quality exports include all matching release groups rather than the current page.
Paginated setup, readiness and review lists return stored observations while verification refreshes in the background. Pending or expired observations do not establish readiness or approval eligibility. Use the stage-details and release-review endpoints for current checks. If you omit both pagination parameters, the existing unpaginated response shape is retained;
/api/repos returns an array rather than a groups envelope.Deploy gate (CI)
CI pipelines check production readiness with CI auth:Evidence upload (CI)
OpenAPI specification
The API Reference tab auto-generates interactive endpoint documentation fromopenapi.json. Use it for request/response schemas and try requests against your instance.