Alianza Experience Provider API

Version 1.0.0 · OpenAPI

REST API for Experience Providers integrating with the Alianza cloud communications platform.
Covers Experience Connections, Experience Assignments, and assignability checks.

Experience

Manage Experiences

Check if target can be assigned to Experience

GET/experiences/{experienceId}/assignability

Validates whether a specific Experience is available to the user with a given target (e.g., phone number).
Use this endpoint before attempting to create an Experience Connection.

Scopes: experience-assignability:check

Spec gap. No 429 response is declared, though the endpoint is rate limited to 100 requests per second per credential (see the Rate limits section of API conventions). The gateway does return 429 when you exceed it, so a client generated from this spec will treat a real, expected response as unexpected. Handle 429 explicitly, and back off rather than retrying immediately. Annotated reference →

Gap ID a9b5f8a9fdb3

Path parameters

experienceIdrequiredstringID of the Experience

Query parameters

targetTyperequiredTargetTypeFilter by target type
Allowed: ACCOUNT, PHONE_NUMBER, USER
targetValuerequiredTargetValueFilter by target value.
Format depends on targetType:
• PHONE_NUMBER: E.164 format (e.g., +14155551234)
• USER: UUID format (e.g., c07881d7-200f-424e-b760-f24838f31eef)
• ACCOUNT: UUID format (e.g., c07881d7-200f-424e-b760-f24838f31eef)

Responses

200 Assignability checked successfully
FieldTypeDescription
experienceIdrequiredstringID of the Experience being checked
targetTyperequiredTargetType
Allowed: ACCOUNT, PHONE_NUMBER, USER
targetValuerequiredTargetValue
assignablerequiredbooleanWhether a specific Experience is available to the user with a given target (e.g., phone number).
Return false if the given target cannot be found.
{
  "experienceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "targetType": "PHONE_NUMBER",
  "targetValue": "+14155551234",
  "assignable": true
}
400 Bad Request. Possible causes:
• targetType is missing or not a valid enum value
• targetValue is missing
• targetValue format does not match the expected format for the given targetType:
- PHONE_NUMBER requires E.164 format (e.g., +14155551234)
- USER requires UUID format (e.g., c07881d7-200f-424e-b760-f24838f31eef)
- ACCOUNT requires UUID format (e.g., c07881d7-200f-424e-b760-f24838f31eef)
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Bad Request",
  "status": 400,
  "detail": "targetType must be one of PHONE_NUMBER, USER, ACCOUNT",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
401 Unauthorized - Missing or expired access token. Obtain a new token and retry.
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Access token is missing or has expired",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
403 Forbidden - Experience exists, the authenticated user has authorization to read but no authorization to check assignability for the Experience
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Forbidden",
  "status": 403,
  "detail": "The authenticated user does not have authorization to check assignability for this Experience",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
404 Not Found - Experience does not exist or the authenticated user does not have authorization to access the Experience
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Resource Not Found",
  "status": 404,
  "detail": "The requested Experience does not exist",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
curl -X GET "https://api.b2.alianza.com/experiences/{experienceId}/assignability?targetType=...&targetValue=..." \
  -H "Authorization: Bearer $TOKEN"
const res = await fetch(
  `https://api.b2.alianza.com/experiences/\${experienceId}/assignability` + "?" + new URLSearchParams({ "targetType": "...", "targetValue": "..." }), {
  method: "GET",
  headers: {
    Authorization: `Bearer ${token}`
  }
});
const data = await res.json();
import requests
resp = requests.get(
    f"https://api.b2.alianza.com/experiences/{experienceId}/assignability",
    params={"targetType": "...", "targetValue": "..."},
    headers={"Authorization": f"Bearer {token}"},
)
resp.raise_for_status()
data = resp.json()
Try it
Example response · 200
{
  "experienceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "targetType": "PHONE_NUMBER",
  "targetValue": "+14155551234",
  "assignable": true
}

Experience Assignment

Manage Experience Assignments

List Experience Assignments

GET/experience-assignments

Retrieve a filtered list of Experience Assignments. At least one filter parameter
(such as targetType with targetValue, or accountId with or without experienceId)
must be provided. The filters are applied with a logical AND.

Query examples:

• ?accountId=<id> — all assignments whose targets belong to the specific account
• ?accountId=<id>&experienceId=<experienceId> — all assignments whose targets belong to the specific account and experience
• ?accountId=<id>&targetType=PHONE_NUMBER — all phone number target assignments in the account
• ?accountId=<id>&experienceId=<experienceId>&targetType=PHONE_NUMBER — all phone number target assignments in the account and experience
• ?targetType=USER&targetValue=<user-id> — all assignments for the specified user

Scopes: experience-assignments:manage

Spec gap. Cursor token behaviour is not documented — format, expiry, and stale-cursor error handling are unspecified. Treat cursor values as opaque strings; do not parse or cache them beyond the immediate pagination loop. Annotated reference →

Gap ID b3512601d078

Query parameters

targetTypeTargetTypeFilter by assignment target type. Required when targetValue is provided.
Allowed: ACCOUNT, PHONE_NUMBER, USER
targetValueTargetValueFilter by the exact target value of the assignment. When provided, targetType
is required to interpret the value.
Format depends on targetType:
• PHONE_NUMBER: E.164 format (e.g., +14155551234)
• USER: UUID format (e.g., c07881d7-200f-424e-b760-f24838f31eef)
• ACCOUNT: UUID format (e.g., c07881d7-200f-424e-b760-f24838f31eef)
accountIdstring(uuid)Filter by the account that owns the assignment targets. Returns all assignments
whose targets (users, phone numbers or accounts) belong to the specified account.
experienceIdstring(uuid)Filter by Experience ID. accountId is required when experienceId is provided.
When both are provided, returns all assignments for the specified Experience whose
targets belong to the specified account.
cursorstringThe cursor value returned from a previous paginated request. Used to retrieve the next page of results.
When not provided, the first page of results is returned.
pageSizeintegerThe number of items to return per page. Used in conjunction with cursor for pagination.
Default is 100, valid range between 1 and 100.
Default: 100

Responses

200 Experience Assignments retrieved successfully
FieldTypeDescription
entitiesrequiredarray of ExperienceAssignmentList of Experience Assignments for the current page
cursorstringCursor value to retrieve the next page of results. Null if there are no more pages.
pageSizerequiredintegerNumber of items per page
{
  "pageSize": 50,
  "cursor": "880e8400-e29b-41d4-a716-446655440003",
  "entities": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "experienceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "accountId": "d4e5f6a7-b8c9-0123-def0-234567890123",
      "targetType": "PHONE_NUMBER",
      "targetValue": "+14155551234",
      "updatedAt": "2026-04-10T09:00:00Z"
    },
    {
      "id": "660e8400-e29b-41d4-a716-446655440001",
      "experienceId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "accountId": "d4e5f6a7-b8c9-0123-def0-234567890123",
      "targetType": "USER",
      "targetValue": "c07881d7-200f-424e-b760-f24838f31eef",
      "updatedAt": "2026-04-11T10:00:00Z"
    },
    {
      "id": "770e8400-e29b-41d4-a716-446655440002",
      "experienceId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
      "accountId": "d4e5f6a7-b8c9-0123-def0-234567890123",
      "targetType": "ACCOUNT",
      "targetValue": "d4e5f6a7-b8c9-0123-def0-234567890123",
      "updatedAt": "2026-04-12T11:00:00Z"
    },
    {
      "id": "880e8400-e29b-41d4-a716-446655440003",
      "experienceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567891",
      "accountId": "d4e5f6a7-b8c9-0123-def0-234567890123",
      "targetType": "PHONE_NUMBER",
      "targetValue": "+14155559999",
      "updatedAt": "2026-04-13T12:00:00Z"
    }
  ]
}
400 Bad Request. Possible causes:
• No filter parameter provided (at least accountId or targetType with targetValue is required)
• targetValue provided without targetType
• accountId is not a valid UUID
• experienceId provided without accountId
• experienceId is not a valid UUID
• targetValue format does not match the expected format for the given targetType
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Bad Request",
  "status": 400,
  "detail": "At least one filter parameter must be provided",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
401 Unauthorized - Missing or expired access token. Obtain a new token and retry.
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Access token is missing or has expired",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
curl -X GET "https://api.b2.alianza.com/experience-assignments?targetType=...&targetValue=...&accountId=...&experienceId=...&cursor=...&pageSize=..." \
  -H "Authorization: Bearer $TOKEN"
const res = await fetch(
  `https://api.b2.alianza.com/experience-assignments` + "?" + new URLSearchParams({ "targetType": "...", "targetValue": "...", "accountId": "...", "experienceId": "...", "cursor": "...", "pageSize": "..." }), {
  method: "GET",
  headers: {
    Authorization: `Bearer ${token}`
  }
});
const data = await res.json();
import requests
resp = requests.get(
    f"https://api.b2.alianza.com/experience-assignments",
    params={"targetType": "...", "targetValue": "...", "accountId": "...", "experienceId": "...", "cursor": "...", "pageSize": "..."},
    headers={"Authorization": f"Bearer {token}"},
)
resp.raise_for_status()
data = resp.json()
Try it
Example response · 200
{
  "pageSize": 50,
  "cursor": "880e8400-e29b-41d4-a716-446655440003",
  "entities": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "experienceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "accountId": "d4e5f6a7-b8c9-0123-def0-234567890123",
      "targetType": "PHONE_NUMBER",
      "targetValue": "+14155551234",
      "updatedAt": "2026-04-10T09:00:00Z"
    },
    {
      "id": "660e8400-e29b-41d4-a716-446655440001",
      "experienceId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "accountId": "d4e5f6a7-b8c9-0123-def0-234567890123",
      "targetType": "USER",
      "targetValue": "c07881d7-200f-424e-b760-f24838f31eef",
      "updatedAt": "2026-04-11T10:00:00Z"
    },
    {
      "id": "770e8400-e29b-41d4-a716-446655440002",
      "experienceId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
      "accountId": "d4e5f6a7-b8c9-0123-def0-234567890123",
      "targetType": "ACCOUNT",
      "targetValue": "d4e5f6a7-b8c9-0123-def0-234567890123",
      "updatedAt": "2026-04-12T11:00:00Z"
    },
    {
      "id": "880e8400-e29b-41d4-a716-446655440003",
      "experienceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567891",
      "accountId": "d4e5f6a7-b8c9-0123-def0-234567890123",
      "targetType": "PHONE_NUMBER",
      "targetValue": "+14155559999",
      "updatedAt": "2026-04-13T12:00:00Z"
    }
  ]
}

Assign an Experience

POST/experience-assignments

Assign an Experience to a target (e.g. phone number) by creating an assignment

Scopes: experience-assignments:manage

Spec gap. No request body example is provided for createExperienceAssignment. The field-level table below is authoritative. Code samples on this page were generated from the schema; verify against your environment before relying on them. Annotated reference →

Gap ID 03a0dea8bf54

Request body — ExperienceAssignment

FieldTypeDescription
idrequiredstringID of the Experience Assignment
read-only
experienceIdrequiredstringID of the Experience being assigned
accountIdrequiredstringID of the account that owns the assignment target
read-only
targetTyperequiredTargetType
Allowed: ACCOUNT, PHONE_NUMBER, USER
targetValuerequiredTargetValue
updatedAtrequiredstring(date-time)Timestamp of the last modification to this Experience Assignment, in ISO 8601 format (UTC).
read-only

Responses

201 Experience assigned successfully
FieldTypeDescription
idrequiredstringID of the Experience Assignment
read-only
experienceIdrequiredstringID of the Experience being assigned
accountIdrequiredstringID of the account that owns the assignment target
read-only
targetTyperequiredTargetType
Allowed: ACCOUNT, PHONE_NUMBER, USER
targetValuerequiredTargetValue
updatedAtrequiredstring(date-time)Timestamp of the last modification to this Experience Assignment, in ISO 8601 format (UTC).
read-only
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "experienceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "accountId": "d4e5f6a7-b8c9-0123-def0-234567890123",
  "targetType": "PHONE_NUMBER",
  "targetValue": "+14155551234",
  "updatedAt": "2026-05-01T12:00:00Z"
}
401 Unauthorized - Missing or expired access token. Obtain a new token and retry.
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Access token is missing or has expired",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
409 Conflict - Cannot create Experience Assignment in this state
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Conflict",
  "status": 409,
  "detail": "The target is already assigned to this Experience",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
422 Unprocessable Entity. Possible causes:
• Missing required fields or invalid values
• Target was already assigned to the Experience (i.e., duplicate assignment)
• targetValue format does not match the expected format for the given targetType:
- PHONE_NUMBER requires E.164 format (e.g., +14155551234)
- USER requires UUID format (e.g., c07881d7-200f-424e-b760-f24838f31eef)
- ACCOUNT requires UUID format (e.g., c07881d7-200f-424e-b760-f24838f31eef)
• targetType is USER but the specified user-id in targetValue does not exist in the unified user cache
• targetType is PHONE_NUMBER, the referenced Experience is of type AGENT, and the phone number is already assigned to another AGENT Experience
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "experienceId is required",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
curl -X POST "https://api.b2.alianza.com/experience-assignments" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"experienceId":"string","targetType":"ACCOUNT","targetValue":"string"}'
const res = await fetch(
  `https://api.b2.alianza.com/experience-assignments`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${token}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "experienceId": "string",
    "targetType": "ACCOUNT",
    "targetValue": "string"
  })
});
const data = await res.json();
import requests
resp = requests.post(
    f"https://api.b2.alianza.com/experience-assignments",
    json={
        "experienceId": "string",
        "targetType": "ACCOUNT",
        "targetValue": "string"
    },
    headers={"Authorization": f"Bearer {token}"},
)
resp.raise_for_status()
data = resp.json()
Try it
Example response · 201
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "experienceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "accountId": "d4e5f6a7-b8c9-0123-def0-234567890123",
  "targetType": "PHONE_NUMBER",
  "targetValue": "+14155551234",
  "updatedAt": "2026-05-01T12:00:00Z"
}

Get a specific Experience Assignment

GET/experience-assignments/{assignmentId}

Retrieve details on a specific Experience Assignment

Scopes: experience-assignments:manage

Path parameters

assignmentIdrequiredstringID of the Experience Assignment

Responses

200 Experience Assignment retrieved successfully
FieldTypeDescription
idrequiredstringID of the Experience Assignment
read-only
experienceIdrequiredstringID of the Experience being assigned
accountIdrequiredstringID of the account that owns the assignment target
read-only
targetTyperequiredTargetType
Allowed: ACCOUNT, PHONE_NUMBER, USER
targetValuerequiredTargetValue
updatedAtrequiredstring(date-time)Timestamp of the last modification to this Experience Assignment, in ISO 8601 format (UTC).
read-only
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "experienceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "accountId": "d4e5f6a7-b8c9-0123-def0-234567890123",
  "targetType": "PHONE_NUMBER",
  "targetValue": "+14155551234",
  "updatedAt": "2026-05-01T12:00:00Z"
}
401 Unauthorized - Missing or expired access token. Obtain a new token and retry.
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Access token is missing or has expired",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
404 Not Found - Experience Assignment does not exist or the authenticated user does not have authorization to access the Experience Assignment
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Resource Not Found",
  "status": 404,
  "detail": "The requested Experience Assignment does not exist",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
curl -X GET "https://api.b2.alianza.com/experience-assignments/{assignmentId}" \
  -H "Authorization: Bearer $TOKEN"
const res = await fetch(
  `https://api.b2.alianza.com/experience-assignments/\${assignmentId}`, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${token}`
  }
});
const data = await res.json();
import requests
resp = requests.get(
    f"https://api.b2.alianza.com/experience-assignments/{assignmentId}",
    headers={"Authorization": f"Bearer {token}"},
)
resp.raise_for_status()
data = resp.json()
Try it
Example response · 200
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "experienceId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "accountId": "d4e5f6a7-b8c9-0123-def0-234567890123",
  "targetType": "PHONE_NUMBER",
  "targetValue": "+14155551234",
  "updatedAt": "2026-05-01T12:00:00Z"
}

Remove an Experience Assignment

DELETE/experience-assignments/{assignmentId}

Remove an Experience assignment from a target

Scopes: experience-assignments:manage

Path parameters

assignmentIdrequiredstringID of the Experience Assignment

Responses

204 Experience Assignment removed successfully
401 Unauthorized - Missing or expired access token. Obtain a new token and retry.
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Access token is missing or has expired",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
403 Forbidden - Experience Assignment exists, the authenticated user has authorization to read but no authorization to delete the Experience Assignment
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Forbidden",
  "status": 403,
  "detail": "The authenticated user does not have authorization to delete this Experience Assignment",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
404 Not Found - Experience Assignment does not exist, already deleted, or the authenticated user does not have authorization to access the Experience Assignment
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Resource Not Found",
  "status": 404,
  "detail": "The requested Experience Assignment does not exist or has already been deleted",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
curl -X DELETE "https://api.b2.alianza.com/experience-assignments/{assignmentId}" \
  -H "Authorization: Bearer $TOKEN"
const res = await fetch(
  `https://api.b2.alianza.com/experience-assignments/\${assignmentId}`, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${token}`
  }
});
const data = await res.json();
import requests
resp = requests.delete(
    f"https://api.b2.alianza.com/experience-assignments/{assignmentId}",
    headers={"Authorization": f"Bearer {token}"},
)
resp.raise_for_status()
data = resp.json()
Try it

Experience Connection

Manage Experience Connections

List all Experience Connections

GET/experience-connections

Retrieve list of all Experience Connections for the given account. Either 'accountId' or 'tn' is required.

Scopes: experience-connections:manage

Spec gap. Cursor token behaviour is not documented — format, expiry, and stale-cursor error handling are unspecified. Treat cursor values as opaque strings; do not parse or cache them beyond the immediate pagination loop. Annotated reference →

Gap ID 3094ffc737e8

Query parameters

accountIdstringFilter by account ID, if present, 'tn' filter is ignored. If not present, 'tn' filter is required.
experienceIdstringFilter by Experience ID
tnstring(E.164)Filter by the accountId associated with the supplied telephone number in E.164 format. Required only if no 'accountId' is provided. If accountId is provided, tn filter is ignored.
cursorstringThe cursor value returned from a previous paginated request. Used to retrieve the next page of results.
When not provided, the first page of results is returned.
pageSizeintegerThe number of items to return per page. Used in conjunction with cursor for pagination.
Default is 100, valid range between 1 and 100.
Default: 100

Responses

200 Experience Connections retrieved successfully
FieldTypeDescription
entitiesrequiredarray of ExperienceConnectionList of Experience Connections for the current page
cursorstringCursor value to retrieve the next page of results. Null if there are no more pages.
pageSizerequiredintegerNumber of items per page
{
  "pageSize": 50,
  "cursor": "550e8400-e29b-41d4-a716-446655440000",
  "entities": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "accountId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "accountName": "Acme Communications",
      "experienceId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "state": "INACTIVE"
    }
  ]
}
400 Bad Request - A query parameter was set with an invalid value
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Bad Request",
  "status": 400,
  "detail": "accountId is required",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
401 Unauthorized - Missing or expired access token. Obtain a new token and retry.
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Access token is missing or has expired",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
curl -X GET "https://api.b2.alianza.com/experience-connections?accountId=...&experienceId=...&tn=...&cursor=...&pageSize=..." \
  -H "Authorization: Bearer $TOKEN"
const res = await fetch(
  `https://api.b2.alianza.com/experience-connections` + "?" + new URLSearchParams({ "accountId": "...", "experienceId": "...", "tn": "...", "cursor": "...", "pageSize": "..." }), {
  method: "GET",
  headers: {
    Authorization: `Bearer ${token}`
  }
});
const data = await res.json();
import requests
resp = requests.get(
    f"https://api.b2.alianza.com/experience-connections",
    params={"accountId": "...", "experienceId": "...", "tn": "...", "cursor": "...", "pageSize": "..."},
    headers={"Authorization": f"Bearer {token}"},
)
resp.raise_for_status()
data = resp.json()
Try it
Example response · 200
{
  "pageSize": 50,
  "cursor": "550e8400-e29b-41d4-a716-446655440000",
  "entities": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "accountId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "accountName": "Acme Communications",
      "experienceId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "state": "INACTIVE"
    }
  ]
}

Create a new Experience Connection

POST/experience-connections

Creates a new Experience Connection record in the specified state

Scopes: experience-connections:manage

Spec gap. A connection can be created directly in ACTIVE, but this guide treats activation as a separate step. The spec does not say whether create-as-ACTIVE and create-then-PUT-to-ACTIVE have identical side effects. Use the two-step flow until Alianza confirms equivalence. Annotated reference →

Gap ID db519f112389

Spec gap. The spec does not document what happens when tn resolves to no account, or to multiple accounts the client can see. Confirm the failure modes with Alianza for multi-tenant integrations; assume 404 / 409 respectively until documented. Annotated reference →

Gap ID 0020e2b9b0ca

Spec gap. The spec does not document Idempotency-Key support, so a retry after a 5xx may create a second connection. (accountId + experienceId) is the de-facto dedup key and the lookup above is the documented recovery, but that is a read-after-write check, not an idempotency guarantee. Treat this call as non-idempotent. Annotated reference →

Gap ID 15659347b1ca

Query parameters

tnrequiredstring(E.164)Phone number in E.164 format used to resolve the correct Alianza account.
Mandatory query parameter. Used to disambiguate when the authenticated user
belongs to more than one account.

Request body — ExperienceConnection

FieldTypeDescription
idrequiredstringID of the Experience Connection
read-only
accountIdrequiredstringID of the account
read-only
accountNamestringName of the account
read-only
experienceIdrequiredstringID of the Experience
staterequiredExperienceConnectionStateState of the Experience Connection lifecycle:
• ACTIVE: The Experience is live for all assigned users/TNs
• INACTIVE: Connection exists but the Experience is not currently live for assigned users/TNs
• CONNECTED: Deprecated legacy value that behaves like INACTIVE. Still accepted in requests and may appear in responses for backward compatibility; new integrations should use INACTIVE.
Allowed: ACTIVE, INACTIVE, CONNECTED · Deprecated: CONNECTED

Responses

201 Experience Connection created successfully.
The response always includes the resolved accountId, which should be used for subsequent operations such as experience-assignments.
FieldTypeDescription
idrequiredstringID of the Experience Connection
read-only
accountIdrequiredstringID of the account
read-only
accountNamestringName of the account
read-only
experienceIdrequiredstringID of the Experience
staterequiredExperienceConnectionStateState of the Experience Connection lifecycle:
• ACTIVE: The Experience is live for all assigned users/TNs
• INACTIVE: Connection exists but the Experience is not currently live for assigned users/TNs
• CONNECTED: Deprecated legacy value that behaves like INACTIVE. Still accepted in requests and may appear in responses for backward compatibility; new integrations should use INACTIVE.
Allowed: ACTIVE, INACTIVE, CONNECTED · Deprecated: CONNECTED
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "accountId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "accountName": "Acme Communications",
  "experienceId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "state": "INACTIVE"
}
400 Bad Request - A query parameter was set with an invalid value
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Bad Request",
  "status": 400,
  "detail": "tn must be in E.164 format (e.g., +14155551234)",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
401 Unauthorized - Missing or expired access token. Obtain a new token and retry.
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Access token is missing or has expired",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
403 Forbidden - The authenticated user does not have authorization to create an Experience Connection
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Forbidden",
  "status": 403,
  "detail": "The authenticated user does not have authorization to create an Experience Connection",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
409 Conflict - Experience Connection already exists for this account and Experience
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Conflict",
  "status": 409,
  "detail": "An Experience Connection already exists for this account and Experience",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
422 Unprocessable Entity - Invalid data (missing required fields, invalid values)
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "experienceId is required",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
curl -X POST "https://api.b2.alianza.com/experience-connections?tn=..." \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"experienceId":"b2c3d4e5-f6a7-8901-bcde-f12345678901","state":"INACTIVE"}'
const res = await fetch(
  `https://api.b2.alianza.com/experience-connections` + "?" + new URLSearchParams({ "tn": "..." }), {
  method: "POST",
  headers: {
    Authorization: `Bearer ${token}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "experienceId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "state": "INACTIVE"
  })
});
const data = await res.json();
import requests
resp = requests.post(
    f"https://api.b2.alianza.com/experience-connections",
    params={"tn": "..."},
    json={
        "experienceId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        "state": "INACTIVE"
    },
    headers={"Authorization": f"Bearer {token}"},
)
resp.raise_for_status()
data = resp.json()
Try it
Example response · 201
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "accountId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "accountName": "Acme Communications",
  "experienceId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "state": "INACTIVE"
}

Get a specific Experience Connection

GET/experience-connections/{experienceConnectionId}

Retrieve a specific Experience Connection

Scopes: experience-connections:manage

Path parameters

experienceConnectionIdrequiredstringID of the Experience Connection

Responses

200 Experience Connection retrieved successfully
FieldTypeDescription
idrequiredstringID of the Experience Connection
read-only
accountIdrequiredstringID of the account
read-only
accountNamestringName of the account
read-only
experienceIdrequiredstringID of the Experience
staterequiredExperienceConnectionStateState of the Experience Connection lifecycle:
• ACTIVE: The Experience is live for all assigned users/TNs
• INACTIVE: Connection exists but the Experience is not currently live for assigned users/TNs
• CONNECTED: Deprecated legacy value that behaves like INACTIVE. Still accepted in requests and may appear in responses for backward compatibility; new integrations should use INACTIVE.
Allowed: ACTIVE, INACTIVE, CONNECTED · Deprecated: CONNECTED
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "accountId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "accountName": "Acme Communications",
  "experienceId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "state": "INACTIVE"
}
401 Unauthorized - Missing or expired access token. Obtain a new token and retry.
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Access token is missing or has expired",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
404 Not Found - Experience Connection does not exist or the authenticated user does not have authorization to access it
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Resource Not Found",
  "status": 404,
  "detail": "The requested Experience Connection does not exist",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
curl -X GET "https://api.b2.alianza.com/experience-connections/{experienceConnectionId}" \
  -H "Authorization: Bearer $TOKEN"
const res = await fetch(
  `https://api.b2.alianza.com/experience-connections/\${experienceConnectionId}`, {
  method: "GET",
  headers: {
    Authorization: `Bearer ${token}`
  }
});
const data = await res.json();
import requests
resp = requests.get(
    f"https://api.b2.alianza.com/experience-connections/{experienceConnectionId}",
    headers={"Authorization": f"Bearer {token}"},
)
resp.raise_for_status()
data = resp.json()
Try it
Example response · 200
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "accountId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "accountName": "Acme Communications",
  "experienceId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "state": "INACTIVE"
}

Update the state of an Experience Connection

PUT/experience-connections/{experienceConnectionId}

Updates the connection to the requested state

Scopes: experience-connections:manage

Spec gap. The Alianza Enterprise API standard expects PUT to replace the full entity representation. The spec description no longer explicitly states this. Confirm with Alianza whether partial updates are accepted, and send the complete ExperienceConnection body to be safe. Annotated reference →

Gap ID 4163c03d6a8b

Spec gap. No request body example is provided for updateExperienceConnection. The field-level table below is authoritative. Code samples on this page were generated from the schema; verify against your environment. Annotated reference →

Gap ID ff2cd367f736

Path parameters

experienceConnectionIdrequiredstringID of the Experience Connection

Request body — ExperienceConnection

FieldTypeDescription
idrequiredstringID of the Experience Connection
read-only
accountIdrequiredstringID of the account
read-only
accountNamestringName of the account
read-only
experienceIdrequiredstringID of the Experience
staterequiredExperienceConnectionStateState of the Experience Connection lifecycle:
• ACTIVE: The Experience is live for all assigned users/TNs
• INACTIVE: Connection exists but the Experience is not currently live for assigned users/TNs
• CONNECTED: Deprecated legacy value that behaves like INACTIVE. Still accepted in requests and may appear in responses for backward compatibility; new integrations should use INACTIVE.
Allowed: ACTIVE, INACTIVE, CONNECTED · Deprecated: CONNECTED

Responses

200 Experience Connection updated successfully
FieldTypeDescription
idrequiredstringID of the Experience Connection
read-only
accountIdrequiredstringID of the account
read-only
accountNamestringName of the account
read-only
experienceIdrequiredstringID of the Experience
staterequiredExperienceConnectionStateState of the Experience Connection lifecycle:
• ACTIVE: The Experience is live for all assigned users/TNs
• INACTIVE: Connection exists but the Experience is not currently live for assigned users/TNs
• CONNECTED: Deprecated legacy value that behaves like INACTIVE. Still accepted in requests and may appear in responses for backward compatibility; new integrations should use INACTIVE.
Allowed: ACTIVE, INACTIVE, CONNECTED · Deprecated: CONNECTED
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "accountId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "experienceId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "state": "ACTIVE"
}
400 Bad Request - Request is malformed
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Bad Request",
  "status": 400,
  "detail": "Request is malformed",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
401 Unauthorized - Missing or expired access token. Obtain a new token and retry.
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Access token is missing or has expired",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
403 Forbidden - Experience Connection exists, the authenticated user has authorization to read but no authorization to update it
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Forbidden",
  "status": 403,
  "detail": "The authenticated user does not have authorization to update this Experience Connection",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
404 Not Found - Experience Connection does not exist or the authenticated user does not have authorization to access it
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Resource Not Found",
  "status": 404,
  "detail": "The requested Experience Connection does not exist",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
409 Conflict - Experience Connection is already in the requested state
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Conflict",
  "status": 409,
  "detail": "Experience Connection is already in state ACTIVE",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
422 Unprocessable Entity - Invalid data (missing required fields, invalid values)
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Unprocessable Entity",
  "status": 422,
  "detail": "state is required",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
curl -X PUT "https://api.b2.alianza.com/experience-connections/{experienceConnectionId}" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"experienceId":"string","state":"string"}'
const res = await fetch(
  `https://api.b2.alianza.com/experience-connections/\${experienceConnectionId}`, {
  method: "PUT",
  headers: {
    Authorization: `Bearer ${token}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "experienceId": "string",
    "state": "string"
  })
});
const data = await res.json();
import requests
resp = requests.put(
    f"https://api.b2.alianza.com/experience-connections/{experienceConnectionId}",
    json={
        "experienceId": "string",
        "state": "string"
    },
    headers={"Authorization": f"Bearer {token}"},
)
resp.raise_for_status()
data = resp.json()
Try it
Example response · 200
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "accountId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "experienceId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "state": "ACTIVE"
}

Delete an Experience Connection

DELETE/experience-connections/{experienceConnectionId}

Deletes the Experience Connection record. Valid from any state.

Scopes: experience-connections:manage

Spec gap. All Experience Assignments referencing this connection must be deleted before the connection itself can be deleted, but the spec does not state this in the operation description — the rule is only visible via the 409 response. Order your teardown as: delete assignments → delete connection. Annotated reference →

Gap ID 4ae891ffc134

Path parameters

experienceConnectionIdrequiredstringID of the Experience Connection

Responses

204 Experience Connection deleted successfully
401 Unauthorized - Missing or expired access token. Obtain a new token and retry.
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Unauthorized",
  "status": 401,
  "detail": "Access token is missing or has expired",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
403 Forbidden - Experience Connection exists, the authenticated user has authorization to read but no authorization to delete the Experience Connection
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Forbidden",
  "status": 403,
  "detail": "The authenticated user does not have authorization to delete this Experience Connection",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
404 Not Found - Experience Connection does not exist, already deleted, or the authenticated user does not have authorization to access it
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Resource Not Found",
  "status": 404,
  "detail": "The requested Experience Connection does not exist or has already been deleted",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
409 Conflict - Experience Connection cannot be deleted while TNs are still assigned to the Experience
FieldTypeDescription
typestringURI reference that identifies the problem type
titlerequiredstringShort human-readable summary of the problem type
statusrequiredintegerThe HTTP status code
detailstringHuman-readable explanation specific to this occurrence of the problem
instancestringURI reference identifying the specific resource or endpoint on which the problem occurred
traceIdrequiredstringTrace ID for tracking the request
errorsarray of objectOptional list of errors encountered during the request
{
  "title": "Conflict",
  "status": 409,
  "detail": "The Experience Connection cannot be deleted while TNs are still assigned to the Experience",
  "traceId": "6d4a3a62-0d4b-4b96-9171-8c5070e01c35"
}
curl -X DELETE "https://api.b2.alianza.com/experience-connections/{experienceConnectionId}" \
  -H "Authorization: Bearer $TOKEN"
const res = await fetch(
  `https://api.b2.alianza.com/experience-connections/\${experienceConnectionId}`, {
  method: "DELETE",
  headers: {
    Authorization: `Bearer ${token}`
  }
});
const data = await res.json();
import requests
resp = requests.delete(
    f"https://api.b2.alianza.com/experience-connections/{experienceConnectionId}",
    headers={"Authorization": f"Bearer {token}"},
)
resp.raise_for_status()
data = resp.json()
Try it