Optimizely Settings API

The Settings API from Optimizely — 9 operation(s) for settings.

Operations 10

GET /api/v1/settings/website #
GET /api/v1/settings/quote #
GET /api/v1/settings/cart #
GET /api/v1/settings/account #
GET /api/v1/settings/wishlist #
GET /api/v1/settings #
GET /api/v1/settings/products #
GET /api/v1/settings/mobileapp #
GET /settings GET /settings #
POST /settings POST /settings #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/optimizely-settings-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

optimizely-settings-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Optimizely Settings API
  version: '1.0'
  description: 'Operations tagged Settings across 2 of this provider''s published API definitions: optimizely-configured-commerce-storefront-api-v1-openapi.json, optimizely-content-marketing-platform-optimizely-cmp-open-api-documentation-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://dogfood.commerce.insitesandbox.com
- url: https://api.cmp.optimizely.com/v3
  description: v3 version of Optimizely CMP Open API
tags:
- name: Settings
paths:
  /api/v1/settings/website:
    get:
      tags:
      - Settings
      operationId: WebsitesV1_GetSettingsAsync
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Insite.Websites.WebApi.V1.ApiModels.WebsiteSettingsModel'
            text/json:
              schema:
                $ref: '#/components/schemas/Insite.Websites.WebApi.V1.ApiModels.WebsiteSettingsModel'
            application/xml:
              schema:
                $ref: '#/components/schemas/Insite.Websites.WebApi.V1.ApiModels.WebsiteSettingsModel'
            text/xml:
              schema:
                $ref: '#/components/schemas/Insite.Websites.WebApi.V1.ApiModels.WebsiteSettingsModel'
            text/html:
              schema:
                $ref: '#/components/schemas/Insite.Websites.WebApi.V1.ApiModels.WebsiteSettingsModel'
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/settings/quote:
    get:
      tags:
      - Settings
      operationId: QuotesV1_GetSettingsAsync
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Insite.Rfq.WebApi.V1.ApiModels.QuoteSettingsModel'
            text/json:
              schema:
                $ref: '#/components/schemas/Insite.Rfq.WebApi.V1.ApiModels.QuoteSettingsModel'
            application/xml:
              schema:
                $ref: '#/components/schemas/Insite.Rfq.WebApi.V1.ApiModels.QuoteSettingsModel'
            text/xml:
              schema:
                $ref: '#/components/schemas/Insite.Rfq.WebApi.V1.ApiModels.QuoteSettingsModel'
            text/html:
              schema:
                $ref: '#/components/schemas/Insite.Rfq.WebApi.V1.ApiModels.QuoteSettingsModel'
      security:
      - access_token: []
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/settings/cart:
    get:
      tags:
      - Settings
      operationId: CartsV1_GetSettingsAsync
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Insite.Cart.WebApi.V1.ApiModels.CartSettingsModel'
            text/json:
              schema:
                $ref: '#/components/schemas/Insite.Cart.WebApi.V1.ApiModels.CartSettingsModel'
            application/xml:
              schema:
                $ref: '#/components/schemas/Insite.Cart.WebApi.V1.ApiModels.CartSettingsModel'
            text/xml:
              schema:
                $ref: '#/components/schemas/Insite.Cart.WebApi.V1.ApiModels.CartSettingsModel'
            text/html:
              schema:
                $ref: '#/components/schemas/Insite.Cart.WebApi.V1.ApiModels.CartSettingsModel'
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/settings/account:
    get:
      tags:
      - Settings
      operationId: AccountsV1_GetSettingsAsync
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Insite.Account.WebApi.V1.ApiModels.AccountSettingsModel'
            text/json:
              schema:
                $ref: '#/components/schemas/Insite.Account.WebApi.V1.ApiModels.AccountSettingsModel'
            application/xml:
              schema:
                $ref: '#/components/schemas/Insite.Account.WebApi.V1.ApiModels.AccountSettingsModel'
            text/xml:
              schema:
                $ref: '#/components/schemas/Insite.Account.WebApi.V1.ApiModels.AccountSettingsModel'
            text/html:
              schema:
                $ref: '#/components/schemas/Insite.Account.WebApi.V1.ApiModels.AccountSettingsModel'
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/settings/wishlist:
    get:
      tags:
      - Settings
      operationId: WishListsV1_GetSettingsAsync
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Insite.WishLists.WebApi.V1.ApiModels.WishListSettingsModel'
            text/json:
              schema:
                $ref: '#/components/schemas/Insite.WishLists.WebApi.V1.ApiModels.WishListSettingsModel'
            application/xml:
              schema:
                $ref: '#/components/schemas/Insite.WishLists.WebApi.V1.ApiModels.WishListSettingsModel'
            text/xml:
              schema:
                $ref: '#/components/schemas/Insite.WishLists.WebApi.V1.ApiModels.WishListSettingsModel'
            text/html:
              schema:
                $ref: '#/components/schemas/Insite.WishLists.WebApi.V1.ApiModels.WishListSettingsModel'
      security:
      - access_token: []
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/settings:
    get:
      tags:
      - Settings
      operationId: SettingsV1_GetAsync
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
            text/json:
              schema:
                type: object
            application/xml:
              schema:
                type: object
            text/xml:
              schema:
                type: object
            text/html:
              schema:
                type: object
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/settings/products:
    get:
      tags:
      - Settings
      operationId: ProductsV1_GetSettingsAsync
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Insite.Catalog.WebApi.V1.ApiModels.ProductSettingsModel'
            text/json:
              schema:
                $ref: '#/components/schemas/Insite.Catalog.WebApi.V1.ApiModels.ProductSettingsModel'
            application/xml:
              schema:
                $ref: '#/components/schemas/Insite.Catalog.WebApi.V1.ApiModels.ProductSettingsModel'
            text/xml:
              schema:
                $ref: '#/components/schemas/Insite.Catalog.WebApi.V1.ApiModels.ProductSettingsModel'
            text/html:
              schema:
                $ref: '#/components/schemas/Insite.Catalog.WebApi.V1.ApiModels.ProductSettingsModel'
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /api/v1/settings/mobileapp:
    get:
      tags:
      - Settings
      operationId: MobileAppV1_GetSettingsAsync
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Insite.MobileApp.WebApi.V1.ApiModels.MobileAppSettingsModel'
            text/json:
              schema:
                $ref: '#/components/schemas/Insite.MobileApp.WebApi.V1.ApiModels.MobileAppSettingsModel'
            application/xml:
              schema:
                $ref: '#/components/schemas/Insite.MobileApp.WebApi.V1.ApiModels.MobileAppSettingsModel'
            text/xml:
              schema:
                $ref: '#/components/schemas/Insite.MobileApp.WebApi.V1.ApiModels.MobileAppSettingsModel'
            text/html:
              schema:
                $ref: '#/components/schemas/Insite.MobileApp.WebApi.V1.ApiModels.MobileAppSettingsModel'
    servers:
    - url: https://dogfood.commerce.insitesandbox.com
  /settings:
    get:
      operationId: getSettings
      tags:
      - Settings
      summary: GET /settings
      description: <span style="background-color:#e95f6a;padding:5px;border-radius:5px">Experimental</span> Get settings.
      responses:
        '200':
          description: Fetched settings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Settings'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    post:
      operationId: updateSettings
      tags:
      - Settings
      summary: POST /settings
      description: "<span style=\"background-color:#e95f6a;padding:5px;border-radius:5px\">Experimental</span> Create or update settings.\n## Import behavior:\n- Label:\n    - If a label-group with the same name exists, the label-group is updated.\n      - Labels are merged.\n      - If a label with the same name exists, it is overwritten.\n    - If no label-group with the same name exists, a new label-group is created.\n- Custom Fields:\n    - If a custom field with the same name exists, the custom field is updated and its choices are merged.\n    - If no custom field with the same name exists, a new custom field will be created.\n- Workflows:\n    - If the query param overwrite_workflows=true the existing workflows are overwritten.\n      Otherwise, a new workflow will be created where the prefix `Copy of` is added to the name of the workflow.\n- Webhooks:\n    - If a webhook with the same name exists, the webhook is updated and its events are merged.\n    - If multiple webhooks with the same name exist, a new webhook is created.\n    - If no webhook with the same name exists, a new webhook is created.\n- Apps:\n    - If an app with the same name exists, the app is updated and its authorization callback URLs are merged.\n    - If multiple apps with the same name exist, a new app is created.\n    - If no app with the same name exists, a new app is created.\n- Templates:\n    - If a template with the same name exists, the template is updated.\n    - If multiple templates with the same name exist, a new template is created.\n    - If no template with the same name exists, a new template is created.\n- Routing Rules:\n    - If one single routing rule with the same name exists, the routing rule is updated.\n    - If multiple routing rules with the same name exist, a new routing rule is created.\n    - If no routing rule with the same name exists, a new routing rule is created.\n"
      parameters:
      - name: execute
        in: query
        required: false
        description: If `execute=true` the settings are created or updated. Otherwise, the endpoint returns only the changeset.
        schema:
          type: boolean
        example: true
      - name: overwrite_workflows
        in: query
        required: false
        description: If `overwrite_workflows=true` the existing workflows are overwritten. Otherwise, a new workflow is created where a prefix `Copy of` is added to the workflow's name.
        schema:
          type: boolean
        example: true
      requestBody:
        description: Payload to create or update settings
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SettingsResources'
      responses:
        '200':
          description: Created or updated settings and changeset
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettingsUpdateResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
      security:
      - OAuth2:
        - openid
        - profile
        - offline_access
    servers:
    - url: https://api.cmp.optimizely.com/v3
      description: v3 version of Optimizely CMP Open API
components:
  schemas:
    Insite.Websites.WebApi.V1.ApiModels.WebsiteSettingsModel:
      type: object
      properties:
        uri:
          type: string
        mobileAppEnabled:
          type: boolean
        useTokenExGateway:
          type: boolean
        useECheckTokenExGateway:
          type: boolean
        tokenExTestMode:
          type: boolean
        usePaymetricGateway:
          type: boolean
        useAdyenDropIn:
          type: boolean
        useSpreedlyDropIn:
          type: boolean
        paymentGatewayRequiresAuthentication:
          type: boolean
        defaultPageSize:
          format: int32
          type: integer
        enableCookiePrivacyPolicyPopup:
          type: boolean
        enableDynamicRecommendations:
          type: boolean
        disableGoogleScriptsInclusion:
          type: boolean
        googleMapsApiKey:
          type: string
        googleTrackingTypeComputed:
          type: string
        googleTrackingAccountId:
          type: string
        cmsType:
          format: int32
          enum:
          - 0
          - 1
          - 2
          - 3
          type: integer
        includeSiteNameInPageTitle:
          type: boolean
        pageTitleDelimiter:
          type: string
        siteNameAfterTitle:
          type: boolean
        reCaptchaSiteKey:
          type: string
        reCaptchaEnabledForContactUs:
          type: boolean
        reCaptchaEnabledForCreateAccount:
          type: boolean
        reCaptchaEnabledForForgotPassword:
          type: boolean
        reCaptchaEnabledForShareProduct:
          type: boolean
        reCaptchaEnabledForOrderStatus:
          type: boolean
        advancedSpireCmsFeatures:
          type: boolean
        previewLoginEnabled:
          type: boolean
        maintenanceModeEnabled:
          type: boolean
        useSquareGateway:
          type: boolean
        squareApplicationId:
          type: string
        squareLocationId:
          type: string
        squareLive:
          type: boolean
        enableTokenAuthentication:
          type: boolean
        includeRealTimeInventoryAndPricingForSeo:
          type: boolean
        enableProductStructuredData:
          type: boolean
        enableOrganizationStructuredData:
          type: boolean
        usePaystandDropIn:
          type: boolean
        paystandPublishableKey:
          type: string
        paystandTestMode:
          type: boolean
        enableCdnPrefix:
          type: boolean
        cdnPrefix:
          type: string
        enableBreadcrumbStructuredData:
          type: boolean
        enableSitelinksSearchBoxStructuredData:
          type: boolean
        enableOdpTracking:
          type: boolean
        enableOdpStorefrontEvents:
          type: boolean
        enableOdpTrackingAtCustomerShipToLevel:
          type: boolean
        odpJsTagUrl:
          type: string
        properties:
          type: object
          additionalProperties:
            type: string
    Insite.Rfq.WebApi.V1.ApiModels.QuoteSettingsModel:
      type: object
      properties:
        uri:
          type: string
        jobQuoteEnabled:
          type: boolean
        quoteExpireDays:
          format: int32
          type: integer
        properties:
          type: object
          additionalProperties:
            type: string
    Insite.Cart.WebApi.V1.ApiModels.CartSettingsModel:
      type: object
      properties:
        uri:
          type: string
        canRequestDeliveryDate:
          type: boolean
        canRequisition:
          type: boolean
        canEditCostCode:
          type: boolean
        maximumDeliveryPeriod:
          format: int32
          type: integer
        showCostCode:
          type: boolean
        showPoNumber:
          type: boolean
        showPayPal:
          type: boolean
        showCreditCard:
          type: boolean
        showTaxAndShipping:
          type: boolean
        showLineNotes:
          type: boolean
        showNewsletterSignup:
          type: boolean
        requiresPoNumber:
          type: boolean
        addToCartPopupTimeout:
          format: int32
          type: integer
        enableRequestPickUpDate:
          type: boolean
        enableSavedCreditCards:
          type: boolean
        bypassCvvForSavedCards:
          type: boolean
        onePageCheckout:
          type: boolean
        enableGooglePay:
          type: boolean
        enableApplePay:
          type: boolean
        properties:
          type: object
          additionalProperties:
            type: string
    Insite.Catalog.WebApi.V1.ApiModels.ProductSettingsModel:
      type: object
      properties:
        uri:
          type: string
        allowBackOrder:
          type: boolean
        allowBackOrderForDelivery:
          type: boolean
        allowBackOrderForPickup:
          type: boolean
        showInventoryAvailability:
          type: boolean
        showAddToCartConfirmationDialog:
          type: boolean
        enableProductComparisons:
          type: boolean
        alternateUnitsOfMeasure:
          type: boolean
        thirdPartyReviews:
          type: string
        defaultViewType:
          type: string
        productLoadStyle:
          type: string
        numberOfProductsToLoad:
          format: int32
          type: integer
        showSavingsAmount:
          type: boolean
        showSavingsPercent:
          type: boolean
        realTimePricing:
          type: boolean
        realTimeInventory:
          type: boolean
        inventoryIncludedWithPricing:
          type: boolean
        storefrontAccess:
          type: string
        canShowPriceFilters:
          type: boolean
        canSeeProducts:
          type: boolean
        canSeePrices:
          type: boolean
        canAddToCart:
          type: boolean
        pricingService:
          type: string
        displayAttributesInTabs:
          type: boolean
        attributesTabSortOrder:
          type: string
        displayDocumentsInTabs:
          type: boolean
        documentsTabSortOrder:
          type: string
        displayInventoryPerWarehouse:
          type: boolean
        displayInventoryPerWarehouseOnlyOnProductDetail:
          type: boolean
        displayFacetsForStockedItems:
          type: boolean
        imageProvider:
          type: string
        catalogUrlPath:
          type: string
        enableVat:
          type: boolean
        vatPriceDisplay:
          type: string
        enableProductRecommendations:
          type: boolean
        peeriusTrackingUrl:
          type: string
        peeriusSiteName:
          type: string
        peeriusApiVersion:
          type: string
        enablePeeriusRequestsConsoleLogs:
          type: boolean
        enableStandaloneVariantProducts:
          type: boolean
        properties:
          type: object
          additionalProperties:
            type: string
    Insite.WishLists.WebApi.V1.ApiModels.WishListSettingsModel:
      type: object
      properties:
        uri:
          type: string
        allowMultipleWishLists:
          type: boolean
        allowEditingOfWishLists:
          type: boolean
        allowWishListsByCustomer:
          type: boolean
        allowListSharing:
          type: boolean
        productsPerPage:
          format: int32
          type: integer
        enableWishListReminders:
          type: boolean
        showAutoGeneratedLists:
          type: boolean
        properties:
          type: object
          additionalProperties:
            type: string
    Insite.MobileApp.WebApi.V1.ApiModels.MobileAppSettingsModel:
      type: object
      properties:
        uri:
          type: string
        startingCategoryForBrowsing:
          format: uuid
          type: string
          example: 00000000-0000-0000-0000-000000000000
        hasCheckout:
          type: boolean
        overrideCheckoutNavigation:
          type: boolean
        checkoutUrl:
          type: string
        addToCartInProductList:
          type: boolean
        enablePushNotifications:
          type: boolean
        properties:
          type: object
          additionalProperties:
            type: string
    Insite.Account.WebApi.V1.ApiModels.AccountSettingsModel:
      type: object
      properties:
        uri:
          type: string
        allowCreateAccount:
          type: boolean
        allowGuestCheckout:
          type: boolean
        allowSubscribeToNewsLetter:
          type: boolean
        allowEmptyShipping:
          type: boolean
        requireSelectCustomerOnSignIn:
          type: boolean
        passwordMinimumLength:
          format: int32
          type: integer
        passwordMinimumRequiredLength:
          format: int32
          type: integer
        passwordRequiresSpecialCharacter:
          type: boolean
        passwordRequiresUppercase:
          type: boolean
        passwordRequiresLowercase:
          type: boolean
        passwordRequiresDigit:
          type: boolean
        rememberMe:
          type: boolean
        keepMeSignedIn:
          type: boolean
        daysToRetainUser:
          format: int32
          type: integer
        useEmailAsUserName:
          type: boolean
        enableWarehousePickup:
          type: boolean
        logOutUserAfterPasswordChange:
          type: boolean
        requireActivateAccount:
          type: boolean
        siteTimeoutMinutes:
          format: int32
          type: integer
        properties:
          type: object
          additionalProperties:
            type: string
    SettingsResources:
      type: object
      additionalProperties: false
      properties:
        labels:
          type: array
          description: Settings labels
          items:
            $ref: '#/components/schemas/SettingsLabelGroup'
        custom_fields:
          type: object
          $ref: '#/components/schemas/SettingsCustomField'
        workflows:
          type: array
          description: Settings workflows
          items:
            $ref: '#/components/schemas/SettingsWorkflow'
        templates:
          type: array
          description: Settings templates
          items:
            $ref: '#/components/schemas/SettingsTemplate'
        apps:
          type: array
          description: Settings apps
          items:
            $ref: '#/components/schemas/SettingsApp'
        webhooks:
          type: array
          description: Settings webhooks
          items:
            $ref: '#/components/schemas/SettingsWebhook'
        routing_rules:
          type: array
          description: Settings routing rules
          items:
            $ref: '#/components/schemas/SettingsRoutingRule'
      required:
      - labels
      - custom_fields
      - workflows
      - templates
      - apps
      - webhooks
      - routing_rules
    LogicRuleCondition:
      type: object
      additionalProperties: false
      description: Logic rule action associated condition
      properties:
        operator:
          type: string
          description: The operator for logic rule action
          example: equal
        values:
          type: array
          description: List of labels or custom field choices
          items:
            type: string
            example: choice1
          example:
          - choice1
      required:
      - operator
      - values
    SettingsChangeset:
      type: object
      additionalProperties: false
      properties:
        create:
          type: object
          description: Created settings
          $ref: '#/components/schemas/SettingsChangesetBase'
        update:
          type: object
          description: Updated settings
          $ref: '#/components/schemas/SettingsChangesetBase'
      required:
      - create
      - update
    NumberCustomField:
      type: object
      additionalProperties: false
      properties:
        label:
          type: string
          description: Name of the custom field
          example: A Number Custom Field
        decimal_places:
          type:
          - integer
          - 'null'
          description: Value of decimal places
          example: 1
        has_thousand_separator:
          type: boolean
          description: Indicator of thousand separator
          example: false
          default: false
      required:
      - label
      - decimal_places
      - has_thousand_separator
    LogicRule:
      type: object
      additionalProperties: false
      properties:
        action:
          type: object
          description: Template logic rule action
          $ref: '#/components/schemas/LogicRuleAction'
        condition:
          type: object
          description: Logic rule action associated condition
          $ref: '#/components/schemas/LogicRuleCondition'
      required:
      - action
      - condition
    WorkflowLabel:
      type: object
      additionalProperties: false
      properties:
        default_value:
          type: array
          description: List of label names
          items:
            type: string
            example: label1
          example:
          - label1
          - label2
        is_required:
          type: boolean
          description: Indicates whether a label is required
          example: true
        label_type:
          type: string
          description: Name of the Label Group
          example: Content Pillar
        is_required_at_task_creation:
          type: boolean
          description: Indicates whether a label is required at task creation
          example: false
      required:
      - default_value
      - is_required
      - label_type
      - is_required_at_task_creation
    SettingsWebhook:
      type: object
      additionalProperties: false
      properties:
        name:
          type: string
          description: Name of the webhook
          example: Webhook 1
        description:
          type: string
          description: Description of the webhook
          example: Sample description
        callback_url:
          type: string
          description: Callback URL of the webhook
          example: https://exampledomain.com
        secret:
          type: string
          description: Webhook callback URL secret
          example: secret121
        event_names:
          type: array
          description: List of the subscribed event names for the webhook
          items:
            type: string
            example: asset_added
          example:
          - asset_added
          - asset_removed
      required:
      - name
      - description
      - callback_url
      - secret
      - event_names
    Section:
      type: object
      additionalProperties: false
      properties:
        label:
          type: string
          description: Name of the template section
          example: Test section
        id:
          type: string
          description: Id of the template section
          example: 9ec506f480dbc2d5f6919168ae448c41
      required:
      - label
      - id
    WorkflowChannel:
      type: object
      additionalProperties: false
      properties:
        display_name:
          type: string
          description: Name of the channel
          example: exampleChannel
        type:
          type: string
          description: Type of channel
          example: twitter
      required:
      - display_name
      - type
    SettingsUpdateResponse:
      type: object
      additionalProperties: false
      properties:
        resources:
          type: object
          description: Created or updated settings
          $ref: '#/components/schemas/SettingsResources'
        changeset:
          type: object
          description: Changeset of created or updated settings
          $ref: '#/components/schemas/SettingsChangeset'
      required:
      - resources
      - changeset
    MultipleOptionCustomField:
      type: object
      additionalProperties: false
      properties:
        label:
          type: string
          description: Name of the custom field
          example: A custom field with choice
        choices:
          type: array
          description: Custom field choices
          items:
            type: string
            example: choice1
          example:
          - choice1
          - choice2
      required:
      - label
      - choices
    SettingsLabelGroupLabel:
      type: object
      additionalProperties: false
      properties:
        name:
          type: string
          description: Name of the label
          example: Pillar1
        color:
          type:
          - string
          - 'null'
          description: Color of the label
          example: '#4ECFD5'
          default: null
      required:
      - name
      - color
    SettingsWorkflow:
      type: object
      additionalProperties: false
      properties:
        is_flexible_workflow:
          type: boolean
          description: Indicates whether the workflow is flexible
          example: false
        is_not_pushed_to_library_by_default:
          type: boolean
          description: Indicates whether the contents of the task created from this workflow are not pushed to the library by default
          example: false
        is_released_as_asset:
          type: boolean
          description: Indicates whether the contents of the task created from this workflow are released as an asset
          example: false
        name:
          type: string
          description: Name of the workflow
          example: A Workflow
        labels:
          description: List of the associated labels
          type: array
          items:
            $ref: '#/components/schemas/WorkflowLabel'
        custom_fields:
          description: List of the associated custom field
          type: array
          items:
            $ref: '#/components/schemas/WorkflowCustomfield'
        default_channels:
          description: List of the associated channels
          type: array
          items:
            $ref: '#/components/schemas/WorkflowChannel'
        blacklisted_channels:
          description: List of the disallowed channels
          type: array
          items:
            $ref: '#/components/schemas/WorkflowChannel'
        steps:
          description: List of the workflow steps
          type: array
          items:
            $ref: '#/components/schemas/WorkflowStep'
        description:
          type:
          - string
          - 'null'
          description: Description of the workflow
          example: Sample description
          default: null
      required:
      - is_flexible_workflow
      - is_not_pushed_to_library_by_default
      - is_released_as_asset
      - name
      - labels
      - custom_fields
      - default_channels
      - blacklisted_channels
      - steps
      - description
    Error:
      type: object
      additionalProperties: true
      description: Error payload
      properties:
        message:
          type: string
          description: Message describing the error
          example: Not found
        errors:
          type: object
          description: Additional information
          additionalProperties: true
          properties: {}
      required:
      - message
    PercentageCustomField:
      type: object
      additionalProperties: false
      properties:
        label:
          type: string
          description: Name of the custom field
          example: A Percentage Custom Field
        decimal_places:
          type:
          - integer
          - 'null'
          description: Value of decimal places
          example: 1
          default: null
      required:
      - label
      - decimal_places
    WorkflowCustomfield:
      type: object
      additionalProperties: false
      properties:
        is_required:
          type: boolean
          description: Indicates whether a custom field is required
          example: false
        field:
          type: string
          description: Name of the custom field
          example: exampleCustomField
        default_value:
          type: array
          description: List of the custom field choices
          items:
            type: string
            example: choice1
          example:
          - choice1
      

# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/optimizely/refs/heads/main/openapi/optimizely-settings-api-openapi.yml