List who else may use a site
GET /api/sites/{name}/grants
Needs an Admin key.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
name |
path | string | Required. |
Replies
| Status | Meaning | Body |
|---|---|---|
| 200 | OK | list of UserSiteGrant |
Reply fields
| Field | Type | Description |
|---|---|---|
userId |
string | The panel user who has access. Always present. |
siteName |
string | The site the user has access to. Always present. |
role |
SiteRole |
What the user may do with the site: look only, or also change its settings within the tenant policy. Always present. One of Viewer, Manager. |
Let a panel user see or manage a site
PUT /api/sites/{name}/grants
Needs an Admin key.
role Viewer may only look; Manager may also change the site's settings within the tenant policy.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
name |
path | string | Required. |
Request body: GrantRequest
| Field | Type | Description |
|---|---|---|
userId |
string | The panel user who has access. Required. |
role |
SiteRole |
What the user may do with the site: look only, or also change its settings within the tenant policy. Required. One of Viewer, Manager. |
Replies
| Status | Meaning | Body |
|---|---|---|
| 204 | No Content | none |
| 400 | Bad Request | ApiError |
| 404 | Not Found | none |
Take away a panel user's access to a site
DELETE /api/sites/{name}/grants/{userId}
Needs an Admin key.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
name |
path | string | Required. |
userId |
path | string | Required. |
Replies
| Status | Meaning | Body |
|---|---|---|
| 204 | No Content | none |
| 404 | Not Found | none |
Give a site to a tenant
PUT /api/sites/{name}/owner
Needs an Admin key.
Sets which tenant owns the site, so that tenant's Tenant keys and panel users can see and manage it.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
name |
path | string | Required. |
Request body: AssignOwnerRequest
| Field | Type | Description |
|---|---|---|
tenantId |
string | The tenant that should own the site. Null or empty removes the site's owner. Optional. |
Replies
| Status | Meaning | Body |
|---|---|---|
| 204 | No Content | none |
| 404 | Not Found | none |
Get the tenant policy
GET /api/tenant-policy
Needs an Admin key.
What every tenant may change on its own sites, unless overridden for that tenant.
Replies
| Status | Meaning | Body |
|---|---|---|
| 200 | OK | TenantSelfServicePolicy |
Reply fields
| Field | Type | Description |
|---|---|---|
allowedModes |
list of EngineMode |
The WAF modes a tenant may switch its sites to. A tenant asking for a mode not listed is refused. Always present. |
defaultMode |
EngineMode |
The mode a new tenant site starts in. Default: On (blocking). Always present. One of Off, DetectionOnly, On. |
allowParanoiaEdit |
boolean | Whether tenants may change the paranoia level of their sites. If false, only the host can. Default: true. Always present. |
paranoiaMin |
integer | Lowest paranoia level a tenant may choose, from 1 to 4. Default: 1. Always present. |
paranoiaMax |
integer | Highest paranoia level a tenant may choose, from 1 to 4 and not below the lowest. Default: 2. Always present. |
allowThresholdEdit |
boolean | Whether tenants may change the blocking sensitivity (the anomaly threshold) of their sites. If false, only the host can. Default: true. Always present. |
thresholdMin |
integer | Lowest blocking threshold a tenant may set, at least 1. A lower value blocks sooner. Default: 3. Always present. |
thresholdMax |
integer | Highest blocking threshold a tenant may set, not below the lowest. A higher value blocks later. Default: 7. Always present. |
exclusionPolicy |
TenantExclusionPolicy |
Whether tenants may add rule exclusions (to stop a rule blocking legitimate traffic) themselves, must ask the host, or may not at all. Default: SelfApply. Always present. One of SelfApply, RequestApproval, Disabled. |
maxTenantExclusions |
integer | Most rule exclusions a tenant may have on one site when exclusions are self-applied. Default: 25. Always present. |
allowTenantScan |
boolean | Whether tenants may start a malware scan of their own sites. Default: true. Always present. |
tenantScanMinIntervalMinutes |
integer | Least time, in minutes, between two scans of the same site; a scan started sooner is refused. 0 means no wait. Default: 360 (6 hours). Always present. |
maxScanFileSizeBytes |
integer | Largest file, in bytes, that a tenant's scan will check; bigger files are skipped. Default: 33554432 (32 MiB). Always present. |
quarantineAction |
TenantQuarantineAction |
What a tenant may do with a file that a scan quarantined. Default: RequestApproval. Always present. One of RequestApproval, ViewOnly, RestoreDelete. |
allowCmsProtection |
boolean | Whether tenants may choose a CMS protection profile for their sites and change their login protection and rate-limit settings. Default: true. Always present. |
rateLimitEventsFloor |
integer | Lowest requests-per-minute value a tenant may set for a CMS protection rate limit, so a tenant cannot lock out its own visitors. Default: 1. Always present. |
allowRuntimeEdit |
boolean | Whether tenants may say which runtime their site uses (PHP, .NET, classic ASP or static), which decides the file types uploads may carry. Default: true. Always present. |
allowManagedCert |
boolean | Whether tenants may turn on a PortWall-managed HTTPS certificate for their own sites that are not run through a hosting panel. Default: false. Always present. |
maxManagedCerts |
integer | Most managed certificates one tenant may have. 0 means no limit. Default: 0. Always present. |
Change the tenant policy
PUT /api/tenant-policy
Needs an Admin key.
Request body: TenantSelfServicePolicy
| Field | Type | Description |
|---|---|---|
allowedModes |
list of EngineMode |
The WAF modes a tenant may switch its sites to. A tenant asking for a mode not listed is refused. Required. |
defaultMode |
EngineMode |
The mode a new tenant site starts in. Default: On (blocking). Required. One of Off, DetectionOnly, On. |
allowParanoiaEdit |
boolean | Whether tenants may change the paranoia level of their sites. If false, only the host can. Default: true. |
paranoiaMin |
integer | Lowest paranoia level a tenant may choose, from 1 to 4. Default: 1. |
paranoiaMax |
integer | Highest paranoia level a tenant may choose, from 1 to 4 and not below the lowest. Default: 2. |
allowThresholdEdit |
boolean | Whether tenants may change the blocking sensitivity (the anomaly threshold) of their sites. If false, only the host can. Default: true. |
thresholdMin |
integer | Lowest blocking threshold a tenant may set, at least 1. A lower value blocks sooner. Default: 3. |
thresholdMax |
integer | Highest blocking threshold a tenant may set, not below the lowest. A higher value blocks later. Default: 7. |
exclusionPolicy |
TenantExclusionPolicy |
Whether tenants may add rule exclusions (to stop a rule blocking legitimate traffic) themselves, must ask the host, or may not at all. Default: SelfApply. Required. One of SelfApply, RequestApproval, Disabled. |
maxTenantExclusions |
integer | Most rule exclusions a tenant may have on one site when exclusions are self-applied. Default: 25. |
allowTenantScan |
boolean | Whether tenants may start a malware scan of their own sites. Default: true. |
tenantScanMinIntervalMinutes |
integer | Least time, in minutes, between two scans of the same site; a scan started sooner is refused. 0 means no wait. Default: 360 (6 hours). |
maxScanFileSizeBytes |
integer | Largest file, in bytes, that a tenant's scan will check; bigger files are skipped. Default: 33554432 (32 MiB). |
quarantineAction |
TenantQuarantineAction |
What a tenant may do with a file that a scan quarantined. Default: RequestApproval. Required. One of RequestApproval, ViewOnly, RestoreDelete. |
allowCmsProtection |
boolean | Whether tenants may choose a CMS protection profile for their sites and change their login protection and rate-limit settings. Default: true. |
rateLimitEventsFloor |
integer | Lowest requests-per-minute value a tenant may set for a CMS protection rate limit, so a tenant cannot lock out its own visitors. Default: 1. |
allowRuntimeEdit |
boolean | Whether tenants may say which runtime their site uses (PHP, .NET, classic ASP or static), which decides the file types uploads may carry. Default: true. |
allowManagedCert |
boolean | Whether tenants may turn on a PortWall-managed HTTPS certificate for their own sites that are not run through a hosting panel. Default: false. |
maxManagedCerts |
integer | Most managed certificates one tenant may have. 0 means no limit. Default: 0. |
Replies
| Status | Meaning | Body |
|---|---|---|
| 200 | OK | TenantSelfServicePolicy |
| 400 | Bad Request | ApiError |
Reply fields
| Field | Type | Description |
|---|---|---|
allowedModes |
list of EngineMode |
The WAF modes a tenant may switch its sites to. A tenant asking for a mode not listed is refused. Always present. |
defaultMode |
EngineMode |
The mode a new tenant site starts in. Default: On (blocking). Always present. One of Off, DetectionOnly, On. |
allowParanoiaEdit |
boolean | Whether tenants may change the paranoia level of their sites. If false, only the host can. Default: true. Always present. |
paranoiaMin |
integer | Lowest paranoia level a tenant may choose, from 1 to 4. Default: 1. Always present. |
paranoiaMax |
integer | Highest paranoia level a tenant may choose, from 1 to 4 and not below the lowest. Default: 2. Always present. |
allowThresholdEdit |
boolean | Whether tenants may change the blocking sensitivity (the anomaly threshold) of their sites. If false, only the host can. Default: true. Always present. |
thresholdMin |
integer | Lowest blocking threshold a tenant may set, at least 1. A lower value blocks sooner. Default: 3. Always present. |
thresholdMax |
integer | Highest blocking threshold a tenant may set, not below the lowest. A higher value blocks later. Default: 7. Always present. |
exclusionPolicy |
TenantExclusionPolicy |
Whether tenants may add rule exclusions (to stop a rule blocking legitimate traffic) themselves, must ask the host, or may not at all. Default: SelfApply. Always present. One of SelfApply, RequestApproval, Disabled. |
maxTenantExclusions |
integer | Most rule exclusions a tenant may have on one site when exclusions are self-applied. Default: 25. Always present. |
allowTenantScan |
boolean | Whether tenants may start a malware scan of their own sites. Default: true. Always present. |
tenantScanMinIntervalMinutes |
integer | Least time, in minutes, between two scans of the same site; a scan started sooner is refused. 0 means no wait. Default: 360 (6 hours). Always present. |
maxScanFileSizeBytes |
integer | Largest file, in bytes, that a tenant's scan will check; bigger files are skipped. Default: 33554432 (32 MiB). Always present. |
quarantineAction |
TenantQuarantineAction |
What a tenant may do with a file that a scan quarantined. Default: RequestApproval. Always present. One of RequestApproval, ViewOnly, RestoreDelete. |
allowCmsProtection |
boolean | Whether tenants may choose a CMS protection profile for their sites and change their login protection and rate-limit settings. Default: true. Always present. |
rateLimitEventsFloor |
integer | Lowest requests-per-minute value a tenant may set for a CMS protection rate limit, so a tenant cannot lock out its own visitors. Default: 1. Always present. |
allowRuntimeEdit |
boolean | Whether tenants may say which runtime their site uses (PHP, .NET, classic ASP or static), which decides the file types uploads may carry. Default: true. Always present. |
allowManagedCert |
boolean | Whether tenants may turn on a PortWall-managed HTTPS certificate for their own sites that are not run through a hosting panel. Default: false. Always present. |
maxManagedCerts |
integer | Most managed certificates one tenant may have. 0 means no limit. Default: 0. Always present. |
List per-tenant policy overrides
GET /api/tenant-policy/overrides
Needs an Admin key.
Replies
| Status | Meaning | Body |
|---|---|---|
| 200 | OK | list of TenantPolicyOverride |
Reply fields
| Field | Type | Description |
|---|---|---|
tenantId |
string | The tenant this override is for. The tenant ID in the URL is used if the two differ. Always present. |
allowedModes |
list of EngineMode |
The WAF modes this tenant may switch its sites to. Null follows the tenant policy; if set, it must list at least one mode. |
defaultMode |
EngineMode |
The mode a new site of this tenant starts in. Null follows the tenant policy. One of Off, DetectionOnly, On. |
allowParanoiaEdit |
boolean | Whether this tenant may change the paranoia level of its sites. Null follows the tenant policy. |
paranoiaMin |
integer | Lowest paranoia level this tenant may choose, from 1 to 4. Null follows the tenant policy. |
paranoiaMax |
integer | Highest paranoia level this tenant may choose, from 1 to 4 and not below the lowest. Null follows the tenant policy. |
allowThresholdEdit |
boolean | Whether this tenant may change the blocking sensitivity of its sites. Null follows the tenant policy. |
thresholdMin |
integer | Lowest blocking threshold this tenant may set, at least 1. A lower value blocks sooner. Null follows the tenant policy. |
thresholdMax |
integer | Highest blocking threshold this tenant may set, not below the lowest. A higher value blocks later. Null follows the tenant policy. |
exclusionPolicy |
TenantExclusionPolicy |
How this tenant may handle rule exclusions. Null follows the tenant policy. One of SelfApply, RequestApproval, Disabled. |
maxTenantExclusions |
integer | Most rule exclusions this tenant may have on one site. Null follows the tenant policy. |
allowTenantScan |
boolean | Whether this tenant may start a malware scan of its own sites. Null follows the tenant policy. |
tenantScanMinIntervalMinutes |
integer | Least time, in minutes, between two scans of the same site of this tenant. 0 means no wait. Null follows the tenant policy. |
maxScanFileSizeBytes |
integer | Largest file, in bytes, that this tenant's scans will check; bigger files are skipped. Null follows the tenant policy. |
quarantineAction |
TenantQuarantineAction |
What this tenant may do with a quarantined file. Null follows the tenant policy. One of RequestApproval, ViewOnly, RestoreDelete. |
allowCmsProtection |
boolean | Whether this tenant may choose a CMS protection profile and change login protection and rate-limit settings. Null follows the tenant policy. |
rateLimitEventsFloor |
integer | Lowest requests-per-minute value this tenant may set for a CMS protection rate limit. Null follows the tenant policy. |
allowRuntimeEdit |
boolean | Whether this tenant may declare the runtime of its sites. Null follows the tenant policy. |
allowManagedCert |
boolean | Whether this tenant may turn on a PortWall-managed HTTPS certificate for its own sites. Null follows the tenant policy. |
maxManagedCerts |
integer | Most managed certificates this tenant may have. 0 means no limit. Null follows the tenant policy. |
Get one tenant's policy override
GET /api/tenant-policy/overrides/{tenantId}
Needs an Admin key.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
tenantId |
path | string | Required. |
Replies
| Status | Meaning | Body |
|---|---|---|
| 200 | OK | TenantPolicyOverride |
| 404 | Not Found | none |
Reply fields
| Field | Type | Description |
|---|---|---|
tenantId |
string | The tenant this override is for. The tenant ID in the URL is used if the two differ. Always present. |
allowedModes |
list of EngineMode |
The WAF modes this tenant may switch its sites to. Null follows the tenant policy; if set, it must list at least one mode. |
defaultMode |
EngineMode |
The mode a new site of this tenant starts in. Null follows the tenant policy. One of Off, DetectionOnly, On. |
allowParanoiaEdit |
boolean | Whether this tenant may change the paranoia level of its sites. Null follows the tenant policy. |
paranoiaMin |
integer | Lowest paranoia level this tenant may choose, from 1 to 4. Null follows the tenant policy. |
paranoiaMax |
integer | Highest paranoia level this tenant may choose, from 1 to 4 and not below the lowest. Null follows the tenant policy. |
allowThresholdEdit |
boolean | Whether this tenant may change the blocking sensitivity of its sites. Null follows the tenant policy. |
thresholdMin |
integer | Lowest blocking threshold this tenant may set, at least 1. A lower value blocks sooner. Null follows the tenant policy. |
thresholdMax |
integer | Highest blocking threshold this tenant may set, not below the lowest. A higher value blocks later. Null follows the tenant policy. |
exclusionPolicy |
TenantExclusionPolicy |
How this tenant may handle rule exclusions. Null follows the tenant policy. One of SelfApply, RequestApproval, Disabled. |
maxTenantExclusions |
integer | Most rule exclusions this tenant may have on one site. Null follows the tenant policy. |
allowTenantScan |
boolean | Whether this tenant may start a malware scan of its own sites. Null follows the tenant policy. |
tenantScanMinIntervalMinutes |
integer | Least time, in minutes, between two scans of the same site of this tenant. 0 means no wait. Null follows the tenant policy. |
maxScanFileSizeBytes |
integer | Largest file, in bytes, that this tenant's scans will check; bigger files are skipped. Null follows the tenant policy. |
quarantineAction |
TenantQuarantineAction |
What this tenant may do with a quarantined file. Null follows the tenant policy. One of RequestApproval, ViewOnly, RestoreDelete. |
allowCmsProtection |
boolean | Whether this tenant may choose a CMS protection profile and change login protection and rate-limit settings. Null follows the tenant policy. |
rateLimitEventsFloor |
integer | Lowest requests-per-minute value this tenant may set for a CMS protection rate limit. Null follows the tenant policy. |
allowRuntimeEdit |
boolean | Whether this tenant may declare the runtime of its sites. Null follows the tenant policy. |
allowManagedCert |
boolean | Whether this tenant may turn on a PortWall-managed HTTPS certificate for its own sites. Null follows the tenant policy. |
maxManagedCerts |
integer | Most managed certificates this tenant may have. 0 means no limit. Null follows the tenant policy. |
Set one tenant's policy override
PUT /api/tenant-policy/overrides/{tenantId}
Needs an Admin key.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
tenantId |
path | string | Required. |
Request body: TenantPolicyOverride
| Field | Type | Description |
|---|---|---|
tenantId |
string | The tenant this override is for. The tenant ID in the URL is used if the two differ. Required. |
allowedModes |
list of EngineMode |
The WAF modes this tenant may switch its sites to. Null follows the tenant policy; if set, it must list at least one mode. Optional. |
defaultMode |
EngineMode |
The mode a new site of this tenant starts in. Null follows the tenant policy. Optional. One of Off, DetectionOnly, On. |
allowParanoiaEdit |
boolean | Whether this tenant may change the paranoia level of its sites. Null follows the tenant policy. Optional. |
paranoiaMin |
integer | Lowest paranoia level this tenant may choose, from 1 to 4. Null follows the tenant policy. Optional. |
paranoiaMax |
integer | Highest paranoia level this tenant may choose, from 1 to 4 and not below the lowest. Null follows the tenant policy. Optional. |
allowThresholdEdit |
boolean | Whether this tenant may change the blocking sensitivity of its sites. Null follows the tenant policy. Optional. |
thresholdMin |
integer | Lowest blocking threshold this tenant may set, at least 1. A lower value blocks sooner. Null follows the tenant policy. Optional. |
thresholdMax |
integer | Highest blocking threshold this tenant may set, not below the lowest. A higher value blocks later. Null follows the tenant policy. Optional. |
exclusionPolicy |
TenantExclusionPolicy |
How this tenant may handle rule exclusions. Null follows the tenant policy. Optional. One of SelfApply, RequestApproval, Disabled. |
maxTenantExclusions |
integer | Most rule exclusions this tenant may have on one site. Null follows the tenant policy. Optional. |
allowTenantScan |
boolean | Whether this tenant may start a malware scan of its own sites. Null follows the tenant policy. Optional. |
tenantScanMinIntervalMinutes |
integer | Least time, in minutes, between two scans of the same site of this tenant. 0 means no wait. Null follows the tenant policy. Optional. |
maxScanFileSizeBytes |
integer | Largest file, in bytes, that this tenant's scans will check; bigger files are skipped. Null follows the tenant policy. Optional. |
quarantineAction |
TenantQuarantineAction |
What this tenant may do with a quarantined file. Null follows the tenant policy. Optional. One of RequestApproval, ViewOnly, RestoreDelete. |
allowCmsProtection |
boolean | Whether this tenant may choose a CMS protection profile and change login protection and rate-limit settings. Null follows the tenant policy. Optional. |
rateLimitEventsFloor |
integer | Lowest requests-per-minute value this tenant may set for a CMS protection rate limit. Null follows the tenant policy. Optional. |
allowRuntimeEdit |
boolean | Whether this tenant may declare the runtime of its sites. Null follows the tenant policy. Optional. |
allowManagedCert |
boolean | Whether this tenant may turn on a PortWall-managed HTTPS certificate for its own sites. Null follows the tenant policy. Optional. |
maxManagedCerts |
integer | Most managed certificates this tenant may have. 0 means no limit. Null follows the tenant policy. Optional. |
Replies
| Status | Meaning | Body |
|---|---|---|
| 200 | OK | TenantPolicyOverride |
| 400 | Bad Request | ApiError |
Reply fields
| Field | Type | Description |
|---|---|---|
tenantId |
string | The tenant this override is for. The tenant ID in the URL is used if the two differ. Always present. |
allowedModes |
list of EngineMode |
The WAF modes this tenant may switch its sites to. Null follows the tenant policy; if set, it must list at least one mode. |
defaultMode |
EngineMode |
The mode a new site of this tenant starts in. Null follows the tenant policy. One of Off, DetectionOnly, On. |
allowParanoiaEdit |
boolean | Whether this tenant may change the paranoia level of its sites. Null follows the tenant policy. |
paranoiaMin |
integer | Lowest paranoia level this tenant may choose, from 1 to 4. Null follows the tenant policy. |
paranoiaMax |
integer | Highest paranoia level this tenant may choose, from 1 to 4 and not below the lowest. Null follows the tenant policy. |
allowThresholdEdit |
boolean | Whether this tenant may change the blocking sensitivity of its sites. Null follows the tenant policy. |
thresholdMin |
integer | Lowest blocking threshold this tenant may set, at least 1. A lower value blocks sooner. Null follows the tenant policy. |
thresholdMax |
integer | Highest blocking threshold this tenant may set, not below the lowest. A higher value blocks later. Null follows the tenant policy. |
exclusionPolicy |
TenantExclusionPolicy |
How this tenant may handle rule exclusions. Null follows the tenant policy. One of SelfApply, RequestApproval, Disabled. |
maxTenantExclusions |
integer | Most rule exclusions this tenant may have on one site. Null follows the tenant policy. |
allowTenantScan |
boolean | Whether this tenant may start a malware scan of its own sites. Null follows the tenant policy. |
tenantScanMinIntervalMinutes |
integer | Least time, in minutes, between two scans of the same site of this tenant. 0 means no wait. Null follows the tenant policy. |
maxScanFileSizeBytes |
integer | Largest file, in bytes, that this tenant's scans will check; bigger files are skipped. Null follows the tenant policy. |
quarantineAction |
TenantQuarantineAction |
What this tenant may do with a quarantined file. Null follows the tenant policy. One of RequestApproval, ViewOnly, RestoreDelete. |
allowCmsProtection |
boolean | Whether this tenant may choose a CMS protection profile and change login protection and rate-limit settings. Null follows the tenant policy. |
rateLimitEventsFloor |
integer | Lowest requests-per-minute value this tenant may set for a CMS protection rate limit. Null follows the tenant policy. |
allowRuntimeEdit |
boolean | Whether this tenant may declare the runtime of its sites. Null follows the tenant policy. |
allowManagedCert |
boolean | Whether this tenant may turn on a PortWall-managed HTTPS certificate for its own sites. Null follows the tenant policy. |
maxManagedCerts |
integer | Most managed certificates this tenant may have. 0 means no limit. Null follows the tenant policy. |
Remove one tenant's policy override
DELETE /api/tenant-policy/overrides/{tenantId}
Needs an Admin key.
The tenant falls back to the tenant policy.
Parameters
| Name | In | Type | Notes |
|---|---|---|---|
tenantId |
path | string | Required. |
Replies
| Status | Meaning | Body |
|---|---|---|
| 204 | No Content | none |
| 404 | Not Found | none |