List run history for a check (CI/CD runs and agent/heartbeat runs)
Returns the last N runs for the check, newest first — both CI/CD runs (pings that carry structured ci_meta, received from a CI/CD provider webhook) and agent/heartbeat runs (pings that carry only a rid set at /start, with no ci_meta). A ping with neither ci_meta nor a rid is not a run and is excluded.
CI runs include the full failure context decoded from ci_meta: run_url, commit_sha, branch, actor, failing_stage, duration_s, and outcome. These fields are CI-only — they are simply absent (omitted, not null or empty string) on an agent/heartbeat run. When a matching incident (opened within ±10 minutes of the ping) exists, incident_cause, incident_detail, and incident_resolved are populated on either kind — enabling unattended failure triage without following links to the CI provider.
duration_ms is separate from duration_s and is NOT CI-only: it is the wall-clock duration LastPing itself measured from the run's /start -> success timing, present on any run (CI or agent/heartbeat) whose success ping paired with its start. Use it to answer "how long does this job normally take?" for a non-CI monitor, where duration_s is never populated.
Every entry also carries the run id (rid) and, when the run reported progress markers to /<uuid>/step?rid=…, the steps it reached. A run that stalled therefore names the step it wedged on without a second call. Steps are matched on rid, so they appear only when the job or agent posts /step with the same run id it started with.
Always returns a JSON array (never null).
Request
- Base URL: https://app.lastping.dev
- URL: https://app.lastping.dev/api/v1/checks/{id}/runs
- Auth: API key in header X-Api-Key
Query parameters
Maximum number of runs to return (default 20, max 100).
Response
Array of runs — CI runs and agent/heartbeat runs (may be empty).
Example response
[
{
"id": "a0b1c2d3-0000-0000-0000-000000000001",
"kind": "fail",
"received_at": "2026-07-20T10:00:00Z",
"rid": "9876543210",
"title": "nightly backup",
"steps": [
{
"seq": 2,
"name": "db migrate",
"at": "2026-07-20T10:04:00Z"
}
],
"run_url": "https://github.com/acme/repo/actions/runs/9876543210",
"commit_sha": "deadbeefcafe0000",
"branch": "main",
"actor": "octocat",
"failing_stage": "go test ./...",
"duration_s": 120,
"duration_ms": 128734,
"outcome": "failure",
"incident_cause": "fail",
"incident_detail": "STEP failed: go test ./... exited with code 1",
"span_count": 14,
"tokens_in": 1820,
"tokens_out": 340,
"cost_usd": "0.021400",
"cost_source": "estimated"
}
]Changes
No recorded changes to this operation across all 2 revisions of this API.