---
title: "Partially update tenant settings"
method: PATCH
path: "/v1/tenants/{tenant_id}/settings"
tags: ["Tenant Settings"]
---

# Partially update tenant settings

`PATCH /v1/tenants/{tenant_id}/settings`

Partially updates the enrichment settings for the specified tenant_id using RFC 7396 JSON Merge
Patch semantics (media type application/merge-patch+json; application/json is also accepted). For
each member: a value sets that setting, JSON null removes it (e.g. `{"target_language": null}`
clears the target language), and an omitted member is left unchanged. The tenant_id is taken
from the path, so a request can only ever modify its own
tenant's settings. target_language is normalized to a canonical BCP-47 locale (e.g. "en-us"
becomes "en-US"); an empty string is rejected (send null to remove it). While a tenant data purge
runs for the same tenant_id, this write is rejected with HTTP 409 (code `tenant_write_conflict`)
and may be retried.

## Path parameters

- `tenant_id` string, required

## Request body

- PatchTenantSettingsInputBody — RFC 7396 JSON Merge Patch for a tenant's enrichment settings. For each member: a value sets the setting, JSON null removes it, and an omitted member is left unchanged.
  - `target_language` string, nullable — Target BCP-47 locale to translate into; normalized to a canonical form (e.g. "en-us" becomes "en-US"). Send null to remove it; omit to leave it unchanged. An empty string is rejected.
  - `sentiment_enabled` boolean, nullable — Enable or disable sentiment enrichment. Send null to restore the default (enabled); omit to leave it unchanged.
  - `emotions_enabled` boolean, nullable — Enable or disable emotion enrichment. Send null to restore the default (enabled); omit to leave it unchanged.

## Response `200`

Updated tenant settings

- TenantSettingsOutputBody
  - `tenant_id` string, required — Tenant ID the settings belong to
  - `settings` EnrichmentSettings, required — Tenant-scoped enrichment configuration. Fields are optional; absent fields use server defaults.
    - `target_language` string — Normalized BCP-47 locale (e.g. "en-US") that language enrichment translates feedback records and topic labels into. Absent or empty means not configured.
    - `sentiment_enabled` boolean — Per-directory switch for sentiment enrichment. Absent means the default (enabled), so a tenant is enriched unless it has explicitly set this to false. The deployment-level sentiment provider/model gate applies on top of this.
    - `emotions_enabled` boolean — Per-directory switch for emotion enrichment. Absent means the default (enabled), so a tenant is enriched unless it has explicitly set this to false. The deployment-level emotions provider/model gate applies on top of this.

## Other responses

- `400` — Bad Request (e.g. invalid tenant_id or target_language)
- `409` — Conflict – a tenant data purge for the same tenant_id is in progress (code `tenant_write_conflict`). No settings were written; retry later.
- `413` — Request body exceeds the maximum allowed size.
- `default` — Error

---

[API](https://skmtc.net/formbricks/apis/formbricks-hub-api.md) · [All operations](https://skmtc.net/formbricks/apis/formbricks-hub-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/formbricks/formbricks-hub-api/revisions/8d06d9728138/schema)
