Start here

Crawl History

Every crawl run in the cloud tier is recorded as a pass against a site. The history surfaces what changed between passes, rolls findings up across sites, and lets you publish a punch list to a shareable URL when a pass is ready for review.

Sites

A site is a tracked origin—the unit the history is organized around. The sites list shows summary figures drawn from the most recent completed pass, so a crawl that is still running does not blank the numbers already on screen.

Field Description
host Origin hostname, e.g. example.com.
startUrl The URL the crawl begins from.
owner Organization member who created the site entry.
pageCount Total pages crawled in the last completed pass.
findingsCount Total findings from the last completed pass.
criticalCount Findings at critical severity in the last completed pass.
lastPassDate Timestamp of the last completed pass.
running Whether a crawl is currently in progress for this site.

Passes

A pass is a single crawl run against a site. The pass list for a site is ordered newest first, limited to the 200 most recent entries.

Field Description
id Unique identifier for the pass.
site The site this pass belongs to.
state One of running, done, or failed.
urlsCrawled Number of URLs visited during the pass.
findingsCount Total findings. This field is null while the pass is running—not 0. See the distinction below.
startedAt Timestamp when the crawl began.
finishedAt Timestamp when the crawl completed or failed. null while running.
startedBy The organization member who initiated the crawl.
error Error message if the pass ended in a failed state. null otherwise.

Starting a crawl

POST /api/crawl returns immediately with a pass ID. The crawl runs in the background; poll the pass by ID for its state and progress. When the state reaches done, results are available in the organization's history.

Not measured vs. clean

A findingsCount of null means the pass has not finished measuring—findings are not yet available. A value of 0 means the pass completed and found nothing to report. These are different facts: the first is an incomplete inspection, the second is a clean bill. The UI renders them differently, and any integration that consumes the API should do the same.

Findings

The findings view groups results by rule across the most recent completed pass of each site. This gives a cross-site summary: one row per rule, showing how widely a problem appears.

Field Description
ruleKey Identifier for the audit rule, e.g. missing-title.
severity The rule's severity level: critical, warning, or info.
sitesCount Number of sites where this rule fired in the latest pass.
urlsCount Total URLs across all sites where this rule fired.

The list can be filtered by site and by severity, so you can narrow it to critical findings on a single origin or see every info-level note across the whole organization.

Published punch lists

A completed pass can be published to a shareable public URL at /p/:slug. The slug is a 128-bit random value that serves as the credential—anyone with the URL can view the punch list, and no authentication is required.

Because the URL is the access control, publishing requires an explicit acknowledgement: set acknowledgePublic: true in the publish request. Without it, the request is rejected.

Revoking a punch list

A published punch list can be revoked at any time. Once revoked, the slug is never reissued—visitors to the URL see the date the list was revoked rather than the findings. This makes revocation visible: a previously shared link does not 404 silently, it explains that access was withdrawn and when.