hosting

PUT /v1/sites/{siteId}/ssl/force

Turn HTTPS enforcement on or off for a site.

All hosting endpoints

Authentication

Send an API key as a bearer token. The key must carry the sites.manage permission; a key without it is refused with 403, not 404.

This endpoint takes no organisation id. Your key already identifies the organisation it belongs to, and the response is scoped to it.

Try it

Replace anything in angle brackets with your own values, and the key placeholder with a key from your dashboard.

curl -X PUT https://api.zinndigital.com/v1/sites/{siteId}/ssl/force \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "enabled": <boolean> }'

Signed in? The API console in your dashboard fills in your real organisation id and your own key, and runs the request against the live API so you can see the actual response. Open this endpoint in the API console

Details

Sets whether every plain-HTTP request to the site is redirected to HTTPS, and returns the site's whole TLS state so the client re-renders from the server's answer rather than from what it asked for. `PUT` because the body states the desired end state: sending the same value twice is the same site. Turning enforcement **on** while no certificate is installed is refused `422` rather than accepted, because the redirect would send every visitor to a URL the browser then rejects — the site is not merely unchanged, it is unreachable. A package type that does not permit the setting is refused `422` before the vendor is called. `404` for a site with no vendor hosting package. Requires `sites.manage`.

Parameters

NameTypeRequiredWhat it is
siteId (path)UuidYesSite ID (UUIDv7).

Request body

NameTypeRequiredWhat it is
enabledbooleanYesWhether plain HTTP should be redirected to HTTPS. There is no third value: `getSiteSsl` may report `force_https` as null when the package does not publish the setting, but a cal…

Response

NameTypeRequiredWhat it is
availablebooleanYesWhether the package type exposes a certificate surface at all. False renders an explanation rather than an empty list, so "nothing has been issued yet" and "not part of this pla…
certificatesSiteSslCertificate[]YesThe certificates installed on the package.
force_httpsbooleanYesWhether plain HTTP is redirected to HTTPS, or null when the package does not report the setting. Null is a third state the client must render as unknown: an unchecked toggle wou…
free_ssl_permittedbooleanYesWhether this package type permits requesting the free certificate. An absent vendor capability means **refused**, never "probably on" — the refusal is ours, in our words, before…
force_ssl_permittedbooleanYesWhether this package type permits changing HTTPS enforcement.
external_ssl_permittedbooleanYesWhether this package type permits installing a certificate the customer obtained elsewhere (`installSiteExternalSsl`). Reported separately from `free_ssl_permitted` because they…

Errors this endpoint can return

401 · 403 · 404 · 409 · 422 · 429 · 503