Skip to main content

Retrieving Deleted Records via OData

Standard OData queries return new and updated records, but do not indicate which records have been deleted.

Standard OData queries return new and updated records, but do not indicate which records have been deleted. If you are synchronising platform data into an external system, your downstream store may retain records that no longer exist in the platform.

The deleted records endpoint allows you to retrieve the GUIDs of records deleted from a specific object within a defined time window, so they can be removed from your external system.


How It Works

The endpoint queries the EU_DELETED_RECORDS object. Each result includes the GUID of the deleted record, the object it belonged to, and the deletion timestamp. Filters are mandatory — the endpoint returns nothing without them.


Prerequisites

Before using the deleted records endpoint:

  • The source object must have auditing enabled.

  • The source object must be published on an OData Resource.

  • The EU_DELETED_RECORDS object must also be published on a Resource.

  • The calling user or service account must have appropriate role access, or a valid mTLS certificate.

  • Your downstream system must already store record GUIDs in order to match and remove deleted records.

Note: Virtual Objects and Summary Objects are not supported by this endpoint.


Querying via URL

Use the following URL pattern for mTLS (certificate-based) access:

https://api.{region}.{domain}/odata-cert/resource.svc/{instance-id}/EU_DELETED_RECORDS?$filter=OBJECT_NAME eq 'CONTRACT' and DELETED_DATE ge datetime'2024-08-01T00:00:00' and DELETED_DATE le datetime'2024-08-01T23:59:59'


Querying via Excel

In Excel, go to Data \> Get Data \> From OData Feed and enter the endpoint URL for your instance, see below URL pattern:

https://api.energysys.com/v2/<instance-id>/EU_DELETED_RECORDS

Select Organisational account authentication. Once connected, apply filters in Power Query using Advanced filter mode. Filter on OBJECT_NAME (equals the object's system name) and DELETED_DATE (a date range with both a lower and upper bound). Records only appear once filters are applied.


Filter Parameters

Parameter

Type

Description

Required

OBJECT_NAME

String

System name of the object

Yes

DELETED_DATE

DateTime

Deletion timestamp — must supply a date range

Yes

Supported operators: eq, ge, le.


Response Fields

Each matching record returns: GUID (unique identifier of the deleted record), IDENTIFIER (object name and GUID combined), OBJECT_NAME, and DELETED_DATE.


Typical Integration Pattern

  1. Pull new and modified records using standard OData with modification date filtering.

  2. Pull deleted record GUIDs using the deleted records endpoint.

  3. Remove matching GUIDs from the downstream system.

This avoids full dataset refreshes and keeps the integration efficient.

Did this answer your question?