provisionAddon — Provisioning SiteLock Firewall & CDN
SiteLock Firewall & CDN is a content delivery network-based web application firewall product. Firewall & CDN can be provisioned as an add-on to an existing package or by itself. See also Provisioning an add-on as a standalone product if you intend to provision this for a user who doesn’t have an existing SiteLock scanning package.
SiteLock Firewall & CDN is provided at four different levels of service:
-
Basic
-
Professional
-
Premium
-
Enterprise
Only one level of the SiteLock Firewall & CDN service may be provisioned to a site at any given time.
The API endpoint is:
https://api.sitelock.com/v1/partner
|
As of September 12, 2026, newly provisioned Firewall & CDN sites use site-specific SSL certificates and CNAME-based domain validation by default. The following are no longer supported for newly provisioned sites:
Existing sites are not affected. Partners should ensure that any automation that processes SSL certificate types, validation records, DNS changes, or onboarding workflows supports CNAME-based domain validation. |
Request format
The example request payload contains two instances of the addonInfo element, one for each of the subscriptions being purchased.
The explanation below documents one.
-
SiteLockOnlineRequest: This element is used to delineate the full API request.
-
authentication: The partner’s username, password, and branding.
-
username: The partner’s API username
-
password: The partner’s API password
-
-
provisionAddon: The method name
-
addonInfo: (Repeatable) The subscription to provision
-
site_id: A valid SiteLock site ID (see also Provisioning an add-on as a standalone product).
-
subscription: A partner-specific plan ID that identifies this add-on.
-
renewal_date: (Optional) A date to be used for renewal.
-
waf_origin: (Optional) A partner specified "origin" address for routing. This supports the following use cases:
-
When a domain has been newly provisioned and DNS propagation hasn’t yet completed, specifying the origin IP allows us to assume that the site will be available at this IP without the discovery process concluding successfully.
-
When a partner who operates authoritative DNS for the user moves the user’s site to a new IP (for various internal use cases), they would normally be required to call our API request
setWAFOrigin. An alternative approach would be as follows:-
Before the provisioning call to SiteLock, create an A Record with:
-
name = www-origin.domain.com.
The name www-origin.domain.com is a placeholder value, and it can be whatever you choose. -
value = the origin IP for the site.
-
-
Include the
waf_originelement in the provisioning call, setting its value towww-origin.domain.com. -
Going forward:
-
Keep this A record up to date with changes to the origin IP for the domain.
-
SiteLock resolves the origin IP from this A record, and you don’t need to call
setWAFOrigin.
-
-
-
-
waf_force_ssl: (Optional) When used in conjunction with the
waf_originfield, causes the site to be considered as SSL-enabled and therefore begin the site’s SSL verification process, whether or not SSL is detected on the site during discovery. This is useful for provisioning sites which are so new that their DNS information hasn’t yet propagated. -
waf_dns_manager: (Optional) Can have one of the following values:
-
customer: The partner requires the user to update DNS records. This is the default when not specified.
-
partner: The partner modifies DNS records.
-
-
waf_skip_network_certificate: (Optional, default value is
0) Use this parameter to skip the network SSL certificate validation process for the deployment.If you choose to skip certificate validation, you must provide your own certificate using the uploadWafCertificatemethod.As of September 12, 2026, newly provisioned Firewall & CDN sites use site-specific SSL certificates and CNAME-based domain validation by default.
-
-
-
Example request
<SiteLockOnlineRequest>
<authentication>
<user>Username</user>
<password>Password</password>
</authentication>
<provisionAddon>
<addonInfo>
<site_id>442676</site_id>
<subscription>XXX</subscription>
</addonInfo>
<addonInfo>
<site_id>442989</site_id>
<subscription>XXX</subscription>
<renewal_date>2015-01-01</renewal_date>
<waf_origin>www-origin.example.com</waf_origin>
<waf_force_ssl>1</waf_force_ssl>
<waf_dns_manager>partner</waf_dns_manager>
<waf_skip_network_certificate>1</waf_skip_network_certificate>
</addonInfo>
</provisionAddon>
</SiteLockOnlineRequest>
Response format for non-SSL sites
-
SiteLockOnlineResponse: This element is used to delineate the full API response.
-
provisionAddon: The method name
-
addonStatuses: This element has no attributes.
-
addonStatus: (Repeatable) This element corresponds to the
addonInfoelement in the request-
account_id: The SiteLock account ID related to the
site_idprovided in the request toprovisionAddon -
site_id: The SiteLock site ID from the
provisionAddonrequest -
subscription: The plan ID provided in the subscription field from the
provisionAddonrequest -
subscription_id: The unique value used to identify the instance of the service. This value can be used in
deleteAddonrequests. -
status: The value can be one of the following:
-
ok: Success return value
-
error: Error return value. The
messageelement contains more detail.
-
-
code: (Optional) This element is present when the value of
statusiserror. To view a list of possible error codes, see Error codes. -
message: The detailed error or success message, for example:
-
WAF Subscription added ok
-
Invalid/Unknown Account ID
-
-
dns_new_cname: (Repeatable) The value to which the user’s CNAME record should be set. If the partner doesn’t programmatically make this change in the user’s records, SiteLock’s UI will prompt the user to manually make the necessary change during the activation process on the SiteLock Dashboard.
-
dns_new_a: (Repeatable) The values to which the user’s A records should be set. If the partner doesn’t programmatically make this change in the user’s records, SiteLock’s UI will prompt the user to manually make the necessary change during the activation process on the SiteLock Dashboard.
-
-
-
-
Since multiple provisioning requests can be submitted in one request, the status of an individual provisioning request should be determined by reading the status and message fields of the concerned addonStatus element.
To find the addonStatus element in question, our partners would use the site ID and SiteLock subscription plan ID submitted by them in the request to provisionAddon.
Example response for non-SSL sites
<SiteLockOnlineResponse>
<provisionAddon>
<addonStatuses>
<addonStatus>
<account_id>379430</account_id>
<site_id>442676</site_id>
<subscription>XXX</subscription>
<subscription_id>1234</subscription_id>
<status>ok</status>
<message>ANP Subscription added ok</message>
<dns_new_cname>new-cname.sitelockdns.com</dns_new_cname>
<dns_new_a>1.2.3.4,5.6.7.8</dns_new_a>
</addonStatus>
<addonStatus>
<account_id>379430</account_id>
<site_id>442989</site_id>
<subscription>XXX</subscription>
<subscription_id>1235</subscription_id>
<status>ok</status>
<message>WAF Subscription added ok</message>
<dns_new_cname>new-cname.sitelockdns.com</dns_new_cname>
<dns_new_a>9.8.7.6,5.4.3.2</dns_new_a>
</addonStatus>
</addonStatuses>
</provisionAddon>
</SiteLockOnlineResponse>
Response format for sites where SSL is required but a basic level subscription was requested
-
SiteLockOnlineResponse: This element is used to delineate the full API response.
-
provisionAddon: The method name
-
addonStatuses: This element has no attributes.
-
addonStatus: (Repeatable) This element corresponds to the
addonInfoelement in the request-
account_id: The SiteLock account ID related to the
site_idprovided in the request toprovisionAddon -
error_code: An error code from either:
-
Subscription management error codes if current format
-
Additional error codes for Firewall & CDN if legacy format
-
-
error_message: The error message explaining the issue in question
-
extended_error_code: Contains either a value from Firewall & CDN extended error codes or the value
-1, indicating the majorerror_codeprevented the Firewall & CDN product from even attempting to provision due to errors which couldn’t be resolved (for example, missing site information) -
message: This field exists for legacy purposes and for displaying messages not related to direct errors from the Firewall & CDN provisioning process (for example, messages specified in Additional error codes for Firewall & CDN).
-
site_id: The SiteLock site ID from the
provisionAddonrequest -
status: Can be one of the following values:
-
ok: Success return value
-
error: Error return value. The
messageelement contains more detail.
-
-
subscription: The plan ID provided in the subscription field from the
provisionAddonrequest -
will_retry: A
0(false) or1(true) indicating, respectively, whether the error encountered (as detailed inextended_error_code) is able to be retried. If true (for example, if the site doesn’t resolve), SiteLock retries provisioning for 12 days before automatically cancelling the subscription. During this time, it’s considered active. For more information, see getAnpProvisioningStatus: Managing the activation process. -
code: Legacy mode only. If
error_codeisAEX, this field will contain the contents ofextended_error_code. Otherwise, it will containerror_codefrom Additional error codes for Firewall & CDN.
-
-
-
-
Example error response
<SiteLockOnlineResponse>
<provisionAddon>
<addonStatuses>
<addonStatus>
<account_id>987654</account_id>
<error_code>AEX</error_code>
<error_message>Site requires SSL</error_message>
<extended_error_code>3003</extended_error_code>
<message>Site requires SSL</message>
<site_id>123456</site_id>
<status>error</status>
<subscription>8765</subscription>
<will_retry>0</will_retry>
</addonStatus>
</addonStatuses>
</provisionAddon>
</SiteLockOnlineResponse>
|
The value of the |
Response format for SSL sites
|
As of September 12, 2026, newly provisioned Firewall & CDN sites are issued site-specific SSL certificates and validated using CNAME records. Responses returned from Partners should review any automation that:
Existing sites are not affected. |
-
SiteLockOnlineResponse: This element is used to delineate the full API response.
-
provisionAddon: The method name
-
addonStatuses: This element has no attributes.
-
addonStatus: (Repeatable) This element corresponds to the
addonInfoelement in the request-
account_id: The SiteLock account ID imputed from the
site_idprovided in theprovisionAddonrequest -
dns_ssl_verify: An additional step is required when a site is SSL-enabled. A certificate authority verifies control of the domain before issuing the network SSL certificate.
As of September 12, 2026, newly provisioned sites use CNAME-based domain validation for certificate issuance and renewal. -
dns_record_domain: The domain which must have the verification record added.
-
dns_record_type: The type of DNS resource record to be added. As of September 12, 2026, the value of this element is
CNAMEfor newly provisioned sites. -
dns_record_value: The value to be placed into the DNS resource record for domain validation.
-
-
site_id: The ID of the site
-
subscription: The plan ID provided in the subscription field from the
provisionAddonrequest -
subscription_id: The unique value used to identify the instance of the service. This can be used in a
deleteAddonrequest. -
status: The value can be one of the following values:
-
ok: Success return value
-
error: Error return value. The
messageelement contains more detail.
-
-
code: This element is present when an error occurred. The value of the
statuselement will beerrorin this case. To view a list of possible error codes, see Error codes. -
message: The detailed error or success message, for example:
-
WAF Subscription added ok
-
Invalid/Unknown Account ID
-
-
will_retry: This element is present when an error occurred. The possible values are
0and1. The latter indicates that SiteLock automatically retries provisioning the requested account without further action required by the partner. When1is returned in this element, our partners are requested to callgetAnpProvisioningStatusperiodically (at 6 hour intervals) to check the status of the latest provisioning attempt.
-
-
-
-
|
Since multiple provisioning requests can be submitted in one call, the status of an individual provisioning request should be determined by reading the status and message fields of the concerned addonStatus element.
To find the addonStatus element in question, partners should use the site_id, and SiteLock Product ID submitted by them in the request to provisionAddon.
Example response for SSL sites
<SiteLockOnlineResponse>
<provisionAddon>
<addonStatuses>
<addonStatus>
<account_id>379430</account_id>
<dns_ssl_verify>
<dns_record_domain>_test.example.com</dns_record_domain>
<dns_record_type>CNAME</dns_record_type>
<dns_record_value>validation.test.com</dns_record_value>
</dns_ssl_verify>
<site_id>442989</site_id>
<subscription>XXX</subscription>
<subscription_id>1234</subscription_id>
<status>ok</status>
<message>ANP Subscription added ok</message>
</addonStatus>
</addonStatuses>
</provisionAddon>
</SiteLockOnlineResponse>
For information about SSL validation and enabling SSL on existing Firewall & CDN sites, see enableWafSSL.