ai

PUT /v1/ai/site-agent/preferences

Choose what the AI may do for one kind of fix.

All ai endpoints

Authentication

Send an API key as a bearer token. The key must carry the sites.view 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/ai/site-agent/preferences \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "action": <string>, "mode": <AiSiteAgentMode> }'

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

Records the customer's wish. The **requested** value is stored, never the clamped one: a customer who asks for "just fix it" on a fix still earning its rung keeps that setting, and it takes effect on its own the day the fix is promoted. Storing the clamp instead would quietly downgrade them for ever with no way to see it had happened. An unknown action or remedy key is a `422` naming it, never a silently ignored write. Requires `sites.view`.

Request body

NameTypeRequiredWhat it is
actionstringYes
modeAiSiteAgentModeYesWhat the customer wants the AI to do about one kind of fix. `ask` proposes it and waits for a button; `canary` applies it to one site and checks the result; `auto` applies it an…

Response

NameTypeRequiredWhat it is
actionstringYesThe fix this row is about — an agent action key or a support remedy key.
requestedAiSiteAgentModeYesWhat the customer chose, stored as they chose it.
effectiveAiSiteAgentModeYesWhat will actually happen — `requested` clamped to `ceiling`.
ceilingAiSiteAgentModeYesThe highest mode the PLATFORM currently permits for this fix. The customer cannot raise it; it moves when the fix earns a higher rung.
clampedbooleanYesTrue when the customer asked for more than the ceiling allows. The screen must say so — otherwise their choice looks as though it did not register.
reasonstringNoWhy the ceiling is where it is, in words a customer reads.

Errors this endpoint can return

401 · 403 · 422 · 429