Web tamper protection page overview
All protected pages across sites (site, path, scope, baseline time, state, last change) without picking a site first; tenants see their own sites only and may filter by site.
tamper-guardProtectionAuthentication: User (some parameters admin only)1 endpointsList protected pages of all sites
GET
/api/v2/tamper-guard/pagesAuthentication: User (some parameters admin only)
Query parameters
| Field | Type | Required | Description |
|---|---|---|---|
| page | integer | — | Page number, starting from 1 |
| page_size | integer | — | Items per page |
| tenant_id | integer | — | Admin only: filter by tenant. Ignored for tenant credentials, which only see their own tenant's data |
| site_id | integer | — | Only this site; an empty list when the site is not the caller's. |
| q | string | — | Fuzzy search by site domain or page path (case-insensitive). |
| changed | boolean | — | When true, only pages with a detected tampering (a non-empty last change). |
Web tamper protection page overview object
| Field | Type | Required | Description |
|---|---|---|---|
| base_at | string | — | When the site's baseline was last updated (whole site); null if never. |
| domain | string | — | Primary domain of the site (first in its domain list; the site name when it has none). |
| enabled | boolean | — | Whether tamper protection is switched on for the site; when off the pages are only a kept baseline and nothing is checked. |
| gate | string | — | WAF Enhanced status of the site's tenant: full = baseline can be updated; readonly and basic = cannot. |
| gate_expired_at | string | — | Administrator responses with gate_reason=expired only - when the platform WAF Enhanced license expired; not present in tenant responses. |
| gate_owner | WafGateOwner | — | The owner of the site, in administrator responses only; tenant responses carry no one else's information. |
| gate_packages | string[] | — | Administrator responses only - names of the owner's unexpired packages (at most 20); not present in tenant responses. |
| gate_reason | WafGateReason | — | Why WAF Enhanced (waf_enhanced) is not in effect; absent when gate is full or readonly. package = the platform is licensed but the owner has no unexpired package that includes WAF Enhanced; license = the platform has not enabled it (never licensed, revoked by the provider, or the license was disabled); expired = the platform license has expired and its read-only buffer period (License.readonly_days, default 7 days) has passed, so it fell back to basic. |
| kind | string | — | Which kind of scope the page comes from. |
| last_change_action | string | — | What the node did the last time: replace = served the baseline page; log = recorded only (including the observation period). |
| last_change_at | string | — | When tampering was last detected; null = none since the baseline. |
| last_change_summary | string | — | Summary of the last change, e.g. link=bad.example.net, title. |
| note | string | — | Why the page is not in the baseline, same values as SiteTamperPage.note; absent for included pages. |
| observe_until | string | — | End of the site's tamper-protection observation period; set only while protection is on and observing (same as SiteTamperGuard.observe_until), null when off or never observing; an already-passed deadline is returned as is, the caller compares it with the current time. |
| path | string | — | Page path. |
| site_id | integer | — | Site id. |
| size | integer | — | Size of the baseline page in bytes. |
| state | string | — | Page state: normal; tampered = tampering detected since the baseline; excluded = not in the baseline (see note). |