---
title: "Update organization settings"
method: POST
path: "/api/{org_id}/settings"
tags: ["Organizations"]
---

# Update organization settings

`POST /api/{org_id}/settings`

## Request

- Base URL: `https://api.openobserve.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openobserve.ai/api/{org_id}/settings`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/:org_id/settings/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates or updates organization-specific settings such as scrape interval, trace field names, ingestion toggles, and streaming configurations. Allows administrators to customize organizational behavior and operational parameters to match specific requirements and use cases.

## Path parameters

- `org_id` string, required

## Request body

- object
  - `ai_rca_thread_tool_output` boolean, nullable
  - `budget_config` BudgetNotificationConfiguration[], nullable
    - `org_id` string, required
    - `paused` boolean, required
    - `total_budget_amount` number, double, required
    - `warn_at_amount` number, double, required
  - `claim_parser_function` string, nullable
  - `cross_links` CrossLink[], nullable
    - `fields` CrossLinkField[]: Show link only when at least one field matches the record. If empty, the link is always shown.
      - `alias` string, nullable: Populated by result_schema: the alias used in the query for this field.
      - `name` string, required
    - `name` string, required: Display name for the link
    - `url` string, required: URL template with {field_name} placeholders
  - `dark_mode_theme_color` string, nullable
  - `data_retention` DataRetentionDefaults: Default retention days of a scope; 0 inherits the next level.
    - `default` integer
    - `logs` integer
    - `metrics` integer
    - `profiles` integer
    - `traces` integer
  - `domain_management_config` DomainManagementConfig: Domain management configuration for SSO login restrictions
    - `blocked_domains` string[]: Whole-domain blocks — every `is_external` email ending in `@domain` is denied.
    - `blocked_emails` string[]: Exact emails (external SSO users OR SSO/token service accounts) blocked from all access. Evaluated BEFORE any allow rule — block wins over allow. Stored flat (not nested under a domain) so a block can target an email whose domain is not allow-listed, or block one user inside an otherwise `allow_all_users` domain.
    - `domains` DomainConfig[], required: List of allowed domains with their specific configurations
      - `allow_all_users` boolean: Whether all users from this domain are allowed MUTUALLY EXCLUSIVE with allowed_emails - when true, allowed_emails must be empty
      - `allowed_emails` string[]: List of specific email addresses allowed from this domain MUTUALLY EXCLUSIVE with allow_all_users - when not empty, allow_all_users must be false
      - `created_at` integer: Timestamp when this domain was added
      - `domain` string, required: Domain name (e.g., "example.com")
      - `enabled` boolean: Whether this domain configuration is active
      - `updated_at` integer: Timestamp when this domain was last updated
    - `enabled` boolean, required: Whether domain restrictions are enabled
    - `updated_at` integer, required: Timestamp when this configuration was last updated
  - `domain_org_mappings` DomainOrgMapping[], nullable
    - `base_role` string, required
    - `create_missing_roles` boolean
    - `domain` string, required
    - `org_id` string, required
    - `role_claim_name` string, nullable
  - `enable_streaming_search` boolean, nullable
  - `enforce_allowed_orgs_only` boolean, nullable
  - `light_mode_theme_color` string, nullable
  - `max_series_per_query` integer, nullable
  - `min_auto_refresh_interval` integer, nullable
  - `red_insights_enabled` boolean, nullable
  - `scrape_interval` integer, nullable: Ideally this should be the same as prometheus-scrape-interval (in seconds).
  - `span_id_field_name` string, nullable
  - `streaming_aggregation_enabled` boolean, nullable
  - `toggle_ingestion_logs` boolean, nullable
  - `trace_id_field_name` string, nullable
  - `usage_stream_enabled` boolean, nullable

## Response `200`

Success

- object

## Other responses

- `400`: Failure

---

[API](https://skmtc.dev/openobserve/apis/openobserve-api-http.md) - [All operations](https://skmtc.dev/openobserve/apis/openobserve-api-http/llms.txt) - [OpenAPI document](https://skmtc.dev/openobserve/apis/openobserve-api-http/revisions/0529b8a10252?raw)
