Get crawl status
const url = 'https://api.overwatch.weareheavy.dev/v1/sites/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/status';const options = {method: 'GET', headers: {'x-api-key': '<x-api-key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.overwatch.weareheavy.dev/v1/sites/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/status \ --header 'x-api-key: <x-api-key>'Return the live crawl state (from the crawler, reflecting any in-progress crawl) together with the most recently persisted runs. The broken-link crawl and the accessibility scan finish on independent clocks, so each comes from its own latest run.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”The site’s UUID.
Responses
Section titled “ Responses ”Live status plus the latest persisted runs.
object
A monitored site, including its per-app toggles.
object
The owning organization (tenant) id.
The hostname derived from root_url; the crawl whitelist.
1 if the site is actively scheduled, 0 if disabled.
Epoch ms of the last run, or null.
Epoch ms of the next scheduled run, or null.
Epoch ms the site was registered.
1 when the Broken Links app is installed. The shared crawl runs when any of it, the Accessibility app, or the SEO app is on.
1 when the Accessibility app is installed.
The accessibility scan’s own cadence; null falls back to cadence_minutes.
Epoch ms the next standalone accessibility scan is due, or null.
1 when the Performance app (CrUX sync + regression alerts) is installed.
1 when the Uptime app is installed; 0 stops probing but keeps monitors.
1 when the SEO app is installed (on-page checks extracted during the crawl).
CrUX sync state: null = never checked, ok = data, no-data = not in the dataset.
Epoch ms the CrUX sync last ran for this site.
JSON-encoded array of glob patterns for internal paths never crawled.
JSON-encoded array of query-parameter names dropped before crawling.
Live crawl state from the crawler. Unlike persisted records, these are camelCase counters describing the in-progress run.
object
URLs currently leased and being checked.
URLs waiting in the frontier to be leased.
The adaptive in-flight window size.
A single crawl run and its summary metrics.
object
Epoch ms the run started.
Epoch ms the run finished, or null while running.
Distinct broken link targets found in the run.
Distinct source pages that had at least one broken link.
Synthesized 0–100 accessibility score, or null when the run didn’t scan.
Confirmed violations with critical impact.
Internal pages the accessibility scan covered in this run.
Distinct confirmed (page, rule) accessibility violations this run (0 for crawl runs).
Violations present in the previous accessibility run but gone in this one (the “fixed” trend).
Synthesized 0-100 SEO score, or null when the run didn’t extract SEO data.
Pages an SEO snapshot was captured for (at most pages_crawled).
Derived SEO issues at the time the run finalized.
Failure reason if state is failed, otherwise null.
crawl for a broken-link crawl, a11y for a standalone accessibility scan.
A single crawl run and its summary metrics.
object
Epoch ms the run started.
Epoch ms the run finished, or null while running.
Distinct broken link targets found in the run.
Distinct source pages that had at least one broken link.
Synthesized 0–100 accessibility score, or null when the run didn’t scan.
Confirmed violations with critical impact.
Internal pages the accessibility scan covered in this run.
Distinct confirmed (page, rule) accessibility violations this run (0 for crawl runs).
Violations present in the previous accessibility run but gone in this one (the “fixed” trend).
Synthesized 0-100 SEO score, or null when the run didn’t extract SEO data.
Pages an SEO snapshot was captured for (at most pages_crawled).
Derived SEO issues at the time the run finalized.
Failure reason if state is failed, otherwise null.
crawl for a broken-link crawl, a11y for a standalone accessibility scan.
Example
{ "site": { "enabled": 0, "scanner_enabled": 0, "a11y_enabled": 0, "performance_enabled": 0, "uptime_enabled": 0, "seo_enabled": 0, "exclude_paths": "[\"/drafts/*\"]", "strip_params": "[\"utm_source\"]" }, "live": { "state": "seeding" }, "latestRun": { "state": "running", "kind": "crawl" }, "latestA11yRun": { "state": "running", "kind": "crawl" }}Missing or invalid credentials.
object
A human-readable error message.
Example
{ "error": "invalid api key"}No site with that id is visible to the caller.
object
A human-readable error message.
Example
{ "error": "site not found"}