List sites
const url = 'https://api.overwatch.weareheavy.dev/v1/sites';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 \ --header 'x-api-key: <x-api-key>'List every site the caller can see, oldest first, together with the organization’s site quota. Members with a per-site allowlist (and site-scoped API keys) only see their granted sites.
Authorizations
Section titled “ Authorizations ”Responses
Section titled “ Responses ”The organization’s sites and site quota.
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.
The organization’s site allowance (BILLING.md model).
object
Sites currently registered.
Sites included in the base subscription.
Whether the account has opted in to overage billing. With it off, registration past the included count is refused.
Example
{ "sites": [ { "enabled": 0, "scanner_enabled": 0, "a11y_enabled": 0, "performance_enabled": 0, "uptime_enabled": 0, "seo_enabled": 0, "exclude_paths": "[\"/drafts/*\"]", "strip_params": "[\"utm_source\"]" } ]}Missing or invalid credentials.
object
A human-readable error message.
Example
{ "error": "invalid api key"}