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 Javascript Core Extensions 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: Javascript Core Extensions paths: /v1/extended-cores: get: description: Returns all JavaScript SDK core extensions (extended cores) for the client. Extended cores inject custom JavaScript into the Extole Web SDK's core loader, letting integrators extend SDK behaviour without modifying the page embed code. Set `include_archived=true` to include archived (disabled) extensions in the response. operationId: listExtendedCores parameters: - description: Optional includeArchived filter in: query name: include_archived schema: default: false type: boolean responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/ExtendedCoreResponse' type: array description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' 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 JavaScript SDK core extensions tags: - Javascript Core Extensions x-extole-bundle: management-expert x-extole-visibility: expert post: description: Creates a new extended core definition. Returns the persisted extended core with its server-assigned id. The extension is created in an active state; archive it with `DELETE /v1/extended-cores/{id}` to disable it without deleting it permanently. operationId: createExtendedCore requestBody: content: application/json: example: component_ids: - component_id component_references: - component_id: component_id socket_names: - socket_name enabled: true source_code: source_code schema: $ref: '#/components/schemas/ExtendedCoreCreateRequest' description: ExtendedCoreCreateRequest object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ExtendedCoreResponse' description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' campaign_component_absolute_name_missing: $ref: '#/components/examples/campaign_component_absolute_name_missing' campaign_component_description_out_of_range: $ref: '#/components/examples/campaign_component_description_out_of_range' campaign_component_display_name_contains_illegal_character: $ref: '#/components/examples/campaign_component_display_name_contains_illegal_character' campaign_component_display_name_out_of_range: $ref: '#/components/examples/campaign_component_display_name_out_of_range' campaign_component_id_missing: $ref: '#/components/examples/campaign_component_id_missing' campaign_component_name_already_in_use: $ref: '#/components/examples/campaign_component_name_already_in_use' campaign_component_name_contains_illegal_character: $ref: '#/components/examples/campaign_component_name_contains_illegal_character' campaign_component_name_out_of_range: $ref: '#/components/examples/campaign_component_name_out_of_range' campaign_component_type_validation_failed: $ref: '#/components/examples/campaign_component_type_validation_failed' circular_component_reference: $ref: '#/components/examples/circular_component_reference' component_facets_not_found: $ref: '#/components/examples/component_facets_not_found' excessive_component_reference: $ref: '#/components/examples/excessive_component_reference' extended_core_build_failed: $ref: '#/components/examples/extended_core_build_failed' external_element_is_referenced_by_active_configuration: $ref: '#/components/examples/external_element_is_referenced_by_active_configuration' external_elements_cannot_have_multiple_references: $ref: '#/components/examples/external_elements_cannot_have_multiple_references' invalid_component_installed_into_socket: $ref: '#/components/examples/invalid_component_installed_into_socket' invalid_component_reference: $ref: '#/components/examples/invalid_component_reference' invalid_component_reference_socket_name: $ref: '#/components/examples/invalid_component_reference_socket_name' invalid_external_component_reference: $ref: '#/components/examples/invalid_external_component_reference' invalid_json: $ref: '#/components/examples/invalid_json' invalid_null: $ref: '#/components/examples/invalid_null' invalid_parameter: $ref: '#/components/examples/invalid_parameter' invalid_source_code: $ref: '#/components/examples/invalid_source_code' missing_request_body: $ref: '#/components/examples/missing_request_body' missing_source_code: $ref: '#/components/examples/missing_source_code' orphan_external_component_reference: $ref: '#/components/examples/orphan_external_component_reference' redundant_component_reference: $ref: '#/components/examples/redundant_component_reference' self_component_reference: $ref: '#/components/examples/self_component_reference' 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 JavaScript SDK core extension tags: - Javascript Core Extensions x-extole-bundle: management-expert x-extole-visibility: expert /v1/extended-cores/built: get: description: Returns all extended cores in their fully evaluated (built) runtime form, with all evaluatable fields resolved to their current values. Use this when the calling system needs the effective JavaScript payloads rather than the source definitions. Set `include_archived=true` to include archived extensions. operationId: listBuiltExtendedCores parameters: - description: Optional includeArchived filter in: query name: include_archived schema: default: false type: boolean responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/BuiltExtendedCoreResponse' type: array description: Successful response '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' 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 JavaScript SDK core extensions tags: - Javascript Core Extensions x-extole-bundle: management-expert x-extole-visibility: expert /v1/extended-cores/{extendedCoreId}: get: description: Returns the source definition of the supplied extended core, including its JavaScript payload, conditions, and lifecycle state. Returns `404 extended_core_not_found` if the id does not exist or is not accessible. operationId: getExtendedCore parameters: - description: The id of the extended core to be retrieved. in: path name: extendedCoreId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ExtendedCoreResponse' description: JavaScript SDK core extension source definition with build-time enabled state, source code, and component references. '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' 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 '404': content: application/json: examples: extended_core_not_found: $ref: '#/components/examples/extended_core_not_found' description: Extended core was not found. The supplied id does not match any extended core accessible to the calling client. '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: Get a JavaScript SDK core extension tags: - Javascript Core Extensions x-extole-bundle: management-expert x-extole-visibility: expert put: description: Applies a partial update to the supplied extended core. Only the fields present in the body are changed; omitted fields are left intact. Returns the persisted extended core after the update. Returns `404 extended_core_not_found` if the id does not exist. operationId: updateExtendedCore parameters: - description: The id of the extended core to be updated. in: path name: extendedCoreId required: true schema: type: string requestBody: content: application/json: example: component_ids: - component_id component_references: - component_id: component_id socket_names: - socket_name enabled: true source_code: source_code schema: $ref: '#/components/schemas/ExtendedCoreUpdateRequest' description: ExtendedCoreUpdateRequest object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ExtendedCoreResponse' description: JavaScript SDK core extension source definition with build-time enabled state, source code, and component references. '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' campaign_component_absolute_name_missing: $ref: '#/components/examples/campaign_component_absolute_name_missing' campaign_component_description_out_of_range: $ref: '#/components/examples/campaign_component_description_out_of_range' campaign_component_display_name_contains_illegal_character: $ref: '#/components/examples/campaign_component_display_name_contains_illegal_character' campaign_component_display_name_out_of_range: $ref: '#/components/examples/campaign_component_display_name_out_of_range' campaign_component_id_missing: $ref: '#/components/examples/campaign_component_id_missing' campaign_component_name_already_in_use: $ref: '#/components/examples/campaign_component_name_already_in_use' campaign_component_name_contains_illegal_character: $ref: '#/components/examples/campaign_component_name_contains_illegal_character' campaign_component_name_out_of_range: $ref: '#/components/examples/campaign_component_name_out_of_range' campaign_component_type_validation_failed: $ref: '#/components/examples/campaign_component_type_validation_failed' circular_component_reference: $ref: '#/components/examples/circular_component_reference' component_facets_not_found: $ref: '#/components/examples/component_facets_not_found' excessive_component_reference: $ref: '#/components/examples/excessive_component_reference' extended_core_build_failed: $ref: '#/components/examples/extended_core_build_failed' external_element_is_referenced_by_active_configuration: $ref: '#/components/examples/external_element_is_referenced_by_active_configuration' external_elements_cannot_have_multiple_references: $ref: '#/components/examples/external_elements_cannot_have_multiple_references' invalid_component_installed_into_socket: $ref: '#/components/examples/invalid_component_installed_into_socket' invalid_component_reference: $ref: '#/components/examples/invalid_component_reference' invalid_component_reference_socket_name: $ref: '#/components/examples/invalid_component_reference_socket_name' invalid_external_component_reference: $ref: '#/components/examples/invalid_external_component_reference' invalid_json: $ref: '#/components/examples/invalid_json' invalid_null: $ref: '#/components/examples/invalid_null' invalid_parameter: $ref: '#/components/examples/invalid_parameter' invalid_source_code: $ref: '#/components/examples/invalid_source_code' missing_request_body: $ref: '#/components/examples/missing_request_body' missing_source_code: $ref: '#/components/examples/missing_source_code' orphan_external_component_reference: $ref: '#/components/examples/orphan_external_component_reference' redundant_component_reference: $ref: '#/components/examples/redundant_component_reference' self_component_reference: $ref: '#/components/examples/self_component_reference' 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 '404': content: application/json: examples: extended_core_not_found: $ref: '#/components/examples/extended_core_not_found' description: Extended core was not found. The supplied id does not match any extended core accessible to the calling client. '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: Update a JavaScript SDK core extension tags: - Javascript Core Extensions x-extole-bundle: management-expert x-extole-visibility: expert delete: description: Archives (soft-deletes) the supplied extended core. The extension is removed from the SDK core loader immediately but its definition is retained. Restore it with `POST /v1/extended-cores/{id}/unarchive`. Returns the updated extended core. Returns `404 extended_core_not_found` if the id does not exist. operationId: archiveExtendedCore parameters: - description: The id of the extended core to be archived. in: path name: extendedCoreId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ExtendedCoreResponse' description: Archived JavaScript SDK core extension source definition. '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' 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 '404': content: application/json: examples: extended_core_not_found: $ref: '#/components/examples/extended_core_not_found' description: Extended core was not found. The supplied id does not match any extended core accessible to the calling client. '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: Archive a JavaScript SDK core extension tags: - Javascript Core Extensions x-extole-bundle: management-expert x-extole-visibility: expert /v1/extended-cores/{extendedCoreId}/built: get: description: Returns the fully evaluated (built) runtime form of the supplied extended core, with all evaluatable fields resolved to their current values. Returns `404 extended_core_not_found` if the id does not exist or is not accessible. operationId: getBuiltExtendedCore parameters: - description: The id of the extended core to be retrieved. in: path name: extendedCoreId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/BuiltExtendedCoreResponse' description: Built JavaScript SDK core extension with evaluated runtime values used by the SDK core loader. '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' 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 '404': content: application/json: examples: extended_core_not_found: $ref: '#/components/examples/extended_core_not_found' description: Extended core was not found. The supplied id does not match any extended core accessible to the calling client. '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: Get a built JavaScript SDK core extension tags: - Javascript Core Extensions x-extole-bundle: management-expert x-extole-visibility: expert /v1/extended-cores/{extendedCoreId}/unarchive: post: description: Restores a previously archived extended core and re-inserts it into the SDK core loader. Returns the restored extended core. Returns `404 extended_core_not_found` if the id does not exist. operationId: unarchiveExtendedCore parameters: - description: The id of the extended core to be unarchived. in: path name: extendedCoreId required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ExtendedCoreResponse' description: Restored JavaScript SDK core extension source definition. '400': content: application/json: examples: binding_error: $ref: '#/components/examples/binding_error' invalid_json: $ref: '#/components/examples/invalid_json' invalid_parameter: $ref: '#/components/examples/invalid_parameter' missing_request_body: $ref: '#/components/examples/missing_request_body' 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 '404': content: application/json: examples: extended_core_not_found: $ref: '#/components/examples/extended_core_not_found' description: Extended core was not found. The supplied id does not match any extended core accessible to the calling client. '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: Unarchive a JavaScript SDK core extension tags: - Javascript Core Extensions x-extole-bundle: management-expert x-extole-visibility: expert components: examples: invalid_json: summary: invalid_json value: code: invalid_json http_status_code: 400 message: JSON is invalid parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 campaign_component_id_missing: summary: campaign_component_id_missing value: code: campaign_component_id_missing http_status_code: 400 message: Campaign component id is missing parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 self_component_reference: summary: self_component_reference value: code: self_component_reference http_status_code: 400 message: Self campaign component reference is not allowed parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 external_elements_cannot_have_multiple_references: summary: external_elements_cannot_have_multiple_references value: code: external_elements_cannot_have_multiple_references http_status_code: 400 message: External elements cannot have multiple references parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 invalid_component_reference_socket_name: summary: invalid_component_reference_socket_name value: code: invalid_component_reference_socket_name http_status_code: 400 message: Invalid component reference socket name parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 orphan_external_component_reference: summary: orphan_external_component_reference value: code: orphan_external_component_reference http_status_code: 400 message: Orphan external referenced campaign component parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 missing_access_token: summary: missing_access_token value: code: missing_access_token http_status_code: 403 message: No access_token was provided with this request. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 payment_required: summary: payment_required value: code: payment_required http_status_code: 402 message: The access_token provided is associated with an unpaid account. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 campaign_component_display_name_contains_illegal_character: summary: campaign_component_display_name_contains_illegal_character value: code: campaign_component_display_name_contains_illegal_character http_status_code: 400 message: Campaign component display name can only contain alphanumeric, dash, underscore, whitespace, asterisk, hash, dollar characters parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 extended_core_not_found: summary: extended_core_not_found value: code: extended_core_not_found http_status_code: 404 message: Extended core not found parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 invalid_null: summary: invalid_null value: code: invalid_null http_status_code: 400 message: The attribute may be omitted but not nullified parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 unsupported_media_type: summary: unsupported_media_type value: code: unsupported_media_type http_status_code: 415 message: Request had an unsupported or no media type parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 method_unauthorized: summary: method_unauthorized value: code: method_unauthorized http_status_code: 401 message: Unauthorized access to this endpoint parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 invalid_external_component_reference: summary: invalid_external_component_reference value: code: invalid_external_component_reference http_status_code: 400 message: Unknown external referenced campaign component parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 excessive_component_reference: summary: excessive_component_reference value: code: excessive_component_reference http_status_code: 400 message: Root campaign component may have at most one reference parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 campaign_component_name_already_in_use: summary: campaign_component_name_already_in_use value: code: campaign_component_name_already_in_use http_status_code: 400 message: Campaign component name is already used by another component parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 invalid_component_installed_into_socket: summary: invalid_component_installed_into_socket value: code: invalid_component_installed_into_socket http_status_code: 400 message: Invalid component installed into socket parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 campaign_component_name_out_of_range: summary: campaign_component_name_out_of_range value: code: campaign_component_name_out_of_range http_status_code: 400 message: Campaign component name length is out of range parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 invalid_component_reference: summary: invalid_component_reference value: code: invalid_component_reference http_status_code: 400 message: Unknown referenced campaign component parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 campaign_component_type_validation_failed: summary: campaign_component_type_validation_failed value: code: campaign_component_type_validation_failed http_status_code: 400 message: Campaign component type validation failed parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 campaign_component_description_out_of_range: summary: campaign_component_description_out_of_range value: code: campaign_component_description_out_of_range http_status_code: 400 message: Campaign component description length is out of range parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 redundant_component_reference: summary: redundant_component_reference value: code: redundant_component_reference http_status_code: 400 message: Same reference defined multiple times parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 missing_request_body: summary: missing_request_body value: code: missing_request_body http_status_code: 400 message: Missing request body parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 extended_core_build_failed: summary: extended_core_build_failed value: code: extended_core_build_failed http_status_code: 400 message: Extended core build failed parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 campaign_component_name_contains_illegal_character: summary: campaign_component_name_contains_illegal_character value: code: campaign_component_name_contains_illegal_character http_status_code: 400 message: Campaign component name can only contain alphanumeric, dash and underscore characters parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 circular_component_reference: summary: circular_component_reference value: code: circular_component_reference http_status_code: 400 message: Circular campaign component reference is not allowed parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 binding_error: summary: binding_error value: code: binding_error http_status_code: 400 message: Argument is not of the expected type parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 access_denied: summary: access_denied value: code: access_denied http_status_code: 403 message: The access_token provided is not permitted to access the specified resource. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 component_facets_not_found: summary: component_facets_not_found value: code: component_facets_not_found http_status_code: 400 message: Component facets not found parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 external_element_is_referenced_by_active_configuration: summary: external_element_is_referenced_by_active_configuration value: code: external_element_is_referenced_by_active_configuration http_status_code: 400 message: External element is referenced by active configuration parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 too_many_requests: summary: too_many_requests value: code: too_many_requests http_status_code: 429 message: The server is unable to process your request at the moment, please retry later. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 invalid_parameter: summary: invalid_parameter value: code: invalid_parameter http_status_code: 400 message: Parameter is invalid. parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 campaign_component_absolute_name_missing: summary: campaign_component_absolute_name_missing value: code: campaign_component_absolute_name_missing http_status_code: 400 message: Campaign component absolute name is missing parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 invalid_source_code: summary: invalid_source_code value: code: invalid_source_code http_status_code: 400 message: Invalid JavaScript source code parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 missing_source_code: summary: missing_source_code value: code: missing_source_code http_status_code: 400 message: Source code is required parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 campaign_component_display_name_out_of_range: summary: campaign_component_display_name_out_of_range value: code: campaign_component_display_name_out_of_range http_status_code: 400 message: Campaign component display name length is out of range parameters: {} unique_id: 00000000-0000-0000-0000-000000000000 schemas: SourceCodeInExtendedCoreUpdateRequest: description: Choose between static or dynamic source code oneOf: - allOf: - nullable: true type: string - not: anyOf: - pattern: ^handlebars@buildtime:.* type: string - pattern: ^javascript@buildtime:.* type: string type: string description: Static source code title: Static Value - description: Handlebars expression with [ExtendedCoreBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts). example: handlebars@buildtime:{{sourceCode}} externalDocs: description: ExtendedCoreBuildtimeContext url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts pattern: ^handlebars@buildtime:.* title: Buildtime - Handlebars type: string - description: Javascript expression with [ExtendedCoreBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts). example: javascript@buildtime:function() { return context.getVariableContext().get('sourceCode');} externalDocs: description: ExtendedCoreBuildtimeContext url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts pattern: ^javascript@buildtime:.* title: Buildtime - Javascript type: string BuiltExtendedCoreResponse: description: Built JavaScript SDK core extension with evaluated runtime values. properties: component_ids: items: type: string type: array component_references: items: $ref: '#/components/schemas/ComponentReferenceResponse' type: array created_date: $ref: '#/components/schemas/ZonedDateTime' enabled: description: Whether the built extension is active in the SDK core loader. type: boolean id: description: Unique identifier for the JavaScript SDK core extension. readOnly: true type: string source_code: description: Evaluated JavaScript source code injected into the SDK. type: string updated_date: $ref: '#/components/schemas/ZonedDateTime' required: - component_ids - component_references - created_date - enabled - id - source_code - updated_date type: object ComponentReferenceRequest: properties: component_id: type: string socket_names: items: type: string type: array type: object ExtendedCoreResponse: description: JavaScript SDK core extension source definition with build-time expressions. properties: component_ids: items: type: string type: array component_references: items: $ref: '#/components/schemas/ComponentReferenceResponse' type: array created_date: $ref: '#/components/schemas/ZonedDateTime' enabled: $ref: '#/components/schemas/EnabledInExtendedCoreResponse' id: description: Unique identifier for the JavaScript SDK core extension. readOnly: true type: string source_code: $ref: '#/components/schemas/SourceCodeInExtendedCoreResponse' updated_date: $ref: '#/components/schemas/ZonedDateTime' required: - component_ids - component_references - created_date - enabled - id - source_code - updated_date type: object EnabledInExtendedCoreResponse: description: Build-time expression that controls whether the extension is active. oneOf: - description: Literal enabled title: Static Value type: boolean - description: Handlebars expression with [ExtendedCoreBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts). example: handlebars@buildtime:{{enabled}} externalDocs: description: ExtendedCoreBuildtimeContext url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts pattern: ^handlebars@buildtime:.* title: Buildtime - Handlebars type: string - description: Javascript expression with [ExtendedCoreBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts). example: javascript@buildtime:function() { return context.getVariableContext().get('enabled');} externalDocs: description: ExtendedCoreBuildtimeContext url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts pattern: ^javascript@buildtime:.* title: Buildtime - Javascript type: string EnabledInExtendedCoreUpdateRequest: description: Choose between static or dynamic enabled oneOf: - description: Static enabled nullable: true title: Static Value type: boolean - description: Handlebars expression with [ExtendedCoreBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts). example: handlebars@buildtime:{{enabled}} externalDocs: description: ExtendedCoreBuildtimeContext url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts pattern: ^handlebars@buildtime:.* title: Buildtime - Handlebars type: string - description: Javascript expression with [ExtendedCoreBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts). example: javascript@buildtime:function() { return context.getVariableContext().get('enabled');} externalDocs: description: ExtendedCoreBuildtimeContext url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts pattern: ^javascript@buildtime:.* title: Buildtime - Javascript type: string SourceCodeInExtendedCoreCreateRequest: description: JavaScript source code for the extended core. oneOf: - allOf: - type: string - not: anyOf: - pattern: ^handlebars@buildtime:.* type: string - pattern: ^javascript@buildtime:.* type: string type: string description: Static source code title: Static Value - description: Handlebars expression with [ExtendedCoreBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts). example: handlebars@buildtime:{{sourceCode}} externalDocs: description: ExtendedCoreBuildtimeContext url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts pattern: ^handlebars@buildtime:.* title: Buildtime - Handlebars type: string - description: Javascript expression with [ExtendedCoreBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts). example: javascript@buildtime:function() { return context.getVariableContext().get('sourceCode');} externalDocs: description: ExtendedCoreBuildtimeContext url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts pattern: ^javascript@buildtime:.* title: Buildtime - Javascript type: string SourceCodeInExtendedCoreResponse: description: Build-time expression that resolves to the JavaScript source code injected into the SDK. oneOf: - allOf: - type: string - not: anyOf: - pattern: ^handlebars@buildtime:.* type: string - pattern: ^javascript@buildtime:.* type: string type: string description: Literal source code title: Static Value - description: Handlebars expression with [ExtendedCoreBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts). example: handlebars@buildtime:{{sourceCode}} externalDocs: description: ExtendedCoreBuildtimeContext url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts pattern: ^handlebars@buildtime:.* title: Buildtime - Handlebars type: string - description: Javascript expression with [ExtendedCoreBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts). example: javascript@buildtime:function() { return context.getVariableContext().get('sourceCode');} externalDocs: description: ExtendedCoreBuildtimeContext url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts pattern: ^javascript@buildtime:.* title: Buildtime - Javascript type: string ExtendedCoreUpdateRequest: description: Body of a `PUT /v1/extended-cores/{extendedCoreId}` request. properties: component_ids: items: type: string type: array component_references: items: $ref: '#/components/schemas/ComponentReferenceRequest' type: array enabled: $ref: '#/components/schemas/EnabledInExtendedCoreUpdateRequest' source_code: $ref: '#/components/schemas/SourceCodeInExtendedCoreUpdateRequest' type: object ExtendedCoreCreateRequest: description: Body of a `POST /v1/extended-cores` request. properties: component_ids: items: type: string type: array component_references: items: $ref: '#/components/schemas/ComponentReferenceRequest' type: array enabled: $ref: '#/components/schemas/EnabledInExtendedCoreCreateRequest' source_code: $ref: '#/components/schemas/SourceCodeInExtendedCoreCreateRequest' required: - source_code type: object EnabledInExtendedCoreCreateRequest: description: Whether the extended core is enabled. oneOf: - description: Static enabled title: Static Value type: boolean - description: Handlebars expression with [ExtendedCoreBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts). example: handlebars@buildtime:{{enabled}} externalDocs: description: ExtendedCoreBuildtimeContext url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts pattern: ^handlebars@buildtime:.* title: Buildtime - Handlebars type: string - description: Javascript expression with [ExtendedCoreBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts). example: javascript@buildtime:function() { return context.getVariableContext().get('enabled');} externalDocs: description: ExtendedCoreBuildtimeContext url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/extended/core/built/ExtendedCoreBuildtimeContext.d.ts pattern: ^javascript@buildtime:.* title: Buildtime - Javascript type: string ZonedDateTime: description: '[RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) or [RFC 9557](https://datatracker.ietf.org/doc/html/rfc9557#section-4) date-time with a numeric [UTC offset](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and an optional [IANA time-zone](https://datatracker.ietf.org/doc/html/rfc9557#section-4) suffix in square brackets. Precision up to milliseconds.' example: '2025-10-24T02:00:00-07:00' pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{1,3})?(Z|[+-](?:[01][0-9]|2[0-3]):[0-5][0-9])(\[[^\]]+\])?$ type: string RestExceptionResponse: description: Represents the API error response properties: code: description: Specific error code for this error type, documented per endpoint type: string http_status_code: description: HTTP status code that was returned with this error, useful if client get response code format: int32 type: integer message: description: User readable English description of the error type: string parameters: additionalProperties: description: Attributes related to the error, varies be error code, documented per endpoint type: object description: Attributes related to the error, varies be error code, documented per endpoint type: object unique_id: description: Unique id associated with this error, useful for discussions with Extole type: string required: - code - http_status_code - message - parameters - unique_id type: object ComponentReferenceResponse: properties: component_id: type: string socket_names: items: type: string type: array type: object securitySchemes: COOKIE: in: cookie name: extole_token type: apiKey HEADER: in: header name: Authorization type: apiKey x-bearer-format: bearer QUERY: in: query name: access_token type: apiKey x-tagGroups: - name: Integration API - Consumer to Extole tags: - Authentication - Content - Email - Events - Persons - Profile Assets - Profiles