Extole Campaign Controllers API
The Campaign Controllers API from Extole — 2 operation(s) for campaign controllers.
The Campaign Controllers API from Extole — 2 operation(s) for campaign controllers.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/extole-campaign-controllers-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
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 Campaign Controllers 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: Campaign Controllers
paths:
/v2/campaigns/{campaignId}{version}/controllers:
get:
description: Returns all controllers for the specified campaign.
operationId: listCampaignControllers
parameters:
- in: path
name: campaignId
required: true
schema:
type: string
- in: path
name: version
required: true
schema:
pattern: (/version/.+)?
type: string
- in: query
name: type
schema:
enum:
- CONTROLLER
- FRONTEND_CONTROLLER
- JOURNEY_ENTRY
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/CampaignStepResponse'
type: array
description: Successful response
'400':
content:
application/json:
examples:
binding_error:
$ref: '#/components/examples/binding_error'
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_version_malformed:
$ref: '#/components/examples/campaign_version_malformed'
date_invalid:
$ref: '#/components/examples/date_invalid'
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'
lock_missing_lock_types:
$ref: '#/components/examples/lock_missing_lock_types'
missing_request_body:
$ref: '#/components/examples/missing_request_body'
unlock_missing_lock_types:
$ref: '#/components/examples/unlock_missing_lock_types'
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 campaign controllers
tags:
- Campaign Controllers
x-extole-bundle: management-expert
x-extole-visibility: expert
post:
description: Adds a new controller to the specified campaign. Controllers orchestrate campaign logic by combining triggers (conditions) with actions (side effects). Returns the created controller with its server-assigned id.
operationId: createCampaignController
parameters:
- in: path
name: campaignId
required: true
schema:
type: string
- in: path
name: version
required: true
schema:
pattern: (/version/.+)?
type: string
requestBody:
content:
application/json:
example:
aliases:
- aliase
component_ids:
- component_id
component_references:
- component_id: component_id
socket_names:
- socket_name
data:
- component_ids:
- component_id
component_references:
- component_id: component_id
socket_names:
- socket_name
default_value: {}
dimension: true
enabled: true
key_type: NONE
name: name
persist_types:
- JOURNEY
scope: CLIENT
value: {}
enabled: true
enabled_on_states:
- ARCHIVED
journey_names:
- journey_name
name: name
scope: CLIENT
selectors:
- BEST_REFERRAL
send_policy: ALL
step_builder: {}
type: CONTROLLER
schema:
$ref: '#/components/schemas/CampaignStepCreateRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignStepResponse'
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_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'
campaign_concurrent_update:
$ref: '#/components/examples/campaign_concurrent_update'
campaign_controller_data_legacy_action_id_step_data_deletion:
$ref: '#/components/examples/campaign_controller_data_legacy_action_id_step_data_deletion'
campaign_controller_duplicate_controller:
$ref: '#/components/examples/campaign_controller_duplicate_controller'
campaign_controller_invalid_enabled_on_state:
$ref: '#/components/examples/campaign_controller_invalid_enabled_on_state'
campaign_controller_missing_event_trigger:
$ref: '#/components/examples/campaign_controller_missing_event_trigger'
campaign_controller_missing_journey_name:
$ref: '#/components/examples/campaign_controller_missing_journey_name'
campaign_controller_name_contains_illegal_character:
$ref: '#/components/examples/campaign_controller_name_contains_illegal_character'
campaign_controller_name_missing:
$ref: '#/components/examples/campaign_controller_name_missing'
campaign_controller_name_out_of_range:
$ref: '#/components/examples/campaign_controller_name_out_of_range'
campaign_controller_name_same_as_a_default_controller_name:
$ref: '#/components/examples/campaign_controller_name_same_as_a_default_controller_name'
campaign_controller_too_many_journey_names:
$ref: '#/components/examples/campaign_controller_too_many_journey_names'
campaign_frontend_controller_duplicate_controller:
$ref: '#/components/examples/campaign_frontend_controller_duplicate_controller'
campaign_has_pending_changes:
$ref: '#/components/examples/campaign_has_pending_changes'
campaign_journey_entry_duplicate_journey_entry:
$ref: '#/components/examples/campaign_journey_entry_duplicate_journey_entry'
campaign_journey_entry_invalid_journey_key_name:
$ref: '#/components/examples/campaign_journey_entry_invalid_journey_key_name'
campaign_journey_entry_invalid_trigger_phase:
$ref: '#/components/examples/campaign_journey_entry_invalid_trigger_phase'
campaign_journey_entry_journey_key_name_invalid_length:
$ref: '#/components/examples/campaign_journey_entry_journey_key_name_invalid_length'
campaign_journey_entry_null_journey_key_name:
$ref: '#/components/examples/campaign_journey_entry_null_journey_key_name'
campaign_journey_entry_null_journey_key_value:
$ref: '#/components/examples/campaign_journey_entry_null_journey_key_value'
campaign_locked:
$ref: '#/components/examples/campaign_locked'
campaign_stale_version:
$ref: '#/components/examples/campaign_stale_version'
campaign_step_data_default_value_expression_length_out_of_range:
$ref: '#/components/examples/campaign_step_data_default_value_expression_length_out_of_range'
campaign_step_data_name_length_out_of_range:
$ref: '#/components/examples/campaign_step_data_name_length_out_of_range'
campaign_step_data_value_expression_length_out_of_range:
$ref: '#/components/examples/campaign_step_data_value_expression_length_out_of_range'
campaign_step_duplicate_data_name:
$ref: '#/components/examples/campaign_step_duplicate_data_name'
campaign_step_missing_data_name:
$ref: '#/components/examples/campaign_step_missing_data_name'
campaign_step_missing_data_value:
$ref: '#/components/examples/campaign_step_missing_data_value'
campaign_version_malformed:
$ref: '#/components/examples/campaign_version_malformed'
circular_component_reference:
$ref: '#/components/examples/circular_component_reference'
component_facets_not_found:
$ref: '#/components/examples/component_facets_not_found'
controller_misconfiguration:
$ref: '#/components/examples/controller_misconfiguration'
controller_name_length_out_of_range:
$ref: '#/components/examples/controller_name_length_out_of_range'
controller_state_misconfiguration:
$ref: '#/components/examples/controller_state_misconfiguration'
date_invalid:
$ref: '#/components/examples/date_invalid'
excessive_component_reference:
$ref: '#/components/examples/excessive_component_reference'
expression_invalid_syntax:
$ref: '#/components/examples/expression_invalid_syntax'
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_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_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_step_alias:
$ref: '#/components/examples/invalid_step_alias'
journey_name_invalid:
$ref: '#/components/examples/journey_name_invalid'
journey_name_length_out_of_range:
$ref: '#/components/examples/journey_name_length_out_of_range'
lock_missing_lock_types:
$ref: '#/components/examples/lock_missing_lock_types'
missing_persist_type_for_step:
$ref: '#/components/examples/missing_persist_type_for_step'
missing_request_body:
$ref: '#/components/examples/missing_request_body'
multiple_keys_not_allowed:
$ref: '#/components/examples/multiple_keys_not_allowed'
name_contains_illegal_character:
$ref: '#/components/examples/name_contains_illegal_character'
not_found_page_forbidden_runtime_expressions:
$ref: '#/components/examples/not_found_page_forbidden_runtime_expressions'
not_found_page_invalid_action:
$ref: '#/components/examples/not_found_page_invalid_action'
null_journey_name:
$ref: '#/components/examples/null_journey_name'
orphan_external_component_reference:
$ref: '#/components/examples/orphan_external_component_reference'
rebuild_campaigns_build_failed:
$ref: '#/components/examples/rebuild_campaigns_build_failed'
redundant_component_reference:
$ref: '#/components/examples/redundant_component_reference'
reserved_name:
$ref: '#/components/examples/reserved_name'
self_component_reference:
$ref: '#/components/examples/self_component_reference'
unlock_missing_lock_types:
$ref: '#/components/examples/unlock_missing_lock_types'
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 campaign controller
tags:
- Campaign Controllers
x-extole-bundle: management-expert
x-extole-visibility: expert
/v2/campaigns/{campaignId}{version}/controllers/built:
get:
description: Returns all campaign controllers in their fully evaluated runtime form.
operationId: listBuiltCampaignControllers
parameters:
- in: path
name: campaignId
required: true
schema:
type: string
- in: path
name: version
required: true
schema:
pattern: (/version/.+)?
type: string
- in: query
name: type
schema:
enum:
- CONTROLLER
- FRONTEND_CONTROLLER
- JOURNEY_ENTRY
type: string
responses:
'200':
content:
application/json:
schema:
items:
$ref: '#/components/schemas/BuiltCampaignStepResponse'
type: array
description: Successful response
'400':
content:
application/json:
examples:
binding_error:
$ref: '#/components/examples/binding_error'
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_version_malformed:
$ref: '#/components/examples/campaign_version_malformed'
date_invalid:
$ref: '#/components/examples/date_invalid'
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'
lock_missing_lock_types:
$ref: '#/components/examples/lock_missing_lock_types'
missing_request_body:
$ref: '#/components/examples/missing_request_body'
unlock_missing_lock_types:
$ref: '#/components/examples/unlock_missing_lock_types'
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 campaign controllers
tags:
- Campaign Controllers
x-extole-bundle: management-expert
x-extole-visibility: expert
components:
schemas:
SlotsInCampaignControllerActionEarnRewardResponse:
description: 'The slots as configured: a literal value, or an expression (type:string) when defined dynamically.'
oneOf:
- description: Literal slots
items:
type: string
title: Static Value
type: array
uniqueItems: true
- description: Handlebars expression with [ControllerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/campaign/ControllerBuildtimeContext.d.ts).
example: handlebars@buildtime:{{slots}}
externalDocs:
description: ControllerBuildtimeContext
url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/campaign/ControllerBuildtimeContext.d.ts
pattern: ^handlebars@buildtime:.*
title: Buildtime - Handlebars
type: string
- description: Javascript expression with [ControllerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/campaign/ControllerBuildtimeContext.d.ts).
example: javascript@buildtime:function() { return context.getVariableContext().get('slots');}
externalDocs:
description: ControllerBuildtimeContext
url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/campaign/ControllerBuildtimeContext.d.ts
pattern: ^javascript@buildtime:.*
title: Buildtime - Javascript
type: string
- description: Handlebars expression with [RewardActionContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/step/action/reward/RewardActionContext.d.ts).
example: handlebars@runtime:{{slots}}
externalDocs:
description: RewardActionContext
url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/step/action/reward/RewardActionContext.d.ts
pattern: ^handlebars@runtime:.*
title: Runtime - Handlebars
type: string
- description: Javascript expression with [RewardActionContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/step/action/reward/RewardActionContext.d.ts).
example: javascript@runtime:function() { return context.get('slots');}
externalDocs:
description: RewardActionContext
url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/step/action/reward/RewardActionContext.d.ts
pattern: ^javascript@runtime:.*
title: Runtime - Javascript
type: string
EventNameInCampaignControllerActionFireAsPersonResponse:
description: 'The event name as configured: a literal value, or an expression (type:string) when defined dynamically.'
oneOf:
- allOf:
- type: string
- not:
anyOf:
- pattern: ^handlebars@buildtime:.*
type: string
- pattern: ^javascript@buildtime:.*
type: string
type: string
description: Literal event name
title: Static Value
- description: Handlebars expression with [ControllerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/campaign/ControllerBuildtimeContext.d.ts).
example: handlebars@buildtime:{{eventName}}
externalDocs:
description: ControllerBuildtimeContext
url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/campaign/ControllerBuildtimeContext.d.ts
pattern: ^handlebars@buildtime:.*
title: Buildtime - Handlebars
type: string
- description: Javascript expression with [ControllerBuildtimeContext](https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/campaign/ControllerBuildtimeContext.d.ts).
example: javascript@buildtime:function() { return context.getVariableContext().get('eventName');}
externalDocs:
description: ControllerBuildtimeContext
url: https://github.com/extole/extole-specification/blob/main/openapi/expression-context/com/extole/api/campaign/ControllerBuildtimeContext.d.ts
pattern: ^javascript@buildtime:.*
title: Buildtime - Javascript
type: string
CampaignControllerActionResponse:
description: Stored campaign controller action definition. Field `enabled` is unevaluated and appears in buildtime-evaluatable form.
discriminator:
mapping:
APPROVE: '#/components/schemas/CampaignControllerActionApproveResponse'
CANCEL_REWARD: '#/components/schemas/CampaignControllerActionCancelRewardResponse'
CREATE_MEMBERSHIP: '#/components/schemas/CampaignControllerActionCreateMembershipResponse'
CREATIVE: '#/components/schemas/CampaignControllerActionCreativeResponse'
DATA_INTELLIGENCE: '#/components/schemas/CampaignControllerActionDataIntelligenceResponse'
DECLINE: '#/components/schemas/CampaignControllerActionDeclineResponse'
DISPLAY: '#/components/schemas/CampaignControllerActionDisplayResponse'
EARN_REWARD: '#/components/schemas/CampaignControllerActionEarnRewardResponse'
EMAIL: '#/components/schemas/CampaignControllerActionEmailResponse'
EXPRESSION: '#/components/schemas/CampaignControllerActionExpressionResponse'
FIRE_AS_PERSON: '#/components/schemas/CampaignControllerActionFireAsPersonResponse'
FULFILL_REWARD: '#/components/schemas/CampaignControllerActionFulfillRewardResponse'
INCENTIVIZE: '#/components/schemas/CampaignControllerActionIncentivizeResponse'
INCENTIVIZE_STATUS_UPDATE: '#/components/schemas/CampaignControllerActionIncentivizeStatusUpdateResponse'
REDEEM_REWARD: '#/components/schemas/CampaignControllerActionRedeemRewardResponse'
REMOVE_MEMBERSHIP: '#/components/schemas/CampaignControllerActionRemoveMembershipResponse'
REVOKE_REWARD: '#/components/schemas/CampaignControllerActionRevokeRewardResponse'
SCHEDULE: '#/components/schemas/CampaignControllerActionScheduleResponse'
SHARE_EVENT: '#/components/schemas/CampaignControllerActionShareEventResponse'
SIGNAL: '#/components/schemas/CampaignControllerActionSignalResponse'
SIGNAL_V1: '#/components/schemas/CampaignControllerActionSignalV1Response'
STEP_SIGNAL: '#/components/schemas/CampaignControllerActionStepSignalResponse'
WEBHOOK: '#/components/schemas/CampaignControllerActionWebhookResponse'
propertyName: action_type
oneOf:
- $ref: '#/components/schemas/CampaignControllerActionApproveResponse'
- $ref: '#/components/schemas/CampaignControllerActionCancelRewardResponse'
- $ref: '#/components/schemas/CampaignControllerActionCreateMembershipResponse'
- $ref: '#/components/schemas/CampaignControllerActionCreativeResponse'
- $ref: '#/components/schemas/CampaignControllerActionDataIntelligenceResponse'
- $ref: '#/components/schemas/CampaignControllerActionDeclineResponse'
- $ref: '#/components/schemas/CampaignControllerActionDisplayResponse'
- $ref: '#/components/schemas/CampaignControllerActionEarnRewardResponse'
- $ref: '#/components/schemas/CampaignControllerActionEmailResponse'
- $ref: '#/components/schemas/CampaignControllerActionExpressionResponse'
- $ref: '#/components/schemas/CampaignControllerActionFireAsPersonResponse'
- $ref: '#/components/schemas/CampaignControllerActionFulfillRewardResponse'
- $ref: '#/components/schemas/CampaignControllerActionIncentivizeResponse'
- $ref: '#/components/schemas/CampaignControllerActionIncentivizeStatusUpdateResponse'
- $ref: '#/components/schemas/CampaignControllerActionRedeemRewardResponse'
- $ref: '#/components/schemas/CampaignControllerActionRemoveMembershipResponse'
- $ref: '#/components/schemas/CampaignControllerActionRevokeRewardResponse'
- $ref: '#/components/schemas/CampaignControllerActionScheduleResponse'
- $ref: '#/components/schemas/CampaignControllerActionShareEventResponse'
- $ref: '#/components/schemas/CampaignControllerActionSignalResponse'
- $ref: '#/components/schemas/CampaignControllerActionSignalV1Response'
- $ref: '#/compo
# --- truncated at 32 KB (636 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/extole/refs/heads/main/openapi/extole-campaign-controllers-api-openapi.yml