---
schema_version: "1"
id: 677b3ef5cfec63ca85514d9b5745b8a1f52c42d9f2ec3dca39e46981efd0858f
title: Conversation Data API Endpoints
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/service-cloud/conversation-data-api/references/generated-api-specs/conversation-data-api-reference.md
canonical_url: https://developer.salesforce.com/docs/service/conversation-data-api/references/conversation-data-api-reference
source_site: developer.salesforce.com
content_type: documentation
content_hash: 73eeb3622f4414fff77b53b68d0a35396efaf7c18ee0c730589f19c97a6b8ccc
products:
  - Conversation Data API
  - Service Cloud Developer Content
---
Conversation Data API Endpoints

# Conversation Data API Endpoints

The Conversation Data API provides a comprehensive set of tools for interacting with your organization's conversation data, including the ability to delete and fetch conversation records.

**Version:** v1.0.0

## Servers

*   `https://api.salesforce.com/platform/engagement/v1.0`

Default security: ScrtAuth.

## Security

*   `ScrtAuth` (http) Authenticated by the JWT tokens generated by the service for individual clients.
    *   HTTP scheme: bearer (JSON Web Tokens)

## Tags

### ConversationParticipant

API operations related to conversation participants.

## Operations

### GET Fetch conversation entries.

`GET /conversation-entries`

Operation ID: `getConversationEntries`. Tags: ConversationEntries.

Retrieves the conversation entries for a given Conversation ID. The conversation entry (transcript) for a voice call isn’t available until after the voice call record is created. An error occurs if you try to fetch the transcript before the record is created.

#### Parameters

*   `conversationIdentifier` (query, string, required) Unique ID of the conversation associated with the conversation entries.
    
    _Example_
    
    ```
    17628be7-1cff-4878-b9f9-fa50433b0905
    ```
    
*   `startTimestamp` (query, integer (int64)) Start timestamp for the window of time being requested. The results will include all conversation entries created after this time.
    
    _Example_
    
    ```
    1752175937852
    ```
    
*   `endTimestamp` (query, integer (int64)) End timestamp for the window of time being requested. The results will include all conversation entries created before this time.
    
    _Example_
    
    ```
    1752262337852
    ```
    
*   `limit` (query, integer (int64)) Maximum number of entries to return. The maximum value can be up to 1000. If a value is not specified, the default value is 1000.
*   `direction` (query, string) Chronological direction to use when getting entries. If a value is not specified, the default value is 'fromEnd'.  
    Allowed values: `FROMSTART–Query conversation entries in chronological ascending order, starting with the earliest entry.`, `FROMEND–Query conversation entries in chronological descending order, starting with the most recent entry.`.
*   `entryIdentifiersFilter` (query, array of string) Filters conversation entries by their unique identifiers. Provide a comma-separated list of string IDs to retrieve only the entries for those IDs. This is a powerful way to fetch a small, targeted set of entries.  
    Example: `41c33058-2d80-4780-982a-6567049749bz`.
*   `entryTypeFilter` (query, array of string) Filters conversation entries by entry type. Provide a comma-separated list of entry types to retrieve only the entries that match one of the specified entry types. For a full list of entry types, refer to the [ConversationEntry Schema](/messaging-object-model/references/messaging-object-model-conversationEntry) page.
    
    _Example_
    
    ```
    MESSAGE, PARTICIPANT_CHANGED, MESSAGE_DELIVERY_FAILED, ROUTING_RESULT, ROUTING_WORK_RESULT, NOTE, FLAG_RAISE, FLAG_LOWER, CLIENT_MENU, END_USER_CONSENT_UPDATED, SESSION_STATUS_CHANGED, CONSULT_CONVERSATION_INFO, SESSION_CONTEXT, SESSION_OWNER_CHANGED
    ```
    

#### Responses

*   **200** The operation was successful. The example shows a sample ConversationEntry payload. Note that the payload's structure varies based on the ConversationEntry type specified. For complete details on all possible variations, refer to the [ConversationEntry Schema](/messaging-object-model/references/messaging-object-model-conversationEntry) page.
    
    Media type: `application/json`. Schema: `object`.
    
    *   `conversationIdentifier` (_string_) Unique ID of the conversation.
    *   `conversationEntries` (_array of object_)
    
    _Example: Sample Success Response_ Sample Success Response
    
    ```
    {
      "conversationIdentifier": "17628be7-1cff-4878-b9f9-fa50433b0905",
      "conversationEntries": [
        {
          "identifier": "41c33058-2d80-4780-982a-6567049749bz",
          "entryType": "Message",
          "entryPayload": {
            "entryType": "Message",
            "id": "41c33058-2d80-4780-982a-6567049749bz",
            "abstractMessage": {
              "inReplytoMessageId": null,
              "customHandlingType": null,
              "id": "41c33058-2d80-4780-982a-6567049749bz",
              "messageType": "StaticContentMessage",
              "staticContent": {
                "formatType": "Text",
                "text": "Hello! Can you please provide your order number?",
                "citationContent": null
              }
            },
            "messageReason": null,
            "wasRevised": false
          },
          "sender": {
            "role": "Agent",
            "appType": "messaging",
            "subject": "005x00000000001",
            "clientIdentifier": null
          },
          "transcriptedTimestamp": 1752175937852,
          "relatedRecords": [],
          "clientTimestamp": 1752175937852,
          "clientDuration": 0
        }
      ]
    }
    ```
    
*   **400** Bad Request. Validation failed. One or more invalid query parameters were specified. Refer to the error message to identify the exact issue that caused this error.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
    _Example: Conversation Does Not Exist_ Conversation does not exist
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "PERMISSION_DENIED",
      "message": "Conversation does not exist",
      "targets": [],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: Invalid Data Type_ Invalid Data Type
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "VALIDATION_FAILED",
      "message": "Invalid value 'cat' for parameter 'limit'.",
      "targets": [],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: Negative Limit_ Limit is a negative number
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "VALIDATION_FAILED",
      "message": "Limit cannot be negative.",
      "targets": [],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: Limit Exceeded_ Limit exceeds maximum allowed
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "CONVERSATION_ENTRIES_LIMIT_EXCEEDED",
      "message": "Limit exceeded the configured maximum of 1000.",
      "targets": [],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: Invalid Timestamp Range_ Start timestamp is after End timestamp
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "INVALID_TIMESTAMP_RANGE",
      "message": "Start timestamp must be less than or equal to end timestamp.",
      "targets": [],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: Invalid Direction_ Invalid direction value is provided
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "VALIDATION_FAILED",
      "message": "Invalid value 'adf' for parameter 'direction'.",
      "targets": [],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: Invalid Entry Type_ Entry type filter value is invalid
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "VALIDATION_FAILED",
      "message": "Entry type filter value is invalid.",
      "targets": [],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
*   **403** User does not have permission to fetch the resources.
*   **404** Conversation ID not found.
*   **500** Internal server error.

### PATCH Update conversation entries.

`PATCH /conversation-entries`

Operation ID: `updateConversationEntries`. Tags: ConversationEntries.

Updates the content of one or more existing conversation entries of Message type within a conversation. Each entry in the request is processed independently — a failure on one entry does not block the others. The overall HTTP response is always `200` when the request itself is valid; per-entry outcomes are reported in the `results` array.

Only conversation entries of Message type can be updated. Entries of other types (for example, `PARTICIPANT_CHANGED`) return `success: false` in the results.

The field used to update an entry depends on the entry's `formatType`:

*   Use `messageText` for entries with `formatType: Text`.
*   Use `abstractMessagePayload` for entries with other format types (for example, `Attachments`).

`messageText` and `abstractMessagePayload` are mutually exclusive — providing both on the same entry returns a `VALIDATION_FAILED` error.

For more information about the conversation entry schema and supported entry types, see the [ConversationEntry Schema](/messaging-object-model/references/messaging-object-model-conversationEntry) page.

This endpoint shares a rate limit bucket with `GET /conversation-entries`: **90 requests per Execution User per minute**.

#### Parameters

*   `conversationIdentifier` (query, string, required) Unique ID of the conversation containing the entries to update.
    
    _Example_
    
    ```
    17628be7-1cff-4878-b9f9-fa50433b0905
    ```
    

#### Request body (required)

Media type: `application/json`. Schema: `object`.

*   `entries` (_array of object_, required) List of entry updates. Must contain between 1 and 1,000 items.  
    Minimum items: 1. Maximum items: 1000.
    *   `id` (_string_, required) The identifier of the entry to update.
    *   `messageText` (_string_) New plain-text content for the entry. Only valid for entries with `formatType: Text`. Mutually exclusive with `abstractMessagePayload`.
    *   `abstractMessagePayload` (_object_) Updated message payload for entries with non-text format types (for example, `Attachments`). Mutually exclusive with `messageText`.
    *   `relatedRecords` (_array of string_) Updated list of related record IDs to associate with the entry.

_Example: Update messageText_ Update the text of a single Message entry

```
{
  "entries": [
    {
      "id": "41c33058-2d80-4780-982a-6567049749bz",
      "messageText": "Updated message text"
    }
  ]
}
```

_Example: Bulk update_ Update multiple Message entries in one request

```
{
  "entries": [
    {
      "id": "41c33058-2d80-4780-982a-6567049749bz",
      "messageText": "Text 1 - updated"
    },
    {
      "id": "b1e2d3c4-5f6a-7b8c-9d0e-1f2a3b4c5d6e",
      "messageText": "Text 2 - updated"
    }
  ]
}
```

_Example: Update relatedRecords only_ Update the related records of an entry without changing its text

```
{
  "entries": [
    {
      "id": "41c33058-2d80-4780-982a-6567049749bz",
      "relatedRecords": [
        "5003000000D8cuIAAR"
      ]
    }
  ]
}
```

_Example: Update attachment entry_ Update an entry with formatType Attachments using abstractMessagePayload

```
{
  "entries": [
    {
      "id": "c2f3e4d5-6a7b-8c9d-0e1f-2a3b4c5d6e7f",
      "abstractMessagePayload": {
        "messageType": "StaticContentMessage",
        "staticContent": {
          "formatType": "Attachments",
          "attachments": [
            {
              "name": "updated-filename.pdf",
              "referenceId": "<original-reference-id>"
            }
          ]
        }
      }
    }
  ]
}
```

#### Responses

*   **200** The request was valid and processed. The top-level `isSuccess` field is `true` only when all entries were updated successfully. Check each entry's `success` field for individual outcomes — a `200` response does not guarantee all entries were updated successfully. Entries that are not of Message type, or that have non-existent IDs, return `success: false` with a `failureReason`.
    
    Media type: `application/json`. Schema: `object`.
    
    *   `conversationIdentifier` (_string_) The conversation identifier echoed from the request query parameter.
    *   `isSuccess` (_boolean_) The overall result of the request. `true` only when every entry was updated successfully; `false` if any entry failed.
    *   `results` (_array of object_) Per-entry update outcomes, in the same order as the request entries.
        *   `id` (_string_) The entry identifier from the request.
        *   `success` (_boolean_) `true` if the entry was updated successfully, `false` otherwise.
        *   `failureReason` (_string_, nullable) A description of why the update failed, or `null` on success.
    
    _Example: Successful update_ Single entry updated successfully
    
    ```
    {
      "conversationIdentifier": "17628be7-1cff-4878-b9f9-fa50433b0905",
      "isSuccess": true,
      "results": [
        {
          "success": true,
          "id": "41c33058-2d80-4780-982a-6567049749bz",
          "failureReason": null
        }
      ]
    }
    ```
    
    _Example: Mixed results_ One entry succeeded, one failed (for example, non-existent entry ID)
    
    ```
    {
      "conversationIdentifier": "17628be7-1cff-4878-b9f9-fa50433b0905",
      "isSuccess": false,
      "results": [
        {
          "success": false,
          "id": "99a5130a-1b9c-48a4-8f30-b1afe18604ef",
          "failureReason": "Conversation entry not found"
        },
        {
          "success": true,
          "id": "41c33058-2d80-4780-982a-6567049749bz",
          "failureReason": null
        }
      ]
    }
    ```
    
    _Example: Non-existent conversation_ Valid request but conversation ID does not exist — returns 200 with all entries failed
    
    ```
    {
      "conversationIdentifier": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "isSuccess": false,
      "results": [
        {
          "success": false,
          "id": "41c33058-2d80-4780-982a-6567049749bz",
          "failureReason": "Conversation entry not found"
        }
      ]
    }
    ```
    
*   **400** Bad request. The request failed validation before any entries were processed.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
    _Example Entries limit exceeded: same as GET /conversation-entries 400 response._ More than 1,000 entries in the request
    
    _Example: Empty entries array_ The entries array is empty
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "VALIDATION_FAILED",
      "message": "entries: size must be between 1 and 2147483647",
      "targets": [
        {
          "type": "BODY",
          "reference": "entries"
        }
      ],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: Entries limit exceeded_ More than 1,000 entries in the request
    
    _Example: Entry missing id_ An entry is missing its id or has an empty id
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "VALIDATION_FAILED",
      "message": "Each entry must include a non-empty id.",
      "targets": [
        {
          "type": "BODY",
          "reference": "entries"
        }
      ],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: Entry has no update fields_ An entry includes only id with no fields to update
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "VALIDATION_FAILED",
      "message": "At least one of messageText, abstractMessagePayload, or relatedRecords must be provided.",
      "targets": [
        {
          "type": "BODY",
          "reference": "entries[0]"
        }
      ],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: Both messageText and abstractMessagePayload_ An entry specifies both messageText and abstractMessagePayload
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "VALIDATION_FAILED",
      "message": "messageText and abstractMessagePayload are mutually exclusive.",
      "targets": [
        {
          "type": "BODY",
          "reference": "entries[0]"
        }
      ],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: Payload size exceeded_ An entry's payload exceeds 100 KB
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "VALIDATION_FAILED",
      "message": "Entry payload exceeds maximum allowed size of 100 KB.",
      "targets": [
        {
          "type": "BODY",
          "reference": "entries[0]"
        }
      ],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: Invalid relatedRecords IDs_ A relatedRecords array contains an invalid Salesforce record ID
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "VALIDATION_FAILED",
      "message": "Invalid related record ID: not-a-valid-id",
      "targets": [
        {
          "type": "BODY",
          "reference": "entries[0].relatedRecords"
        }
      ],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
*   **403** Forbidden. The authenticated user does not have permission to update entries in this conversation.
*   **500** Internal server error.

### DELETE Deletes the conversation data of one or more messaging end users.

`DELETE /conversation-participants`

Operation ID: `deleteConversationParticipantData`. Tags: ConversationParticipant.

Deletes the conversation data associated with the Conversation Participant identified by the ParticipantEntityID values passed to the API. The conversation data includes Messaging End User, Messaging Session, Conversation, Conversation Entry, Conversation Participant, Intelligence Signals, Intelligence Signal Targets, Related Records, Participant, Context Param Maps, and VoiceCall data.

#### Parameters

*   `participantEntityId` (query, array of string, required, explode: false) Comma-separated IDs of Participant Entities whose data needs to be deleted. The ParticipantEntityID represents the record linked to a ConversationParticipant, such as a Contact, Messaging End User, or User. Currently, this API only supports the deletion of Messaging End User entity types, so only valid Messaging End User IDs should be passed as this query parameter. You can pass up to 50 IDs in a single request.
    
    _Example_
    
    ```
    0PAJS000001Y5Ud4AK,0PAJS000001YD2S4AW,0PAJS000001Y4744AC
    ```
    
*   `cascadeLevel` (query, string, required) Cascade level for the delete operation.  
    Allowed values: `FULL_CASCADE–Deletes all conversation data, including any associated data, related to the Participant object.`. Example: `FULL_CASCADE`.
*   `errorDetailsVerbose` (query, boolean)
    
    When `true`, the error response includes a detailed `errorDetails` array that lists all messaging end users blocking deletion and their associated open session IDs or restricted child objects. When `false` or omitted, only the first blocking entity is identified in the error message and `errorDetails` is empty.
    
    This parameter is available for orgs on Spring '26 and later. Passing this parameter on an org running an earlier release returns a 400 error.
    
    _Example_
    
    ```
    true
    ```
    
*   `forceCloseSessions` (query, boolean)
    
    When `true`, any open messaging sessions associated with the specified messaging end users are automatically closed before deletion proceeds. This allows deletions to succeed without requiring you to manually close sessions beforehand.
    
    If one or more of the specified messaging end users has open sessions, `forceCloseSessions=true` requires `errorDetailsVerbose=true` to also be set in the same request. If `forceCloseSessions=true` is passed without `errorDetailsVerbose=true` and open sessions are present, the request returns a 400 error. If no open sessions are present, the parameter is accepted without `errorDetailsVerbose`.
    
    This parameter is available for orgs on Spring '26 and later. Passing this parameter on an org running an earlier release returns a 400 error.
    
    _Example_
    
    ```
    true
    ```
    

#### Responses

*   **200** Success.
    
    Media type: `application/json`. Schema: `SuccessfulDeleteResponse`.
    
    _Example: Standard Deletion_ Success response for a standard deletion request
    
    ```
    {
      "conversationApiLogs": {
        "0PASG0000090wDJ": {
          "requestedEntityId": "0PASG0000090wDJ",
          "action": "DELETE",
          "id": "1NcSG0000008afp",
          "status": "ENQUEUED"
        }
      }
    }
    ```
    
    _Example: Deletion With forceCloseSessions_ Success response when forceCloseSessions=true is used — includes openConversationIdentifiers listing any conversations that were open and force-closed
    
    ```
    {
      "conversationApiLogs": {
        "0PASG0000090wDJ": {
          "requestedEntityId": "0PASG0000090wDJ",
          "action": "DELETE",
          "id": "1NcSG0000008afp",
          "openConversationIdentifiers": [
            "9c798944-08f3-445a-8a5f-36c9449a57f6"
          ],
          "status": "ENQUEUED"
        }
      }
    }
    ```
    
*   **400** Invalid API request. This error occurs if no IDs, too many IDs, or invalid IDs were provided in the request, or if query parameters were used incorrectly.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
    _Example: Invalid IDs Provided_ Example for invalid participant IDs
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "INVALID_ENTITY_IDS",
      "message": "Invalid ids found in request",
      "targets": [
        {
          "type": "QUERY_PARAMETER",
          "reference": "participantEntityId"
        }
      ],
      "parameters": [
        {
          "name": "participantEntityId",
          "value": "0ASG000009mbJR4AY"
        }
      ],
      "errorDetails": []
    }
    ```
    
    _Example: Missing Participant IDs_ Error when no participant IDs are provided
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "MISSING_ENTITY_IDS",
      "message": "No ids found in request",
      "targets": [
        {
          "type": "QUERY_PARAMETER",
          "reference": "participantEntityId"
        }
      ],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: forceCloseSessions Without errorDetailsVerbose_ forceCloseSessions=true used without errorDetailsVerbose=true
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "VALIDATION_FAILED",
      "message": "Query parameter 'forceCloseSessions' requires 'errorDetailsVerbose=true'.",
      "targets": [
        {
          "type": "QUERY_PARAMETER",
          "reference": "forceCloseSessions"
        }
      ],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: errorDetailsVerbose Not Supported for Core Version_ errorDetailsVerbose used on an org running Core version below 262
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "VALIDATION_FAILED",
      "message": "Query parameter 'errorDetailsVerbose' is not supported for core release versions below 262.",
      "targets": [
        {
          "type": "QUERY_PARAMETER",
          "reference": "errorDetailsVerbose"
        }
      ],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: forceCloseSessions Not Supported for Core Version_ forceCloseSessions used on an org running Core version below 262
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "VALIDATION_FAILED",
      "message": "Query parameter 'forceCloseSessions' is not supported for core release versions below 262.",
      "targets": [
        {
          "type": "QUERY_PARAMETER",
          "reference": "forceCloseSessions"
        }
      ],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
*   **412** Precondition failed. This error occurs when the request is valid, but the messaging end user data cannot be deleted in its current state.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
    _Example: Messaging End User Does Not Exist_ Messaging end user not found
    
    ```
    {
      "code": null,
      "errorCode": "PRECONDITION_FAILED",
      "messageCode": "CORE_PARTICIPANT_ENTITY_NOT_FOUND",
      "message": "Failed to find participant entity ids in Core",
      "targets": [
        {
          "type": "QUERY_PARAMETER",
          "reference": "participantEntityId"
        }
      ],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: Messaging End User Has Open Sessions (Default)_ One or more messaging end users have open sessions — default error without errorDetailsVerbose
    
    ```
    {
      "code": null,
      "errorCode": "PRECONDITION_FAILED",
      "messageCode": "CORE_PARTICIPANT_ENTITY_IN_OPEN_SESSIONS",
      "message": "Requested participant entity 0PALT000004IQjd is still in active MessagingSessions.",
      "targets": [
        {
          "type": "QUERY_PARAMETER",
          "reference": "participantEntityId"
        }
      ],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: Messaging End User Has Open Sessions (Verbose)_ One or more messaging end users have open sessions — verbose error with errorDetailsVerbose=true
    
    ```
    {
      "code": null,
      "errorCode": "PRECONDITION_FAILED",
      "messageCode": "CORE_PARTICIPANT_ENTITY_IN_OPEN_SESSIONS",
      "message": "One or more participant entities are still in active MessagingSessions. To proceed, either close these sessions manually or use the 'forceCloseSessions=true' query parameter to close them automatically.",
      "targets": [
        {
          "type": "QUERY_PARAMETER",
          "reference": "participantEntityId"
        }
      ],
      "parameters": [],
      "errorDetails": [
        {
          "type": "PARTICIPANT_ENTITY_IN_OPEN_SESSIONS",
          "participantEntityId": "0PALT000004IQji",
          "coreParticipantEntityInOpenSessions": [
            {
              "sessionId": "0MwLT000005TBQd"
            }
          ]
        },
        {
          "type": "PARTICIPANT_ENTITY_IN_OPEN_SESSIONS",
          "participantEntityId": "0PALT000004IQjd",
          "coreParticipantEntityInOpenSessions": [
            {
              "sessionId": "0MwLT000005TBQY"
            }
          ]
        }
      ]
    }
    ```
    
    _Example: Restricted Child Objects (Verbose)_ One or more messaging end users have restricted child objects — verbose error with errorDetailsVerbose=true
    
    ```
    {
      "code": null,
      "errorCode": "PRECONDITION_FAILED",
      "messageCode": "CORE_PARTICIPANT_RESTRICTED_CHILD_OBJECTS",
      "message": "Requested participant entities have restricted child objects both or any of (EngagementAttendee, EngagementTopic) that blocked deletion.",
      "targets": [
        {
          "type": "QUERY_PARAMETER",
          "reference": "participantEntityId"
        }
      ],
      "parameters": [],
      "errorDetails": [
        {
          "type": "PARTICIPANT_RESTRICTED_CHILD_OBJECTS",
          "participantEntityId": "0PALT000004IQjs",
          "coreParticipantRestrictedChildObjects": [
            {
              "entityName": "EngagementTopic"
            }
          ]
        }
      ]
    }
    ```
    

### DELETE Deletes the conversation data associated with one or more conversations

`DELETE /conversations`

Operation ID: `deleteConversationsById`. Tags: Conversation.

Deletes the conversation data associated with the Conversation identified by the ID values passed to the API. The conversation data includes Conversation, Messaging Session, Conversation Entry, Conversation Participant, Intelligence Signals, Intelligence Signal Targets, Related Records, Participant, Context Param Maps, and VoiceCall data. Note that Participant is only deleted if it is not associated with other Conversations.

#### Parameters

*   `conversationEntityId` (query, array of string, required, explode: false) Comma-separated IDs of Conversation Entities whose data needs to be deleted. You can pass up to 50 IDs in a single request.
    
    _Example_
    
    ```
    0dw9R000000ZXYmQAO, 0dw9R000000ZXYrQAO, 0dw9R000000ZXYwQAO
    ```
    

#### Responses

*   **200** Successful operation
    
    Media type: `application/json`. Schema: `SuccessfulDeleteResponse`.
    
    _Example: Example_ Success log for Participant deletion
    
    ```
    {
      "conversationApiLogs": {
        "id": "1NcSG0000008afp",
        "requestedEntityId": "0dw9R000000ZXYmQAO",
        "action": "DELETE",
        "status": "ENQUEUED"
      }
    }
    ```
    
*   **400** Invalid API request. This error may occur if no IDs, too many IDs, or invalid IDs were provided in the request.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
    _Example: Invalid Conversation ID Provided_ Example for an invalid Conversation ID
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "INVALID_ENTITY_IDS",
      "message": "Invalid ids found in request",
      "targets": [
        {
          "type": "QUERY_PARAMETER",
          "reference": "conversationEntityId"
        }
      ],
      "parameters": [
        {
          "name": "conversationEntityId",
          "value": "0123fi7000002HeHAAU"
        }
      ],
      "errorDetails": []
    }
    ```
    
    _Example: Partial Conversations Not Found_ Certain Conversations Were Not Found
    
    Returned when some provided IDs are valid but do not exist in the system.
    
    ```
    {
      "code": null,
      "errorCode": "BAD_ARGUMENT",
      "messageCode": "PARTIAL_CONVERSATIONS_NOT_FOUND",
      "message": "Requested conversations not exist: [0dwfi70000020VN]",
      "targets": [
        {
          "type": "QUERY_PARAMETER",
          "reference": "conversationEntityId"
        }
      ],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
*   **412** Precondition failed. This error may occur when your request is valid, but the conversation you are trying to delete either doesn't exist or isn't eligible for deletion.
    
    Media type: `application/json`. Schema: `ErrorResponse`.
    
    _Example: Conversation Does Not Exist_ Conversation does not exist
    
    ```
    {
      "code": null,
      "errorCode": "PRECONDITION_FAILED",
      "messageCode": "CORE_CONVERSATION_ENTITY_NOT_FOUND",
      "message": "All requested conversations not exist",
      "targets": [
        {
          "type": "QUERY_PARAMETER",
          "reference": "conversationEntityId"
        }
      ],
      "parameters": [],
      "errorDetails": []
    }
    ```
    
    _Example: Conversation Has an Active Session_ Error when conversation has an active session
    
    ```
    {
      "code": null,
      "errorCode": "PRECONDITION_FAILED",
      "messageCode": "CORE_CONVERSATION_ENTITY_IN_OPEN_SESSIONS",
      "message": "Requested conversation 0dwfz7000002R0v is still has an active session.",
      "targets": [
        {
          "type": "QUERY_PARAMETER",
          "reference": "conversationEntityId"
        }
      ],
      "parameters": [],
      "errorDetails": []
    }
    ```
    

## Schemas

### ErrorResponse

*   `code` (_integer_) A reserved field that currently only returns null. This field should be ignored for standard implementations.
*   `errorCode` (_string_) Non-HTTP status code of the error.
*   `messageCode` (_string_) Error message code.
*   `message` (_string_) Descriptive detail of the error.
*   `targets` (_array of object_) Identifies the specific location or component of the request that triggered the error.
    *   `type` (_string_)
    *   `reference` (_string_)
*   `parameters` (_array of object_) A collection of key-value pairs that provides the specific input values involved in the error.
*   `errorDetails` (_array of object_) Additional details about the error.

### SuccessfulDeleteResponse

*   `conversationApiLogs` (_object_)
    *   `id` (_string_) ID of the ConversationApiLog entity.  
        Example: `1NcSG0000008afp`.
    *   `requestedEntityId` (_string_) Entity record ID of the object the API operation was performed against.
    *   `action` (_string_) Action Type of the API Operation.  
        Allowed values: `DELETE`. Example: `DELETE`.
    *   `status` (_string_) Status of the API Operation.  
        Allowed values: `REQUESTED`, `ENQUEUED`, `IN_PROGRESS`, `COMPLETED`, `FAILED`. Example: `ENQUEUED`.
    *   `openConversationIdentifiers` (_array of string_) List of conversation UUIDs that were open and automatically closed when `forceCloseSessions=true` was used. Present only when `forceCloseSessions=true` is included in the request; empty array if no conversations required closing.
        
        _Example_
        
        ```
        [
          "9c798944-08f3-445a-8a5f-36c9449a57f6"
        ]
        ```