Skip to main content
Base URL

Authentication

Every request must include an API key in the Authorization header:
You can create and manage API keys from Settings > Project Settings in the Checksum dashboard.

Typical Flow

Most integrations use the endpoints in this order:
  1. Confirm the API key and project with GET /me.
  2. Trigger a run with an execution endpoint, or choose affected tests first with POST /affected-tests.
  3. Poll the returned run ID with GET /execution/status/run/:runId.
  4. Read the run details with the test result endpoints.
  5. Send failures into auto-healing, either by including autoHeal when you start the run or by calling POST /auto-heal afterward.

Project Info

Get project info

Returns basic information about the project associated with the API key. This is useful as a lightweight auth check before triggering runs. Response

Test Selection

Get affected tests

Returns the Checksum test IDs most likely affected by a set of changed source files. Use those IDs with POST /execution/tests when you want CI to run only the relevant tests for a change. Request body
Response

Execution

Run all tests

Triggers a full test-suite run. Optional body — auto-heal on failure
When present, Checksum automatically starts healing if the run ends failed. Same autoHeal block is supported on collection, tests, and grep execution endpoints. See Auto-heal when a run finishes. Response
Use the returned 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.
Prerequisite — update checksumai first. After all shards finish, Checksum combines their results using the checksumai version installed on the branch you run against. If that version is too old to support sharded report merging, the shards still run but their results are never combined, and the run never returns a final verdict. Before enabling sharding, update checksumai on your tests branch to a recent release (for example npm install checksumai@latest), commit it, and re-run. If you’re unsure which version you need, use the latest stable release or contact Checksum support.
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

Runs every test that belongs to the specified collection.

Run specific tests

Runs a hand-picked set of tests. Request body
Optional autoHeal block — same shape as Run all tests.

Run tests by grep pattern

Runs all tests whose name matches a grep pattern. Use the v2 base URL for this endpoint:
Request body
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.
For pull-request checks, use POST /public-api/v2/execution/grep with branch, envOverrides, and sharding fields:
Poll the returned runId with Get run status by run ID, then pass the CI check only when verdict is "pass".

Get run status by run ID

Returns the server-computed status of a run by the 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
Response — when complete
curl example

Get test run status by job name

Returns the current status of a non-sharded test run by job name. Prefer Get run status by run ID for new integrations and for all sharded runs. For runs started via v2 grep, prefer:
The v2 response includes testRunId (UUID) when the run has reached a terminal state — use that value for POST /auto-heal, not jobName. Response — while running
Response — when complete (v1)
Response — when complete (v2)
Possible status values curl example

Test Results

Get latest test run

Returns the latest completed non-manual run for the project. Use the returned id with the result, report, attachment, and auto-heal endpoints. Response

Get detailed results

Returns detailed, per-test results for a completed run. Response

Get HTML report

Returns a URL to the full HTML report for the run.

Get test attachments

Returns attachments for a specific test within a run, including traces, screenshots, and videos.

Submit report verdicts

Submits human or automation verdicts for tests in a run report, then updates the run counts. 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

Starts a generation agent session that reads a pull request diff and opens a tests-repo PR when complete. Progress is posted as a sticky comment on the source PR. Request body
Response — 202 Accepted

Poll generation batch progress

Same response shape as Poll healing progress. See also Generate Tests and Git integration for /checksum generate on GitHub.

Auto-Healing

Trigger auto-healing

Starts an auto-healing session for failing tests in a run. Checksum will analyze the failures, attempt to fix the tests, and optionally open a pull request with the changes. Request body
Response
curl example

Poll healing progress

Returns the current progress of a healing batch. Response
Batch status values 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.
To heal a run that already finished without 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.