hosting

PUT /v1/sites/{siteId}/performance

Update a site's caching and acceleration settings.

All hosting endpoints

Authentication

Send an API key as a bearer token. The key must carry the hosting.performance.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}/performance \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{  }'

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

Merge semantics: every field is optional and only the fields present are applied, so toggling one setting never resets the others. Selecting the `premium` AccelerateWP tier starts the trial and requires a payment method on file, returning `PAYMENT_METHOD_REQUIRED` otherwise. Returns the complete updated resource. Requires `hosting.performance.manage`, and additionally `billing.payment.manage` when changing the AccelerateWP tier.

Parameters

NameTypeRequiredWhat it is
siteId (path)UuidYesSite ID (UUIDv7).
Idempotency-Key (header)stringNoClient-generated key that makes an unsafe request replay-safe: the server stores the first response and returns it verbatim for repeats.

Request body

NameTypeRequiredWhat it is
lscache_enabledbooleanNo
object_cache_enabledbooleanNo
object_cache_max_ttlintegerNo
wp_memory_limitstringNoA PHP memory shorthand (`256M`, `1G`) or blank to clear the override. Anything PHP cannot parse is rejected with `INVALID_MEMORY_LIMIT` rather than normalised — PHP treats an un…
accelerate_wp_tierAccelerateWpTierNoThe AccelerateWP tier. `free` is the absence of the upsell, not a tier of it — the free cache layers are separate booleans on `SitePerformance`.

Response

NameTypeRequiredWhat it is
site_idUuidYesUUIDv7 identifier — sortable by creation time (docs/02 §8).
stack_supportedbooleanYesWhether **we** configure this site's web stack, so the controls below can take effect at all. Every control on this resource is applied over our **own** CloudLinux + LiteSpeed f…
lscache_enabledbooleanYesLiteSpeed LSCache full-page cache. Free, native to the fleet.
object_cache_enabledbooleanYesRedis per-site object cache. Free.
object_cache_max_ttlintegerYesHow long an object-cache entry may live, in seconds. `0` uses the plugin's own default.
wp_memory_limitstringYes`WP_MEMORY_LIMIT` for this site, e.g. `256M`; blank leaves WordPress's default. This is the per-site memory control: Redis has no per-user memory quota, so a shared instance can…
stackSiteStackStateYesWhat the site's SERVER actually has, read back from it — never what was requested. The fields above this one are desired state: both cache flags default to true, so a surface th…
accelerate_wpAccelerateWpYes

Errors this endpoint can return

401 · 403 · 404 · 422 · 429