Endpoints for managing delete event logs
This functionality is available for Creatio 8.3.2 and later.
Since version 8.3.2, Creatio provides a dedicated REST API that exposes endpoints for configuring delete event logging and retrieving delete event logs. Learn more: Configure delete event logging. The API is optimized for paginated access and integration scenarios.
Before working with the API, ensure that the user on whose behalf the API request is performed has permission to the "Can View Entity Delete Log" (CanViewEntityDeleteLog code) system operation. Out of the box, only users that have the "Administrator," "Developer," "System administrators" role can use the API. Learn more: System operation permissions (user documentation).
Retrieve objects configured for delete event logging
Request string
GET {CreatioURL}/api/v1/entities/eventLogConfigs/{appCode}
Retrieve the list of object codes where delete events are tracked for a specific app code.
Path parameter | Type | Required | Description |
|---|---|---|---|
appCode | string | Yes | The app code used to retrieve objects configured for delete event logging. For example, "Mobile," "IntegrationService." |
Request headers
Header | Description |
|---|---|
Authorization | OAuth access token. Learn more: Authorize external requests using client credentials grant. |
Content-Type | The media type of the request body. Use "application/json." Learn more: Content-Type Header Field (official RFC Editor documentation). |
HTTP status codes
Status code | Description |
|---|---|
200 OK | Request processed successfully. The response body includes one of the following values:
|
403 Forbidden | Insufficient permissions. The user does not have the required operation permissions to retrieve objects configured for delete event logging. |
500 Internal Server Error | Server error during processing. |
Response body
[
"string",
...
]
The response body contains a list of object codes where delete event logging is enabled for the specified app code. If no objects are configured for the specified app code, the response body contains an empty array.
Usage examples
View the example that retrieves the list of object codes where delete event logging is configured for the "Mobile" app code.
- Request (cURL)
- Response (cURL)
curl -i -X GET "https://mycreatio.com/api/v1/entities/eventLogConfigs/Mobile" \
-H "Authorization: Bearer {your-OAuth-access-token}" \
-H "Content-Type: application/json"
HTTP/1.1 200 OK
Content-Type: application/json
[
"Contact",
"Account",
"Activity",
"Lead"
]
View the example that retrieves the list of object codes configured for delete event logging for the "CustomApp" app code when no objects are configured.
- Request (cURL)
- Response (cURL)
curl -i -X GET "https://mycreatio.com/api/v1/entities/eventLogConfigs/CustomApp" \
-H "Authorization: Bearer {your-OAuth-access-token}" \
-H "Content-Type: application/json"
HTTP/1.1 200 OK
Content-Type: application/json
[]
View the example that attempts to retrieve objects where delete event logging is configured for the "Mobile" app code when the current user does not have sufficient permissions.
- Request (cURL)
- Response (cURL)
curl -i -X GET "https://mycreatio.com/api/v1/entities/eventLogConfigs/Mobile" \
-H "Authorization: Bearer {your-OAuth-access-token}" \
-H "Content-Type: application/json"
HTTP/1.1 403 Forbidden
Current user does not have sufficient permissions to run "CanViewEntityDeleteLog"
Add objects for delete event logging
When adding objects for delete event logging, Creatio performs the following actions:
-
Checks whether an object is already configured and active for the specified app code. In this case, the object is not added repeatedly.
-
Reactivates an existing configuration if the object was previously configured but is currently inactive to avoid duplication.
-
Validates that all specified object codes exist in the configuration before processing the request. All validation is performed before any changes are applied. The operation is not transactional at the database level. If at least one object code is invalid:
- the entire request is rejected
- no objects are added for delete event logging
- the API returns a 400 Bad Request status code and a response body that includes a list of invalid object codes
-
Invalidates related caches automatically after objects are successfully added, including cache invalidation across all web farm nodes.
Request string
POST {CreatioURL}/api/v1/entities/eventLogConfigs
Add one or more objects to the delete event logging configuration for a specific app code. After the objects are added, delete events for the specified objects are logged and become available through the delete event log API.
Request headers
Header | Description |
|---|---|
Authorization | OAuth access token. Learn more: Authorize external requests using client credentials grant. |
Content-Type | The media type of the request body. Use "application/json." Learn more: Content-Type Header Field (official RFC Editor documentation). |
Request body
{
"appCode": "string",
"schemaNames": [
"string"
]
}
Field | Type | Required | Description |
|---|---|---|---|
appCode | string | Yes | The app code used to add objects for delete event logging. For example, "Mobile," "IntegrationService." The field cannot be empty or null. |
schemaNames | array of strings | Yes | A list of existing object codes to add to delete event logging. Must contain at least one valid object code. |
HTTP status codes
Status code | Description |
|---|---|
200 OK | Request processed successfully. The response body includes the number of objects added to delete event logging. |
400 Bad Request | Invalid request. Returned when the request body is invalid or contains invalid object codes. The response body contains error details. |
403 Forbidden | Insufficient permissions. The user does not have the required operation permissions to add objects for delete event logging. |
500 Internal Server Error | Server error during processing. |
Response body
- Successful response body
- Unsuccessful response body
{
"addedCount": integer
}
{
"Message": "string",
"ModelState": {
"request.SchemaNames": [
"string"
]
}
}
Field | Type | Description |
|---|---|---|
addedCount | integer | The number of objects added to delete event logging successfully. Includes both newly added and reactivated configurations. Applicable for 200 OK status code. |
Message | string | Error description. Returned when the request fails. Applicable for 400 Bad Request status code. |
ModelState | object | Detailed validation errors for request fields. Applicable for 400 Bad Request status code. Optional. |
ModelState.request.SchemaNames | array of strings | A list of validation error messages related to the |
Usage examples
View the example that adds multiple objects to delete event logging for the "Mobile" app code.
- Request (cURL)
- Response (cURL)
curl -i -X POST "https://mycreatio.com/api/v1/entities/eventLogConfigs" \
-H "Authorization: Bearer {your-OAuth-access-token}" \
-H "Content-Type: application/json" \
-d '{
"appCode": "Mobile",
"schemaNames": [
"Contact",
"Account",
"Lead"
]
}'
HTTP/1.1 200 OK
Content-Type: application/json
{
"addedCount": 3
}
View the example that adds objects to delete event logging for the "Mobile" app code when the "Contact" (Contact code) object is already configured and active.
- Request (cURL)
- Response (cURL)
curl -i -X POST "https://mycreatio.com/api/v1/entities/eventLogConfigs" \
-H "Authorization: Bearer {your-OAuth-access-token}" \
-H "Content-Type: application/json" \
-d '{
"appCode": "Mobile",
"schemaNames": [
"Contact",
"Opportunity"
]
}'
HTTP/1.1 200 OK
Content-Type: application/json
{
"addedCount": 1
}
View the example that sends an invalid request with an empty object list for the "Mobile" app code.
- Request (cURL)
- Response (cURL)
curl -i -X POST "https://mycreatio.com/api/v1/entities/eventLogConfigs" \
-H "Authorization: Bearer {your-OAuth-access-token}" \
-H "Content-Type: application/json" \
-d '{
"appCode": "Mobile",
"schemaNames": []
}'
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"Message": "The request is invalid.",
"ModelState": {
"request.SchemaNames": [
"At least one schema name is required"
]
}
}
View the example that sends a request that contains invalid object codes for the "Mobile" app code. Validation fails before any objects are added.
- Request (cURL)
- Response (cURL)
curl -i -X POST "https://mycreatio.com/api/v1/entities/eventLogConfigs" \
-H "Authorization: Bearer {your-OAuth-access-token}" \
-H "Content-Type: application/json" \
-d '{
"appCode": "Mobile",
"schemaNames": [
"Contact",
"InvalidSchema1",
"Account",
"InvalidSchema2"
]
}'
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"Message": "Invalid schema name(s): InvalidSchema1, InvalidSchema2"
}
View the example that attempts to add objects to delete event logging for the "Mobile" app code when the current user does not have sufficient permissions.
- Request (cURL)
- Response (cURL)
curl -i -X POST "https://mycreatio.com/api/v1/entities/eventLogConfigs" \
-H "Authorization: Bearer {your-OAuth-access-token}" \
-H "Content-Type: application/json" \
-d '{
"appCode": "Mobile",
"schemaNames": ["Contact"]
}'
HTTP/1.1 403 Forbidden
Current user does not have sufficient permissions to run "CanViewEntityDeleteLog"
View the example that returns a server-side error during request processing for the "Mobile" app code.
- Request (cURL)
- Response (cURL)
curl -i -X POST "https://mycreatio.com/api/v1/entities/eventLogConfigs" \
-H "Authorization: Bearer {your-OAuth-access-token}" \
-H "Content-Type: application/json" \
-d '{
"appCode": "Mobile",
"schemaNames": [
"Contact"
]
}'
HTTP/1.1 500 Internal Server Error
Error adding schemas to config for app code: Mobile
Retrieve delete event logs
Request string
POST {CreatioURL}/api/v1/entities/eventLogs
Retrieve delete event logs for configured objects based on optional filters such as object, app code, and period.
Request headers
Header | Description |
|---|---|
Authorization | OAuth access token. Learn more: Authorize external requests using client credentials grant. |
Content-Type | The media type of the request body. Use "application/json." Learn more: Content-Type Header Field (official RFC Editor documentation). |
Request body
{
"entitySchemaNames": [
"Contact",
"Account"
],
"appCode": "Mobile",
"fromDate": "2025-10-01T00:00:00Z",
"toDate": "2025-11-01T00:00:00Z",
"pageSize": 50,
"pageNumber": 1
}
Field | Type | Required | Description |
|---|---|---|---|
entitySchemaNames | array of strings | No | A list of object codes used to filter delete event logs. If the field is omitted or empty, delete event logs for all objects where delete event logging is configured are returned. |
appCode | string | No | The app code used to filter delete event logs. |
fromDate | datetime | No | The start date of the period for retrieving delete event logs, in ISO-8601 format (UTC). Only records after this date are returned. |
toDate | datetime | No | The end date of the period for retrieving delete event logs, in ISO-8601 format (UTC). Only records before this date are returned. |
pageSize | integer | No | The number of records to return per page. By default, "50." Acceptable values range from "1" to "1000." |
pageNumber | integer | No | The page number to retrieve. Page numbering starts at "1." By default, "1." |
HTTP status codes
Status code | Description |
|---|---|
200 OK | Request processed successfully. The response body contains delete event logs that match the specified filters. |
400 Bad Request | Invalid request parameters. Returned when the request body contains validation errors. |
403 Forbidden | Insufficient permissions. The user does not have the required operation permissions to retrieve delete event logs. |
500 Internal Server Error | Server error during processing. |
Response body
- Successful response body
- Unsuccessful response body
{
"data": [
{
"entitySchemaName": "string",
"recordId": "guid"
},
...
],
"pageNumber": integer,
"pageSize": integer,
"totalCount": integer,
"totalPages": integer,
"hasNextPage": boolean,
"hasPreviousPage": boolean
}
{
"Message": "string",
"ModelState": {
"request.{field}": [
"string"
]
}
}
Field | Type | Description |
|---|---|---|
data[].entitySchemaName | string | The object code where the delete event log record occurred. Applicable for 200 OK status code. |
data[].recordId | guid | The unique ID of the deleted record. Applicable for 200 OK status code. |
pageNumber | integer | The current page number. Page numbering starts at "1." Applicable for 200 OK status code. |
pageSize | integer | The number of records returned per page. Applicable for 200 OK status code. |
totalCount | integer | The total number of delete event log records that match the specified filters. Applicable for 200 OK status code. |
totalPages | integer | The total number of available pages. Applicable for 200 OK status code. |
hasNextPage | boolean | Determines whether more pages are available. Applicable for 200 OK status code. |
hasPreviousPage | boolean | Determines whether previous pages are available. Applicable for 200 OK status code. |
Message | string | Error description returned when the request fails. Applicable for 400 Bad Request status code. |
ModelState | object | Detailed validation errors returned when the request body is invalid. Applicable for 400 Bad Request status code. Optional. |
ModelState.{field} | array of strings | A list of validation errors for a specific request field. Applicable for 400 Bad Request. Optional. |
Usage examples
View the example that retrieves delete event logs for the "Mobile" app code starting from the specified date. The response returns the first page of results with a page size of 100 records.
- Request (cURL)
- Response (cURL)
curl -i -X POST "https://mycreatio.com/api/v1/entities/eventLogs" \
-H "Authorization: Bearer {your-OAuth-access-token}" \
-H "Content-Type: application/json" \
-d '{
"appCode": "Mobile",
"fromDate": "2025-11-14T00:00:00Z",
"pageSize": 100,
"pageNumber": 1
}'
HTTP/1.1 200 OK
Content-Type: application/json
{
"data": [
{
"entitySchemaName": "Contact",
"recordId": "a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d"
},
{
"entitySchemaName": "Account",
"recordId": "f6e5d4c3-b2a1-4c5d-9e8f-7a6b5c4d3e2f"
}
],
"pageNumber": 1,
"pageSize": 100,
"totalCount": 2,
"totalPages": 1,
"hasNextPage": false,
"hasPreviousPage": false
}
View the example that retrieves delete event logs for the "Contact" (Contact code) and "Lead" (Lead code) objects configured for delete event logging for the "Mobile" app code within the specified period. The response returns the first page of results with a page size of 50 records.
curl -i -X POST "https://mycreatio.com/api/v1/entities/eventLogs" \
-H "Authorization: Bearer {your-OAuth-access-token}" \
-H "Content-Type: application/json" \
-d '{
"entitySchemaNames": [
"Contact",
"Lead"
],
"appCode": "Mobile",
"fromDate": "2025-11-01T00:00:00Z",
"toDate": "2025-11-21T23:59:59Z",
"pageSize": 50,
"pageNumber": 1
}'
View the example that retrieves the second page of delete event logs for the "Mobile" app code with a page size of 50 records.
curl -i -X POST "https://mycreatio.com/api/v1/entities/eventLogs" \
-H "Authorization: Bearer {your-OAuth-access-token}" \
-H "Content-Type: application/json" \
-d '{
"appCode": "Mobile",
"pageSize": 50,
"pageNumber": 2
}'
View the example that sends a request that contains an invalid page size value. The API returns a validation error indicating that the page size is outside the allowed range.
- Request (cURL)
- Response (cURL)
curl -i -X POST "https://mycreatio.com/api/v1/entities/eventLogs" \
-H "Authorization: Bearer {your-OAuth-access-token}" \
-H "Content-Type: application/json" \
-d '{
"pageSize": 2000,
"pageNumber": 1
}'
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"Message": "The request is invalid.",
"ModelState": {
"query.PageSize": [
"Page size must be between 1 and 1000"
]
}
}
View the example that attempts to retrieve delete event logs for the "Mobile" app code when the current user does not have sufficient permissions.
- Request (cURL)
- Response (cURL)
curl -i -X POST "https://mycreatio.com/api/v1/entities/eventLogs" \
-H "Authorization: Bearer {your-OAuth-access-token}" \
-H "Content-Type: application/json" \
-d '{
"appCode": "Mobile"
}'
HTTP/1.1 403 Forbidden
Current user does not have sufficient permissions to run "CanViewEntityDeleteLog"