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: Experimental 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: "Experimental 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 - choice2 default: [] type: type: string description: Type of custom field example: equal required: - is_required - field - default_value - type SettingsLabelGroup: type: object additionalProperties: false properties: has_single_value: type: boolean description: Single or multiple value support indicator for the label group example: true label_type: type: string description: Name of the label group example: Content Pillar labels: description: List of labels of the label group type: array items: $ref: '#/components/schemas/SettingsLabelGroupLabel' required: - has_single_value - label_type - labels Settings: type: object additionalProperties: false properties: resources: type: object description: Fetched settings $ref: '#/components/schemas/SettingsResources' required: - resources FormField: type: object additionalProperties: false properties: field_type: type: string description: Type of template form field example: custom_field help: type: string description: Helper text for form field example: This is a helper text is_required: type: boolean description: Indicates whether the form field is required example: false logic_rules: type: array description: List of the template logic rules items: $ref: '#/components/schemas/LogicRule' sort_order: type: integer description: Sort order of the form field example: 0 identifier: type: string description: Identifier of the form field example: SingleChoice1 custom_field_type: type: - string - 'null' description: Type of the custom field when the form field is a custom field example: multichoice required: - field_type - help - is_required - logic_rules - sort_order - identifier - custom_field_type LogicRuleAction: type: object description: Template logic rule action additionalProperties: false properties: target_field: type: object $ref: '#/components/schemas/LogicRuleTargetField' type: type: string description: Type of logic rule action example: jump_to values: type: array description: Values to consider on logic rule action items: type: string example: a choice example: [] required: - target_field - type - values CurrencyCustomField: type: object additionalProperties: false properties: label: type: string description: Name of the custom field example: A Currency Custom Field decimal_places: type: - integer - 'null' description: Value of decimal places example: 1 default: null currency_code: type: string description: Curency code of custom field example: USD default: USD has_thousand_separator: type: boolean description: Indicator of thousand separator example: false default: false required: - label - decimal_places - currency_code - has_thousand_separator Instruction: type: object additionalProperties: false properties: description: type: string description: Description of the template instruction example: Test instruction description id: type: string description: Id of the template instruction example: 9ec506f480dbc2d5f6919168ae448c40 required: - description - id SettingsRoutingRule: type: object additionalProperties: false properties: name: type: string description: Name of the routing rule example: example Routing Rule rules: description: List of the associated rules type: array items: type: object additionalProperties: false properties: field_type: type: string description: Name of the rule field type example: customField identifier: type: - string - 'null' description: Name of the rule identifier example: exampleCustomField1 operator: type: string description: Name of the rule operator example: equal value: type: array description: List of the associated label, custom field, or due date choice items: type: string example: value1 example: - value1 - value2 unit: type: - string - 'null' description: Unit of rule's field. Not null when the rule's `field_type` value is `dueDate` enum: - days - weeks - months - years - null example: days custom_field_type: type: - string - 'null' description: Associated custom field type example: multichoice required: - field_type - identifier - operator - value - unit - custom_field_type watchers: type: array description: List of the routing rule watchers email items: type: string example: examplewatcher@gmail.com example: - examplewatcher@gmail.com description: type: string description: Description of the routing rule example: Sample routing rule description template_name: type: - string - 'null' description: Name of the associated template example: Sample template name required: - name - rules - watchers - description - template_name SettingsCustomField: type: object description: Settings for custom fields additionalProperties: false properties: currency: description: List of currency custom fields type: array items: $ref: '#/components/schemas/CurrencyCustomField' number: description: List of number custom fields type: array items: $ref: '#/components/schemas/NumberCustomField' percentage: description: List of percentage custom fields type: array items: $ref: '#/components/schemas/PercentageCustomField' checkbox: description: List of checkbox custom fields type: array items: $ref: '#/components/schemas/MultipleOptionCustomField' dropdown: description: List of dropdown custom fields type: array items: $ref: '#/components/schemas/MultipleOptionCustomField' multichoice: description: List of multichoice custom fields type: array items: $ref: '#/components/schemas/MultipleOptionCustomField' multi_select_dropdown: description: List of multi-select dropdown custom fields type: array items: $ref: '#/components/schemas/MultipleOptionCustomField' date: description: List of date custom fields type: array items: $ref: '#/components/schemas/LabelOnlyCustomField' image: description: List of image custom fields type: array items: $ref: '#/components/schemas/LabelOnlyCustomField' richtext: description: List of rich text custom fields type: array items: $ref: '#/components/schemas/LabelOnlyCustomField' string: description: List of string custom fields type: array items: $ref: '#/components/schemas/LabelOnlyCustomField' textarea: description: List of textarea custom fields type: array items: $ref: '#/components/schemas/LabelOnlyCustomField' video: description: List of video custom fields type: array items: $ref: '#/components/schemas/LabelOnlyCustomField' required: - currency - number - percentage - checkbox - dropdown - multichoice - multi_select_dropdown - date - image - richtext - string - textarea - video WorkflowSubStep: type: object additionalProperties: false properties: actions: type: array description: List of actions items: type: string example: findContent example: - findContent - writeEditSocialPost label: type: - string - 'null' description: Name of the substep example: Substep 1 default: null external_sub_step_config: type: object description: External substep configuration additionalProperties: false properties: is_user_interaction_allowed: description: Indicates whether the user interaction is allowed type: boolean example: false default: false is_external: type: - boolean - 'null' description: Indicates whether a substep is external example: false default: false external_system: type: - string - 'null' description: Name of the external system if the substep is external example: null default: null description: type: - string - 'null' description: Description of the substep example: This is a substep description default: null required: - actions - label - is_external - external_system - description SettingsApp: type: object additionalProperties: false properties: name: type: string description: Name of the app example: App 1 description: type: string description: Description of the app example: Sample description homepage_url: type: string description: Home page URL for app example: https://example1.com authorization_callback_urls: type: array description: List of the authorization callback URLs items: type: string example: https://example1.com example: - https://example1.com - https://example2.com expose_email: type: boolean description: Indicates whether an email should be exposed in an API response example: true env: type: string description: Environment of the app example: production required: - name - description - homepage_url - authorization_callback_urls - expose_email - env LogicRuleTargetField: type: object description: Template logic rule action's target field additionalProperties: false properties: identifier: type: string description: Name of the target field identifier example: end_of_form custom_field_type: type: - string - 'null' description: Type of custom field if the target field is a custom field example: null default: null type: type: string description: Type of the target field identifier example: end_of_form required: - identifier - custom_field_type - type SettingsChangesetBase: type: object additionalProperties: false properties: labels: type: array description: List of the label names items: type: string example: A LabelGroup example: - A LabelGroup custom_fields: type: array description: List of the custom field names items: type: string example: A Custom Field example: - A Custom Field workflows: type: array description: List of the workflow names items: type: string example: A WorkFlow example: - A WorkFlow webhooks: type: array description: List of the webhook names items: type: string example: A Webhook example: - A Webhook apps: type: array description: List of the app names items: type: string example: A App example: - A App templates: type: array description: List of the template names items: type: string example: A Template example: - A Template routing_rules: type: array description: List of the routing rule names items: type: string example: A routing Rule example: - A routing Rule required: - labels - custom_fields - workflows - webhooks - apps - templates - routing_rules SettingsTemplate: type: object additionalProperties: false properties: name: type: string description: Name of the template example: Template 1 description: type: string description: Description of the template example: Template description public_description: type: string description: Public description of the template example: Template public description form_fields: type: array description: List of the template form_fields items: $ref: '#/components/schemas/FormField' sections: type: array description: List of the template sections items: $ref: '#/components/schemas/Section' instructions: type: array description: List of the template instructions items: $ref: '#/components/schemas/Instruction' types: type: array description: List of areas where you can use the template items: type: string example: campaign_brief example: - campaign_brief - task_brief - work_request required: - name - description - public_description - form_fields - sections - instructions - types LabelOnlyCustomField: type: object additionalProperties: false properties: label: type: string description: Name of the custom field example: A Custom Field required: - label WorkflowStep: type: object additionalProperties: false properties: label: type: string description: Name of the workflow step example: Step 1 substeps: type: array description: List of the substeps items: $ref: '#/components/schemas/WorkflowSubStep' description: type: - string - 'null' description: Description of the workflow step example: This is a dummy example default: null duration: type: - integer - 'null' description: Duration of the workflow step example: 1 default: null required: - label - substeps - description - duration responses: Forbidden: description: Permission error content: application/json: schema: $ref: '#/components/schemas/Error' example: message: You do not have the permission to perform this operation UnprocessableEntity: description: Unprocessable entity error content: application/json: schema: $ref: '#/components/schemas/Error' example: message: Resource cannot be processed Unauthorized: description: Authorization error content: application/json: schema: $ref: '#/components/schemas/Error' example: message: Unauthorized securitySchemes: access_token: type: apiKey description: Token used to access storefront API. name: access_token in: query OAuth2: type: oauth2 flows: authorizationCode: authorizationUrl: https://accounts.cmp.optimizely.com/o/oauth2/v1/auth tokenUrl: https://accounts.cmp.optimizely.com/o/oauth2/v1/token scopes: openid: Grants the ability to receive a unique identifier for the user. profile: Grants access to user profile information. offline_access: Grants the ability to refresh access_token using the refresh token even when user is not present (not logged in). clientCredentials: tokenUrl: https://accounts.cmp.optimizely.com/o/oauth2/v1/token scopes: {} x-refined-from: - optimizely-configured-commerce-storefront-api-v1-openapi.json - optimizely-content-marketing-platform-optimizely-cmp-open-api-documentation-openapi.json