Skip to content

Save the AI feature switches

Settings module

POST/ai-settings/saveaiSettings.save

Creates or updates the caller's org switches in one call (org.ai.write). Turning a feature on while the plan lacks aurora_ai is a 422 refusal, aurora_not_in_plan. Requires `Idempotency-Key`; a replay returns the original response. A rule that refuses the request returns 422 with `refusal` and `reason`.

  • Requires the capability org.ai.write.
  • OAuth scopes: org.
  • Send an Idempotency-Key header. A replay with the same key returns the original response.
  • Error statuses: 400, 401, 409, 422, 429. Errors are RFC 9457 problem details.

Request body: AiSettingsSaveRequest

aiSettings.save: AiSettingsSaveRequest
FieldTypeRequiredDescription
assistant_enabledbooleanYesassistant switch.
plain_language_enabledbooleanYesplain_language switch.
extraction_enabledbooleanYesextraction switch.
drafting_enabledbooleanYesdrafting switch.
summaries_enabledbooleanYessummaries switch.
mapping_enabledbooleanYesmapping switch.
{
  "assistant_enabled": false,
  "plain_language_enabled": false,
  "extraction_enabled": false,
  "drafting_enabled": false,
  "summaries_enabled": false,
  "mapping_enabled": false
}

Response 200: AiSettings

aiSettings.save: AiSettings
FieldTypeRequiredDescription
idstring (uuid)YesIdentifier of the ai settings.
org_idstring (uuid)YesIdentifier of the owning organization, derived from the parent row and never accepted from the caller.
created_atstring (date-time)YesWhen the row was created.
created_bystring (uuid) | nullYesIdentifier of the person who created the row; null when a seed, platform or system process created it.
updated_atstring (date-time)YesWhen the row was last updated.
updated_bystring (uuid) | nullYesIdentifier of the person who last updated the row; null when a seed, platform or system process updated it.
assistant_enabledbooleanYesAssistant.
extraction_enabledbooleanYesDocument extraction.
drafting_enabledbooleanYesDrafting.
plain_language_enabledbooleanYesAsk in plain language.
summaries_enabledbooleanYesSummaries.
mapping_enabledbooleanYesMapping help.
{
  "id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "org_id": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "created_at": "2026-10-08T14:30:00Z",
  "created_by": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "updated_at": "2026-10-08T14:30:00Z",
  "updated_by": "0192f1e2-7c3a-7b4d-9e8f-1a2b3c4d5e6f",
  "assistant_enabled": false,
  "extraction_enabled": false,
  "drafting_enabled": false,
  "plain_language_enabled": false,
  "summaries_enabled": false,
  "mapping_enabled": false
}

Code samples

curl -X POST "$XOS_BASE_URL/ai-settings/save" \
  -H "Authorization: Bearer $XOS_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"assistant_enabled":false,"plain_language_enabled":false,"extraction_enabled":false,"drafting_enabled":false,"summaries_enabled":false,"mapping_enabled":false}'
const { data } = await xos.aiSettings.save({
    "assistant_enabled": false,
    "plain_language_enabled": false,
    "extraction_enabled": false,
    "drafting_enabled": false,
    "summaries_enabled": false,
    "mapping_enabled": false
  });
response = xos.ai_settings.save({"assistant_enabled": False, "plain_language_enabled": False, "extraction_enabled": False, "drafting_enabled": False, "summaries_enabled": False, "mapping_enabled": False})
xos ai-settings save --data '{"assistant_enabled":false,"plain_language_enabled":false,"extraction_enabled":false,"drafting_enabled":false,"summaries_enabled":false,"mapping_enabled":false}'