Partially update tenant settings
const url = 'http://localhost:8080/v1/tenants/org-123/settings';const options = { method: 'PATCH', headers: { Authorization: 'Bearer <token>', 'Content-Type': 'application/merge-patch+json' }, body: '{ "target_language": "de-DE" }'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url http://localhost:8080/v1/tenants/org-123/settings \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/merge-patch+json' \ --data '{ "target_language": "de-DE" }'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.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Example
org-123Tenant ID whose settings should be updated. Empty strings and NULL bytes are not allowed.
Request Bodyrequired
Section titled “Request Bodyrequired”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.
object
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.
Enable or disable sentiment enrichment. Send null to restore the default (enabled); omit to leave it unchanged.
Enable or disable emotion enrichment. Send null to restore the default (enabled); omit to leave it unchanged.
Examples
Set the target language (other settings untouched)
{ "target_language": "de-DE"}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.
object
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.
Example
de-DEEnable or disable sentiment enrichment. Send null to restore the default (enabled); omit to leave it unchanged.
Example
falseEnable or disable emotion enrichment. Send null to restore the default (enabled); omit to leave it unchanged.
Example
falseResponses
Section titled “Responses”Updated tenant settings
object
Tenant ID the settings belong to
Tenant-scoped enrichment configuration. Fields are optional; absent fields use server defaults.
object
Normalized BCP-47 locale (e.g. “en-US”) that language enrichment translates feedback records and topic labels into. Absent or empty means not configured.
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.
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.
Examples
Settings after the partial update
{ "tenant_id": "org-123", "settings": { "target_language": "de-DE" }}Bad Request (e.g. invalid tenant_id or target_language)
RFC 9457 problem details (application/problem+json). Branch on the stable code member rather than on title or type.
object
Stable, machine-readable error code; the primary value to branch on. service_unavailable indicates a feature or dependency is temporarily unavailable and the request may be retried later. tenant_write_conflict indicates the write conflicted with an in-progress tenant data purge (or vice versa) and may be retried later unchanged. All other codes are terminal until the request itself is changed.
A human-readable explanation specific to this occurrence of the problem.
Optional structured context for this problem, e.g. resource_type on a 404.
object
A URI reference (typically the request path) identifying the specific occurrence of the problem.
Field-level validation failures (RFC 9457 “invalid_params” extension). Present on validation errors.
A single invalid request parameter (RFC 9457 “invalid_params” extension member).
object
Dotted path to the offending request field, e.g. ‘field_type’ or ‘items[0].field_type’.
Human- and agent-readable explanation of why the value is invalid, naming allowed values or constraints where applicable so the request can be corrected without guessing.
Identifier for this request, also returned in the X-Request-ID response header; include it when reporting a problem.
HTTP status code
A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
A URI reference identifying the problem type.
Example
{ "code": "validation", "detail": "One or more request parameters are invalid", "instance": "/v1/feedback-records", "invalid_params": [ { "name": "field_type", "reason": "must be one of: text, categorical, nps, csat, ces, rating, number, boolean, date" } ], "request_id": "0190a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b", "status": 400, "title": "Bad Request", "type": "https://hub.formbricks.com/problems/bad-request"}Conflict – a tenant data purge for the same tenant_id is in progress
(code tenant_write_conflict). No settings were written; retry later.
RFC 9457 problem details (application/problem+json). Branch on the stable code member rather than on title or type.
object
Stable, machine-readable error code; the primary value to branch on. service_unavailable indicates a feature or dependency is temporarily unavailable and the request may be retried later. tenant_write_conflict indicates the write conflicted with an in-progress tenant data purge (or vice versa) and may be retried later unchanged. All other codes are terminal until the request itself is changed.
A human-readable explanation specific to this occurrence of the problem.
Optional structured context for this problem, e.g. resource_type on a 404.
object
A URI reference (typically the request path) identifying the specific occurrence of the problem.
Field-level validation failures (RFC 9457 “invalid_params” extension). Present on validation errors.
A single invalid request parameter (RFC 9457 “invalid_params” extension member).
object
Dotted path to the offending request field, e.g. ‘field_type’ or ‘items[0].field_type’.
Human- and agent-readable explanation of why the value is invalid, naming allowed values or constraints where applicable so the request can be corrected without guessing.
Identifier for this request, also returned in the X-Request-ID response header; include it when reporting a problem.
HTTP status code
A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
A URI reference identifying the problem type.
Example
{ "code": "validation", "detail": "One or more request parameters are invalid", "instance": "/v1/feedback-records", "invalid_params": [ { "name": "field_type", "reason": "must be one of: text, categorical, nps, csat, ces, rating, number, boolean, date" } ], "request_id": "0190a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b", "status": 400, "title": "Bad Request", "type": "https://hub.formbricks.com/problems/bad-request"}Request body exceeds the maximum allowed size.
RFC 9457 problem details (application/problem+json). Branch on the stable code member rather than on title or type.
object
Stable, machine-readable error code; the primary value to branch on. service_unavailable indicates a feature or dependency is temporarily unavailable and the request may be retried later. tenant_write_conflict indicates the write conflicted with an in-progress tenant data purge (or vice versa) and may be retried later unchanged. All other codes are terminal until the request itself is changed.
A human-readable explanation specific to this occurrence of the problem.
Optional structured context for this problem, e.g. resource_type on a 404.
object
A URI reference (typically the request path) identifying the specific occurrence of the problem.
Field-level validation failures (RFC 9457 “invalid_params” extension). Present on validation errors.
A single invalid request parameter (RFC 9457 “invalid_params” extension member).
object
Dotted path to the offending request field, e.g. ‘field_type’ or ‘items[0].field_type’.
Human- and agent-readable explanation of why the value is invalid, naming allowed values or constraints where applicable so the request can be corrected without guessing.
Identifier for this request, also returned in the X-Request-ID response header; include it when reporting a problem.
HTTP status code
A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
A URI reference identifying the problem type.
Example
{ "code": "validation", "detail": "One or more request parameters are invalid", "instance": "/v1/feedback-records", "invalid_params": [ { "name": "field_type", "reason": "must be one of: text, categorical, nps, csat, ces, rating, number, boolean, date" } ], "request_id": "0190a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b", "status": 400, "title": "Bad Request", "type": "https://hub.formbricks.com/problems/bad-request"}default
Section titled “default”Error
RFC 9457 problem details (application/problem+json). Branch on the stable code member rather than on title or type.
object
Stable, machine-readable error code; the primary value to branch on. service_unavailable indicates a feature or dependency is temporarily unavailable and the request may be retried later. tenant_write_conflict indicates the write conflicted with an in-progress tenant data purge (or vice versa) and may be retried later unchanged. All other codes are terminal until the request itself is changed.
A human-readable explanation specific to this occurrence of the problem.
Optional structured context for this problem, e.g. resource_type on a 404.
object
A URI reference (typically the request path) identifying the specific occurrence of the problem.
Field-level validation failures (RFC 9457 “invalid_params” extension). Present on validation errors.
A single invalid request parameter (RFC 9457 “invalid_params” extension member).
object
Dotted path to the offending request field, e.g. ‘field_type’ or ‘items[0].field_type’.
Human- and agent-readable explanation of why the value is invalid, naming allowed values or constraints where applicable so the request can be corrected without guessing.
Identifier for this request, also returned in the X-Request-ID response header; include it when reporting a problem.
HTTP status code
A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
A URI reference identifying the problem type.
Example
{ "code": "validation", "detail": "One or more request parameters are invalid", "instance": "/v1/feedback-records", "invalid_params": [ { "name": "field_type", "reason": "must be one of: text, categorical, nps, csat, ces, rating, number, boolean, date" } ], "request_id": "0190a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b", "status": 400, "title": "Bad Request", "type": "https://hub.formbricks.com/problems/bad-request"}