Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: BlueConic REST API v2 Dialogues API
description: Welcome to the BlueConic REST API v2.
termsOfService: https://www.blueconic.com/blueconic-terms-and-conditions
contact:
name: Contact us
url: https://support.blueconic.com/hc/en-us/requests/new
license:
name: BlueConic
url: https://github.com/blueconic/openapi/blob/main/LICENSE.MD
version: '100.0'
servers:
- url: https://{blueconicHostname}/rest/v2
description: The BlueConic server
variables:
blueconicHostname:
description: BlueConic server hostname, e.g. 'tenant.blueconic.net'
default: tenantname
tags:
- name: Dialogues
description: A Dialogue is an online (personalized) conversation with a visitor to a channel. Read more
paths:
/dialogues:
get:
tags:
- Dialogues
summary: Get all dialogues
description: Retrieves all dialogues.
operationId: getAllDialogues
parameters:
- name: startIndex
in: query
description: Specifies the index of the first item to include in the result.
schema:
type: integer
format: int64
default: 0
example: 0
- name: count
in: query
description: Specifies the number of results to return.
schema:
type: integer
format: int64
default: 20
example: 10
responses:
'200':
description: Returns the dialogues.
content:
application/json:
schema:
$ref: '#/components/schemas/Dialogues'
examples:
Response body:
description: Response body
value: "{\n \"dialogues\": [\n {\n \"creationDate\": \"2025-09-11T08:33:48.708Z\",\n \"creator\": {\n \"fullName\": \"\",\n \"userName\": \"ondemand@blueconic.com\"\n },\n \"description\": \"\",\n \"domains\": [\n {\n \"id\": \"9fda3d81-e21d-481d-9eb8-3ee235178f7d\",\n \"name\": \"www.example.test\"\n }\n ],\n \"id\": \"d83286b6-e39a-4816-a2f2-4976786fe06f\",\n \"lastModifiedDate\": \"2025-09-11T08:44:24.463Z\",\n \"lastModifiedUser\": {\n \"fullName\": \"\",\n \"userName\": \"ondemand@blueconic.com\"\n },\n \"lastViewDate\": \"2025-11-27T10:35:43.033Z\",\n \"name\": \"example dialogue\",\n \"optimizerSettings\": {\n \"controlGroupDistribution\": 5,\n \"evaluationDecision\": \"ALL\",\n \"evaluationModelId\": \"\",\n \"goal\": \"CLICK_VIEW\",\n \"selectedVariantId\": \"\",\n \"variantStrategy\": \"ROTATING\",\n \"variantStrategyModelId\": \"\"\n },\n \"priority\": {\n \"id\": \"902ebee5-79ab-4b11-a071-6caef2aecf20\",\n \"isDefault\": true,\n \"name\": \"Medium\"\n },\n \"isEnabled\": true,\n \"tags\": [],\n \"targetChannels\": [\n {\n \"URLRestrictions\": [\n {\n \"pattern\": \"www.example.test/dialogues/test\",\n \"previewURL\": \"www.example.test/dialogues/test\",\n \"restrictionType\": \"RESTRICT\"\n }\n ],\n \"channelId\": \"3ae0a271-a69f-48fc-b26b-528f833f2308\"\n }\n ],\n \"variants\": [\n {\n \"creationDate\": \"2025-09-11T08:33:49.865Z\",\n \"description\": \"\",\n \"id\": \"af72152a-a4c0-4ee5-a938-52beb3bbb566\",\n \"lastModifiedDate\": \"2025-09-11T08:44:24.457Z\",\n \"lastModifiedUser\": {\n \"fullName\": \"\",\n \"userName\": \"ondemand@blueconic.com\"\n },\n \"name\": \"Variant A\",\n \"pluginId\": \"emailinteractiontype\",\n \"isEnabled\": true,\n \"tags\": []\n }\n ]\n }\n ],\n \"itemsPerPage\": 20,\n \"startIndex\": 0,\n \"totalPages\": 1,\n \"totalResults\": 1\n}"
'401':
description: Authentication failed (unauthorized).
'403':
description: Authorization failed (incorrect permissions).
'503':
description: The server is too busy to handle the request.
security:
- oauth2:
- read:dialogues
/dialogues/{dialogue}:
get:
tags:
- Dialogues
summary: Get one dialogue
description: Retrieves a single dialogue.
operationId: getOneDialogue
parameters:
- name: dialogue
in: path
description: The ID of the dialogue.
required: true
schema:
type: string
responses:
'200':
description: Returns the dialogue.
content:
application/json:
schema:
$ref: '#/components/schemas/DialogueBean'
examples:
Response body:
description: Response body
value: "{\n \"creationDate\": \"2025-09-11T08:33:48.708Z\",\n \"creator\": {\n \"fullName\": \"\",\n \"userName\": \"ondemand@blueconic.com\"\n },\n \"description\": \"\",\n \"domains\": [\n {\n \"id\": \"9fda3d81-e21d-481d-9eb8-3ee235178f7d\",\n \"name\": \"www.example.test\"\n }\n ],\n \"id\": \"d83286b6-e39a-4816-a2f2-4976786fe06f\",\n \"lastModifiedDate\": \"2025-09-11T08:44:24.463Z\",\n \"lastModifiedUser\": {\n \"fullName\": \"\",\n \"userName\": \"ondemand@blueconic.com\"\n },\n \"lastViewDate\": \"2025-11-27T10:35:43.033Z\",\n \"name\": \"example dialogue\",\n \"optimizerSettings\": {\n \"controlGroupDistribution\": 5,\n \"evaluationDecision\": \"ALL\",\n \"evaluationModelId\": \"\",\n \"goal\": \"CLICK_VIEW\",\n \"selectedVariantId\": \"\",\n \"variantStrategy\": \"ROTATING\",\n \"variantStrategyModelId\": \"\"\n },\n \"priority\": {\n \"id\": \"902ebee5-79ab-4b11-a071-6caef2aecf20\",\n \"isDefault\": true,\n \"name\": \"Medium\"\n },\n \"isEnabled\": true,\n \"tags\": [],\n \"targetChannels\": [\n {\n \"URLRestrictions\": [\n {\n \"pattern\": \"www.example.test/dialogues/test\",\n \"previewURL\": \"www.example.test/dialogues/test\",\n \"restrictionType\": \"RESTRICT\"\n }\n ],\n \"channelId\": \"3ae0a271-a69f-48fc-b26b-528f833f2308\"\n }\n ],\n \"variants\": [\n {\n \"creationDate\": \"2025-09-11T08:33:49.865Z\",\n \"description\": \"\",\n \"id\": \"af72152a-a4c0-4ee5-a938-52beb3bbb566\",\n \"lastModifiedDate\": \"2025-09-11T08:44:24.457Z\",\n \"lastModifiedUser\": {\n \"fullName\": \"\",\n \"userName\": \"ondemand@blueconic.com\"\n },\n \"name\": \"Variant A\",\n \"pluginId\": \"emailinteractiontype\",\n \"isEnabled\": true,\n \"tags\": []\n }\n ]\n}"
'401':
description: Authentication failed (unauthorized).
'403':
description: Authorization failed (incorrect permissions).
'404':
description: The dialogue doesn't exist.
'503':
description: The server is too busy to handle the request.
security:
- oauth2:
- read:dialogues
components:
schemas:
UrlRestriction:
type: object
description: URL restriction for a target channel.
properties:
pattern:
type: string
description: The URL pattern.
previewURL:
type: string
description: The preview URL.
restrictionType:
type: string
description: The restriction type.
enum:
- RESTRICT
- EXCLUDE
DialogueBean:
type: object
description: Dialogue configuration for a single instance.
properties:
creationDate:
type: string
format: date-time
description: The creation date of the object. Datetime in UTC in the https://www.ietf.org/rfc/rfc3339.txt format, example = "2025-01-22T11:21:33.872Z".
readOnly: true
creator:
$ref: '#/components/schemas/UserBean'
description:
type: string
description: The description.
id:
type: string
description: The object ID.
isEnabled:
type: boolean
description: Indicates whether the variant is enabled.
lastModifiedDate:
type: string
format: date-time
description: The last modified date of the object. Datetime in UTC in the https://www.ietf.org/rfc/rfc3339.txt format, example = "2025-01-22T11:21:33.872Z".
readOnly: true
lastModifiedUser:
$ref: '#/components/schemas/UserBean'
name:
type: string
description: The object name.
optimizerSettings:
$ref: '#/components/schemas/optimizerSettings'
priority:
$ref: '#/components/schemas/priority'
tags:
type: array
description: The tags (i.e. labels).
example: Address
items:
type: string
description: The tags (i.e. labels).
example: Address
targetChannels:
type: array
description: Target channels for this dialogue.
items:
$ref: '#/components/schemas/targetChannels'
variants:
$ref: '#/components/schemas/VariantBean'
optimizerSettings:
type: object
description: The optimizer settings for a dialogue.
properties:
controlGroupDistribution:
type: integer
format: int32
description: The control group distribution.
evaluationClickCount:
type: integer
format: int64
description: Defines the number of clicks on the dialogue that must be reached to trigger the evaluation moment.
evaluationConversionCount:
type: integer
format: int64
description: Defines the number of conversions that must be reached to trigger the evaluation moment.
evaluationDate:
type: string
format: date-time
description: The evaluation date for the item.
evaluationDecision:
type: string
description: Defines the dialogue's behavior after the evaluation moment is reached.
enum:
- STOP
- SPECIFIC
- WINNING
- ALL
- MODEL_BASED
evaluationModelId:
type: string
description: The evaluation model id.
evaluationViewCount:
type: integer
format: int64
description: Defines the number of times the dialogue must be viewed to trigger the evaluation moment.
goal:
type: string
description: Specifies the performance ratio the system should prioritize when automatic optimization is enabled.
enum:
- CLICK_VIEW
- CONVERSION_VIEW
- CONVERSION_UNIQUEVIEW
- CONVERSION_UNIQUECLICK
- TOTALCONVERSION_VIEW
- TOTALCONVERSION_CLICK
- TOTALCONVERSION_UNIQUEVIEW
- TOTALCONVERSION_UNIQUECLICK
- CONVERSION_CLICK
- CONVERSIONVALUE_VIEW
- CONVERSIONVALUE_CLICK
- CONVERSIONVALUE_CONVERSION
selectedVariantId:
type: string
description: The selected variant id.
variantStrategy:
type: string
description: Selects the strategy for determining which variant a visitor is shown.
enum:
- AUTOMATIC
- EXCLUSIVE
- ROTATING
- MODEL_BASED
variantStrategyModelId:
type: string
description: The variant strategy model id.
dialogue:
type: object
description: Dialogue configuration for a single instance.
properties:
creationDate:
type: string
format: date-time
description: The creation date of the object. Datetime in UTC in the https://www.ietf.org/rfc/rfc3339.txt format, example = "2025-01-22T11:21:33.872Z".
readOnly: true
creator:
$ref: '#/components/schemas/UserBean'
description:
type: string
description: The description.
id:
type: string
description: The object ID.
isEnabled:
type: boolean
description: Indicates whether the variant is enabled.
lastModifiedDate:
type: string
format: date-time
description: The last modified date of the object. Datetime in UTC in the https://www.ietf.org/rfc/rfc3339.txt format, example = "2025-01-22T11:21:33.872Z".
readOnly: true
lastModifiedUser:
$ref: '#/components/schemas/UserBean'
name:
type: string
description: The object name.
optimizerSettings:
$ref: '#/components/schemas/optimizerSettings'
priority:
$ref: '#/components/schemas/priority'
tags:
type: array
description: The tags (i.e. labels).
example: Address
items:
type: string
description: The tags (i.e. labels).
example: Address
targetChannels:
type: array
description: Target channels for this dialogue.
items:
$ref: '#/components/schemas/targetChannels'
variants:
$ref: '#/components/schemas/VariantBean'
UserBean:
type: object
description: BlueConic user.
properties:
fullName:
type: string
description: The full name of the user.
userName:
type: string
description: The username.
readOnly: true
targetChannels:
type: object
description: Target channel.
properties:
URLRestrictions:
type: array
items:
$ref: '#/components/schemas/UrlRestriction'
channelId:
type: string
description: The ID of the channel.
required:
- URLRestrictions
Dialogues:
type: object
description: Collection of dialogue configurations.
properties:
dialogues:
type: array
items:
$ref: '#/components/schemas/dialogue'
itemsPerPage:
type: integer
format: int32
description: Number of results per page.
readOnly: true
startIndex:
type: integer
format: int32
description: The start index.
readOnly: true
totalPages:
type: integer
format: int32
description: The total number of pages.
readOnly: true
totalResults:
type: integer
format: int32
description: The total number of results.
readOnly: true
VariantBean:
type: object
description: Variants for this dialogue.
properties:
creationDate:
type: string
format: date-time
description: The creation date of the object. Datetime in UTC in the https://www.ietf.org/rfc/rfc3339.txt format, example = "2025-01-22T11:21:33.872Z".
readOnly: true
creator:
$ref: '#/components/schemas/UserBean'
description:
type: string
description: The description.
id:
type: string
description: The object ID.
isEnabled:
type: boolean
description: Indicates whether the variant is enabled.
lastModifiedDate:
type: string
format: date-time
description: The last modified date of the object. Datetime in UTC in the https://www.ietf.org/rfc/rfc3339.txt format, example = "2025-01-22T11:21:33.872Z".
readOnly: true
lastModifiedUser:
$ref: '#/components/schemas/UserBean'
name:
type: string
description: The object name.
pluginId:
type: string
description: the plugin ID.
tags:
type: array
description: The tags (i.e. labels).
example: Address
items:
type: string
description: The tags (i.e. labels).
example: Address
priority:
type: object
properties:
id:
type: string
description: The ID of the priority.
isDefault:
type: boolean
description: Whether the priority is the default priority.
name:
type: string
description: The name of the priority.
securitySchemes:
oauth2:
type: oauth2
description: 'Authenticates a registered OAuth 2.0 client. The Authorization code flow and Client credentials flow are supported. Make sure to select the correct flow based on which flow the registered client supports. The client id and client secret can be found in BlueConic by opening the registered client under *Settings* > *Access management* > *Applications*.<br/>**NOTE:** When using the Authorization code flow, the redirect URL of the registered client in BlueConic must be set to `https://rest.apidoc.blueconic.com/oauth-receiver.html` and ''Send Proof Key for Code Exchange'' must be enabled.<br/><br/>To use a Bearer token for authentication, follow these steps: <br/>1. Acquire the token through authentication.<br/>2. Include the token in the request''s Authorization header as Bearer \<token\>.<br/>3. Send the request to access protected resources.<br/>4. Handle token expiration by refreshing or obtaining a new token.'
flows:
clientCredentials:
tokenUrl: /rest/v2/oauth/token
authorizationCode:
authorizationUrl: /rest/v2/oauth/authorize
tokenUrl: /rest/v2/oauth/token
refreshUrl: /rest/v2/oauth/token