Authentication
Every request must include an API key in theAuthorization header:
Typical Flow
Most integrations use the endpoints in this order:- Confirm the API key and project with
GET /me. - Trigger a run with an execution endpoint, or choose affected tests first with
POST /affected-tests. - Poll the returned run ID with
GET /execution/status/run/:runId. - Read the run details with the test result endpoints.
- Send failures into auto-healing, either by including
autoHealwhen you start the run or by callingPOST /auto-healafterward.
Project Info
Get project info
Test Selection
Get affected tests
POST /execution/tests when you want CI to run only the relevant tests for a change.
Request body
Response
Execution
Run all tests
failed. Same autoHeal block is supported on collection, tests, and grep execution endpoints. See Auto-heal when a run finishes.
Response
runId value to poll for status (see Get run status by run ID). For non-sharded runs, name is the underlying job name. For sharded runs, name is null.
curl example
Sharding options
Execution endpoints accept optional sharding fields to run larger suites in parallel and report one final Checksum result.
Use sharding when a suite is too slow as a single run and you want faster CI feedback.
API-triggered runs can’t currently be cancelled through the public API. Cancelling your CI job only stops your workflow from checking status — the Checksum run continues until it finishes. Plan concurrency settings accordingly: GitHub Actions’
cancel-in-progress, for example, cancels your workflow, not the run on Checksum.Sharding composes with
autoHeal. Once the shards are merged, a merged run that ends failed is healed exactly as a non-sharded run would be, and a lost shard does not stop the surviving shards’ failures from being healed. If the shards never merge (see the checksumai prerequisite above), the autoHeal request is never evaluated.Run a collection
Run specific tests
autoHeal block — same shape as Run all tests.
Run tests by grep pattern
A legacy
POST /public-api/v1/execution/grep endpoint exists with a smaller body (grep only). New integrations should use v2.envOverrides is for your own application variables only (for example BASE_URL). Names reserved by Checksum — including CI and any key starting with CHECKSUM_ — are rejected with 400.POST /public-api/v2/execution/grep with branch, envOverrides, and sharding fields:
runId with Get run status by run ID, then pass the CI check only when verdict is "pass".
Get run status by run ID
runId returned from an execution endpoint. This status endpoint works for both non-sharded and sharded runs.
For CI checks, poll until
isTerminal is true, then pass the check only when verdict is "pass". Gate on verdict rather than the passed/failed counts: Checksum computes verdict only after a sharded run has fully combined its results, and treats an empty test selection as a failure.
Response — while running
curl example
Get test run status by job name
For runs started via v2 grep, prefer:
testRunId (UUID) when the run has reached a terminal state — use that value for POST /auto-heal, not jobName.
Response — while running
curl example
Test Results
Get latest test run
id with the result, report, attachment, and auto-heal endpoints.
Response
Get detailed results
Response
Get HTML report
Get test attachments
Submit report verdicts
Request body
Response
Health Dashboard
The public REST API exposes read access to bug entities (GET /health-dashboard/bugs). Most manual bug-state changes happen in the Feature Health Dashboard in the web app. To submit verdicts directly against a run report, use POST /test-runs/:testRunId/report/verdicts.
List bugs
Test Generation (pull request)
Trigger generation for a PR
Response —
202 Accepted
Poll generation batch progress
/checksum generate on GitHub.
Auto-Healing
Trigger auto-healing
Response
Poll healing progress
Response
Poll this endpoint until
allTerminal is true to know that every session has finished.
Quick-Start Example
The following script triggers a full suite run with auto-heal on failure, then polls until it finishes. When the run fails, Checksum starts healing automatically — no separate heal call is required.autoHeal, call POST /auto-heal with testRunId set to the run’s UUID (the runId returned by the execution endpoint, or the id from GET /public-api/v1/test-runs/latest), not the dispatch name.