Extole Components Settings API

The Components Settings API from Extole — 7 operation(s) for components settings.

OpenAPI Specification

extole-components-settings-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  description: 'Consumer-to-Extole integration endpoints: consumer event submission, zone rendering, profile management, and SDK-backing operations for browser and native app environments.'
  title: Integration API - Consumer to Extole Audiences Components Settings API
  version: '1.0'
servers:
- description: Production
  url: https://{brand}.extole.io
  variables:
    brand:
      default: yourcompany
      description: Your Extole client subdomain (e.g. 'mycompany' for mycompany.extole.io)
security:
- HEADER: []
- QUERY: []
- COOKIE: []
tags:
- name: Components Settings
paths:
  /v1/components/{component_id}/settings:
    get:
      description: Returns all settings for the specified component.
      operationId: listComponentSettings
      parameters:
      - in: path
        name: component_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/CampaignComponentSettingResponse'
                type: array
          description: Successful response
        '400':
          content:
            application/json:
              examples:
                binding_error:
                  $ref: '#/components/examples/binding_error'
                campaign_component_not_found:
                  $ref: '#/components/examples/campaign_component_not_found'
                component_not_found:
                  $ref: '#/components/examples/component_not_found'
                component_owner_not_supported:
                  $ref: '#/components/examples/component_owner_not_supported'
                component_state_not_supported:
                  $ref: '#/components/examples/component_state_not_supported'
                invalid_json:
                  $ref: '#/components/examples/invalid_json'
                invalid_parameter:
                  $ref: '#/components/examples/invalid_parameter'
                invalid_setting_filter:
                  $ref: '#/components/examples/invalid_setting_filter'
                missing_request_body:
                  $ref: '#/components/examples/missing_request_body'
                settings_build_failed:
                  $ref: '#/components/examples/settings_build_failed'
                unknown_source_clients:
                  $ref: '#/components/examples/unknown_source_clients'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              examples:
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unauthorized
        '402':
          content:
            application/json:
              examples:
                payment_required:
                  $ref: '#/components/examples/payment_required'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Payment Required
        '403':
          content:
            application/json:
              examples:
                access_denied:
                  $ref: '#/components/examples/access_denied'
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
                missing_access_token:
                  $ref: '#/components/examples/missing_access_token'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Forbidden
        '415':
          content:
            application/json:
              examples:
                unsupported_media_type:
                  $ref: '#/components/examples/unsupported_media_type'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unsupported Media Type
        '429':
          content:
            application/json:
              examples:
                too_many_requests:
                  $ref: '#/components/examples/too_many_requests'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Too Many Requests
      summary: List component settings
      tags:
      - Components Settings
      x-extole-bundle: management
      x-extole-visibility: visible
    post:
      description: Adds a new named configuration setting to the specified component. Returns the created setting.
      operationId: createComponentSetting
      parameters:
      - in: path
        name: component_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            example:
              description: description
              display_name: display_name
              name: name
              priority: '10'
              source: INHERITED
              tags:
              - tag
              type: ADMIN_ICON
              values:
                values_key: {}
            schema:
              $ref: '#/components/schemas/CampaignComponentSettingRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignComponentSettingResponse'
          description: Successful response
        '400':
          content:
            application/json:
              examples:
                binding_error:
                  $ref: '#/components/examples/binding_error'
                campaign_build_failed:
                  $ref: '#/components/examples/campaign_build_failed'
                campaign_component_not_found:
                  $ref: '#/components/examples/campaign_component_not_found'
                campaign_concurrent_update:
                  $ref: '#/components/examples/campaign_concurrent_update'
                campaign_has_pending_changes:
                  $ref: '#/components/examples/campaign_has_pending_changes'
                campaign_locked:
                  $ref: '#/components/examples/campaign_locked'
                campaign_stale_version:
                  $ref: '#/components/examples/campaign_stale_version'
                campaign_version_malformed:
                  $ref: '#/components/examples/campaign_version_malformed'
                component_asset_content_length_out_of_range:
                  $ref: '#/components/examples/component_asset_content_length_out_of_range'
                component_asset_content_missing:
                  $ref: '#/components/examples/component_asset_content_missing'
                component_asset_content_upload_error:
                  $ref: '#/components/examples/component_asset_content_upload_error'
                component_asset_description_length_out_of_range:
                  $ref: '#/components/examples/component_asset_description_length_out_of_range'
                component_asset_filename_contains_illegal_character:
                  $ref: '#/components/examples/component_asset_filename_contains_illegal_character'
                component_asset_filename_length_out_of_range:
                  $ref: '#/components/examples/component_asset_filename_length_out_of_range'
                component_asset_filename_missing:
                  $ref: '#/components/examples/component_asset_filename_missing'
                component_asset_name_contains_illegal_character:
                  $ref: '#/components/examples/component_asset_name_contains_illegal_character'
                component_asset_name_duplicated:
                  $ref: '#/components/examples/component_asset_name_duplicated'
                component_asset_name_length_out_of_range:
                  $ref: '#/components/examples/component_asset_name_length_out_of_range'
                component_asset_name_missing:
                  $ref: '#/components/examples/component_asset_name_missing'
                component_id_not_accessible:
                  $ref: '#/components/examples/component_id_not_accessible'
                component_not_found:
                  $ref: '#/components/examples/component_not_found'
                component_owner_not_supported:
                  $ref: '#/components/examples/component_owner_not_supported'
                component_state_not_supported:
                  $ref: '#/components/examples/component_state_not_supported'
                controller_state_misconfiguration:
                  $ref: '#/components/examples/controller_state_misconfiguration'
                date_invalid:
                  $ref: '#/components/examples/date_invalid'
                default_key_not_allowed:
                  $ref: '#/components/examples/default_key_not_allowed'
                display_name_has_illegal_character:
                  $ref: '#/components/examples/display_name_has_illegal_character'
                expression_invalid_syntax:
                  $ref: '#/components/examples/expression_invalid_syntax'
                invalid_campaign_id:
                  $ref: '#/components/examples/invalid_campaign_id'
                invalid_campaign_state:
                  $ref: '#/components/examples/invalid_campaign_state'
                invalid_campaign_version:
                  $ref: '#/components/examples/invalid_campaign_version'
                invalid_json:
                  $ref: '#/components/examples/invalid_json'
                invalid_parameter:
                  $ref: '#/components/examples/invalid_parameter'
                invalid_setting_filter:
                  $ref: '#/components/examples/invalid_setting_filter'
                invalid_translatable_value:
                  $ref: '#/components/examples/invalid_translatable_value'
                lock_missing_lock_types:
                  $ref: '#/components/examples/lock_missing_lock_types'
                missing_request_body:
                  $ref: '#/components/examples/missing_request_body'
                multiple_components_installed_into_single_socket:
                  $ref: '#/components/examples/multiple_components_installed_into_single_socket'
                non_translatable_variable_can_not_be_updated:
                  $ref: '#/components/examples/non_translatable_variable_can_not_be_updated'
                rebuild_campaigns_build_failed:
                  $ref: '#/components/examples/rebuild_campaigns_build_failed'
                reward_supplier_id_list_invalid_configuration:
                  $ref: '#/components/examples/reward_supplier_id_list_invalid_configuration'
                setting_batch_update_missing_request:
                  $ref: '#/components/examples/setting_batch_update_missing_request'
                setting_display_name_length_out_of_range:
                  $ref: '#/components/examples/setting_display_name_length_out_of_range'
                setting_filter_component_facet_name_missing:
                  $ref: '#/components/examples/setting_filter_component_facet_name_missing'
                setting_filter_component_facet_value_missing:
                  $ref: '#/components/examples/setting_filter_component_facet_value_missing'
                setting_filter_component_type_missing:
                  $ref: '#/components/examples/setting_filter_component_type_missing'
                setting_filter_expression_evaluation_failed:
                  $ref: '#/components/examples/setting_filter_expression_evaluation_failed'
                setting_filter_invalid_component_facet:
                  $ref: '#/components/examples/setting_filter_invalid_component_facet'
                setting_filter_invalid_component_type:
                  $ref: '#/components/examples/setting_filter_invalid_component_type'
                setting_name_duplicated:
                  $ref: '#/components/examples/setting_name_duplicated'
                setting_name_length_out_of_range:
                  $ref: '#/components/examples/setting_name_length_out_of_range'
                setting_name_missing:
                  $ref: '#/components/examples/setting_name_missing'
                setting_name_reserved:
                  $ref: '#/components/examples/setting_name_reserved'
                setting_validation_exception:
                  $ref: '#/components/examples/setting_validation_exception'
                settings_build_failed:
                  $ref: '#/components/examples/settings_build_failed'
                socket_missing_required_parameter:
                  $ref: '#/components/examples/socket_missing_required_parameter'
                tag_length_out_of_range:
                  $ref: '#/components/examples/tag_length_out_of_range'
                unavailable_referenced_variable:
                  $ref: '#/components/examples/unavailable_referenced_variable'
                unknown_source_clients:
                  $ref: '#/components/examples/unknown_source_clients'
                unlock_missing_lock_types:
                  $ref: '#/components/examples/unlock_missing_lock_types'
                variable_circular_reference:
                  $ref: '#/components/examples/variable_circular_reference'
                variable_description_length_out_of_range:
                  $ref: '#/components/examples/variable_description_length_out_of_range'
                variable_value_invalid_type:
                  $ref: '#/components/examples/variable_value_invalid_type'
                variable_value_key_length_out_of_range:
                  $ref: '#/components/examples/variable_value_key_length_out_of_range'
                variable_value_missing:
                  $ref: '#/components/examples/variable_value_missing'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              examples:
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unauthorized
        '402':
          content:
            application/json:
              examples:
                payment_required:
                  $ref: '#/components/examples/payment_required'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Payment Required
        '403':
          content:
            application/json:
              examples:
                access_denied:
                  $ref: '#/components/examples/access_denied'
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
                missing_access_token:
                  $ref: '#/components/examples/missing_access_token'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Forbidden
        '415':
          content:
            application/json:
              examples:
                unsupported_media_type:
                  $ref: '#/components/examples/unsupported_media_type'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unsupported Media Type
        '429':
          content:
            application/json:
              examples:
                too_many_requests:
                  $ref: '#/components/examples/too_many_requests'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Too Many Requests
      summary: Create a component setting
      tags:
      - Components Settings
      x-extole-bundle: management
      x-extole-visibility: visible
    put:
      description: Applies a batch of setting value updates across the component in one request.
      operationId: batchUpdateComponentSettings
      parameters:
      - in: path
        name: component_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            example:
              settings:
                settings_key:
                  description: description
                  display_name: display_name
                  name: name
                  priority: '10'
                  source: INHERITED
                  tags:
                  - tag
                  type: ADMIN_ICON
                  values:
                    values_key: {}
            schema:
              $ref: '#/components/schemas/ComponentSettingBatchUpdateRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/CampaignComponentSettingResponse'
                type: array
          description: Successful response
        '400':
          content:
            application/json:
              examples:
                binding_error:
                  $ref: '#/components/examples/binding_error'
                campaign_build_failed:
                  $ref: '#/components/examples/campaign_build_failed'
                campaign_component_not_found:
                  $ref: '#/components/examples/campaign_component_not_found'
                campaign_concurrent_update:
                  $ref: '#/components/examples/campaign_concurrent_update'
                campaign_has_pending_changes:
                  $ref: '#/components/examples/campaign_has_pending_changes'
                campaign_locked:
                  $ref: '#/components/examples/campaign_locked'
                campaign_stale_version:
                  $ref: '#/components/examples/campaign_stale_version'
                campaign_version_malformed:
                  $ref: '#/components/examples/campaign_version_malformed'
                component_asset_content_length_out_of_range:
                  $ref: '#/components/examples/component_asset_content_length_out_of_range'
                component_asset_content_missing:
                  $ref: '#/components/examples/component_asset_content_missing'
                component_asset_content_upload_error:
                  $ref: '#/components/examples/component_asset_content_upload_error'
                component_asset_description_length_out_of_range:
                  $ref: '#/components/examples/component_asset_description_length_out_of_range'
                component_asset_filename_contains_illegal_character:
                  $ref: '#/components/examples/component_asset_filename_contains_illegal_character'
                component_asset_filename_length_out_of_range:
                  $ref: '#/components/examples/component_asset_filename_length_out_of_range'
                component_asset_filename_missing:
                  $ref: '#/components/examples/component_asset_filename_missing'
                component_asset_name_contains_illegal_character:
                  $ref: '#/components/examples/component_asset_name_contains_illegal_character'
                component_asset_name_duplicated:
                  $ref: '#/components/examples/component_asset_name_duplicated'
                component_asset_name_length_out_of_range:
                  $ref: '#/components/examples/component_asset_name_length_out_of_range'
                component_asset_name_missing:
                  $ref: '#/components/examples/component_asset_name_missing'
                component_id_not_accessible:
                  $ref: '#/components/examples/component_id_not_accessible'
                component_not_found:
                  $ref: '#/components/examples/component_not_found'
                component_owner_not_supported:
                  $ref: '#/components/examples/component_owner_not_supported'
                component_state_not_supported:
                  $ref: '#/components/examples/component_state_not_supported'
                controller_state_misconfiguration:
                  $ref: '#/components/examples/controller_state_misconfiguration'
                date_invalid:
                  $ref: '#/components/examples/date_invalid'
                default_key_not_allowed:
                  $ref: '#/components/examples/default_key_not_allowed'
                display_name_has_illegal_character:
                  $ref: '#/components/examples/display_name_has_illegal_character'
                expression_invalid_syntax:
                  $ref: '#/components/examples/expression_invalid_syntax'
                invalid_campaign_id:
                  $ref: '#/components/examples/invalid_campaign_id'
                invalid_campaign_state:
                  $ref: '#/components/examples/invalid_campaign_state'
                invalid_campaign_version:
                  $ref: '#/components/examples/invalid_campaign_version'
                invalid_json:
                  $ref: '#/components/examples/invalid_json'
                invalid_parameter:
                  $ref: '#/components/examples/invalid_parameter'
                invalid_setting_filter:
                  $ref: '#/components/examples/invalid_setting_filter'
                invalid_translatable_value:
                  $ref: '#/components/examples/invalid_translatable_value'
                lock_missing_lock_types:
                  $ref: '#/components/examples/lock_missing_lock_types'
                missing_request_body:
                  $ref: '#/components/examples/missing_request_body'
                multiple_components_installed_into_single_socket:
                  $ref: '#/components/examples/multiple_components_installed_into_single_socket'
                non_translatable_variable_can_not_be_updated:
                  $ref: '#/components/examples/non_translatable_variable_can_not_be_updated'
                rebuild_campaigns_build_failed:
                  $ref: '#/components/examples/rebuild_campaigns_build_failed'
                reward_supplier_id_list_invalid_configuration:
                  $ref: '#/components/examples/reward_supplier_id_list_invalid_configuration'
                setting_batch_update_missing_request:
                  $ref: '#/components/examples/setting_batch_update_missing_request'
                setting_display_name_length_out_of_range:
                  $ref: '#/components/examples/setting_display_name_length_out_of_range'
                setting_filter_component_facet_name_missing:
                  $ref: '#/components/examples/setting_filter_component_facet_name_missing'
                setting_filter_component_facet_value_missing:
                  $ref: '#/components/examples/setting_filter_component_facet_value_missing'
                setting_filter_component_type_missing:
                  $ref: '#/components/examples/setting_filter_component_type_missing'
                setting_filter_expression_evaluation_failed:
                  $ref: '#/components/examples/setting_filter_expression_evaluation_failed'
                setting_filter_invalid_component_facet:
                  $ref: '#/components/examples/setting_filter_invalid_component_facet'
                setting_filter_invalid_component_type:
                  $ref: '#/components/examples/setting_filter_invalid_component_type'
                setting_name_duplicated:
                  $ref: '#/components/examples/setting_name_duplicated'
                setting_name_length_out_of_range:
                  $ref: '#/components/examples/setting_name_length_out_of_range'
                setting_name_missing:
                  $ref: '#/components/examples/setting_name_missing'
                setting_name_reserved:
                  $ref: '#/components/examples/setting_name_reserved'
                setting_not_found:
                  $ref: '#/components/examples/setting_not_found'
                setting_validation_exception:
                  $ref: '#/components/examples/setting_validation_exception'
                settings_build_failed:
                  $ref: '#/components/examples/settings_build_failed'
                socket_missing_required_parameter:
                  $ref: '#/components/examples/socket_missing_required_parameter'
                socket_not_found:
                  $ref: '#/components/examples/socket_not_found'
                tag_length_out_of_range:
                  $ref: '#/components/examples/tag_length_out_of_range'
                unavailable_referenced_variable:
                  $ref: '#/components/examples/unavailable_referenced_variable'
                unknown_source_clients:
                  $ref: '#/components/examples/unknown_source_clients'
                unlock_missing_lock_types:
                  $ref: '#/components/examples/unlock_missing_lock_types'
                variable_batch_update_has_duplicated_variable_name:
                  $ref: '#/components/examples/variable_batch_update_has_duplicated_variable_name'
                variable_batch_update_invalid_type:
                  $ref: '#/components/examples/variable_batch_update_invalid_type'
                variable_batch_update_missing_type:
                  $ref: '#/components/examples/variable_batch_update_missing_type'
                variable_circular_reference:
                  $ref: '#/components/examples/variable_circular_reference'
                variable_description_length_out_of_range:
                  $ref: '#/components/examples/variable_description_length_out_of_range'
                variable_value_invalid_type:
                  $ref: '#/components/examples/variable_value_invalid_type'
                variable_value_key_length_out_of_range:
                  $ref: '#/components/examples/variable_value_key_length_out_of_range'
                variable_value_missing:
                  $ref: '#/components/examples/variable_value_missing'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              examples:
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unauthorized
        '402':
          content:
            application/json:
              examples:
                payment_required:
                  $ref: '#/components/examples/payment_required'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Payment Required
        '403':
          content:
            application/json:
              examples:
                access_denied:
                  $ref: '#/components/examples/access_denied'
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
                missing_access_token:
                  $ref: '#/components/examples/missing_access_token'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Forbidden
        '415':
          content:
            application/json:
              examples:
                unsupported_media_type:
                  $ref: '#/components/examples/unsupported_media_type'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unsupported Media Type
        '429':
          content:
            application/json:
              examples:
                too_many_requests:
                  $ref: '#/components/examples/too_many_requests'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Too Many Requests
      summary: Batch update component settings
      tags:
      - Components Settings
      x-extole-bundle: management
      x-extole-visibility: visible
  /v1/components/{component_id}/settings/built:
    get:
      description: Returns all component settings in their fully evaluated runtime form.
      operationId: listBuiltComponentSettings
      parameters:
      - in: path
        name: component_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/BuiltCampaignComponentSettingResponse'
                type: array
          description: Successful response
        '400':
          content:
            application/json:
              examples:
                binding_error:
                  $ref: '#/components/examples/binding_error'
                campaign_build_failed:
                  $ref: '#/components/examples/campaign_build_failed'
                campaign_component_not_found:
                  $ref: '#/components/examples/campaign_component_not_found'
                component_not_found:
                  $ref: '#/components/examples/component_not_found'
                component_owner_not_supported:
                  $ref: '#/components/examples/component_owner_not_supported'
                component_state_not_supported:
                  $ref: '#/components/examples/component_state_not_supported'
                controller_state_misconfiguration:
                  $ref: '#/components/examples/controller_state_misconfiguration'
                expression_invalid_syntax:
                  $ref: '#/components/examples/expression_invalid_syntax'
                invalid_json:
                  $ref: '#/components/examples/invalid_json'
                invalid_parameter:
                  $ref: '#/components/examples/invalid_parameter'
                invalid_setting_filter:
                  $ref: '#/components/examples/invalid_setting_filter'
                missing_request_body:
                  $ref: '#/components/examples/missing_request_body'
                rebuild_campaigns_build_failed:
                  $ref: '#/components/examples/rebuild_campaigns_build_failed'
                settings_build_failed:
                  $ref: '#/components/examples/settings_build_failed'
                unknown_source_clients:
                  $ref: '#/components/examples/unknown_source_clients'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              examples:
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unauthorized
        '402':
          content:
            application/json:
              examples:
                payment_required:
                  $ref: '#/components/examples/payment_required'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Payment Required
        '403':
          content:
            application/json:
              examples:
                access_denied:
                  $ref: '#/components/examples/access_denied'
                method_unauthorized:
                  $ref: '#/components/examples/method_unauthorized'
                missing_access_token:
                  $ref: '#/components/examples/missing_access_token'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Forbidden
        '415':
          content:
            application/json:
              examples:
                unsupported_media_type:
                  $ref: '#/components/examples/unsupported_media_type'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Unsupported Media Type
        '429':
          content:
            application/json:
              examples:
                too_many_requests:
                  $ref: '#/components/examples/too_many_requests'
              schema:
                $ref: '#/components/schemas/RestExceptionResponse'
          description: Too Many Requests
      summary: List built component settings
      tags:
      - Components Settings
      x-extole-bundle: management
      x-extole-visibility: visible
  /v1/components/{component_id}/settings/{setting_name}:
    get:
      description: Returns the component setting for the specified name.
      operationId: getComponentSetting
      parameters:
      - in: path
        n

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