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