---
title: Change History Endpoints
framework: Apple Ads Platform API
role: collectionGroup
role_heading: API Collection
platforms: [apple ads platform api 1.0+]
path: apple-ads-platform-api/change-history-endpoints
---

# Change History Endpoints

Query audit summaries and retrieve change detail records for entities in an ad account.

## Overview

Overview Change History provides a chronological log of every create, update, and delete operation performed on campaign entities within an ad account. Each entry captures what changed, which entity the change affected, who made the change, and when it occurred. Use it alongside the Reports API to correlate configuration changes with shifts in campaign performance. important: The query endpoint’s summary rows don’t carry a ready-to-use detailId by default. If you plan to look up field-level changes with the detail endpoint, set options.metadata to latest or snapshot on the query request so each row’s metas array includes a detailId you can pass straight to GET /v1/change-history/{detailId} (Get Change History Detail). See Interpret the Response below for the full explanation. Review the Endpoints Change History exposes two endpoints: one to query audit summaries and one to retrieve field-level change details.  |  |   |  |   |  |  Structure the Request The change history query endpoint uses a different schema from other /query endpoints in the API. The request body supports the following top-level fields: filters: array of filter conditions. Every query request requires a time-range filter on eventTime. Use BETWEEN for a bounded range or GREATER_THAN or LESS_THAN for an open-ended range. sorting: array of sort objects, each with a field and order direction (ASC or DESC). pagination: offset and pageSize to control result pages. options: additional query controls. needTotals: defaults to "true". Set to "false" to skip the COUNT query and reduce response time, so pagination.totalCount is 0. timeZone: controls how the API interprets eventTime filter values, using UTC (default) or ORTZ (converted to UTC server-side using the org’s configured timezone). metadata: controls which entity metadata appears in change detail responses, using none (default, no metadata), latest (joins current entity metadata), or snapshot (uses metadata captured at the time of the event). Interpret the Response All change history endpoints return a dataType field that identifies the response object type. The query endpoint returns "dataType": "AuditSummary" and the detail endpoint returns "dataType": "ChangeDetail". Each AuditSummary row represents one transaction grouping. The count field indicates how many entity changes of that entity type, user, and transaction grouping the row contains. An AuditSummary row alone doesn’t carry the detailId needed to look up field-level changes: the detail endpoint’s detailId is a composite EntityType.entityId.txnId string, and a summary row has entityType and transactionId but not entityId. To get a ready-to-use detailId, set options.metadata to latest or snapshot on the query request. Each resulting row’s metas array then includes one entry per changed entity, and you can pass each entry’s detailId field directly to GET /v1/change-history/{detailId} (Get Change History Detail). See AuditSummary for the full metas shape and the metadata option behavior. Each ChangeDetails record represents a single entity change within a transaction and contains a details array of ActivityDetail objects. Each ActivityDetail holds a changes array of field change objects, where each entry captures the field name, oldValues, and newValues as string arrays. Filter Results The following fields are available as filter targets on the query endpoint:  |  |   |  |   |  |   |  |   |  |   |  |   |  |   |  |   |  |   |  |   |  |  Identify Entity Types The entityType field in both summary and detail responses identifies which API entity the change affected. It isn’t a closed enum: its value matches the name of whatever API entity changed. Commonly observed values include the following:  |   |   |   |   |   |   |   |   |   |  Identify Event Types The eventType field describes the nature of the change in a transaction. The event type determines how the API populates oldValues and newValues in field change objects:  |   |   |   |

## Topics

- [Query Change History](apple-ads-platform-api/query-audit-summary-_-grouped-by-transaction.md)
- [Get Change History Detail](apple-ads-platform-api/get-change-details-by-detailid.md)

## See Also

### Change History

- [Change History Response Objects](apple-ads-platform-api/change-history-response-objects.md)
- [Change History Query Objects](apple-ads-platform-api/change-history-query-objects.md)
- [Change History Enumerations](apple-ads-platform-api/change-history-enumerations.md)
