The process of building custom applications and tools that interact with Microsoft SharePoint, including SharePoint Online in Microsoft 365.
Hi @Tom Avi
Just to clarify, moderators and contributors here don’t have access to back‑end systems or engineering internals. We can only share guidance based on public documentation and experience.
1.How should consumers of sites/delta programmatically detect that a site was deleted
There’s no supported way to detect a site deletion from a single sites/delta response. The API does not emit a deletion marker; instead, deletion is inferred through reconciliation.
To use sites/delta effectively, you first perform a full enumeration and build a local store of site IDs. On subsequent calls with the saved @odata.deltaLink, you compare your local set against the server’s current state. If a site that previously existed locally such as All Company is missing from the server’s authoritative state during reconciliation, you remove it from your local store and treat it as deleted.
In other words, deletion is determined by the absence of a site across delta cycles, not by inspecting any explicit field in the JSON payload.
2.Is a deletion indicator (@removed or deleted facet) planned for sites/delta?
Unlike some other delta APIs, sites/delta does not currently return an explicit deletion signal such as @removed or a deleted facet. There’s no documentation suggesting that such an indicator is planned. Consumers must rely on state reconciliation rather than payload flags.
3.In Example 2, what in the response indicates that "All Company" was deleted?
Nothing in the sites/delta response payload explicitly signals deletion. In Example 2, the JSON for All Company is just a standard site object. The claim that All Company was deleted comes only from the explanatory text above the JSON, not from any field in the response itself.
The example assumes you had a previously synchronized local state where All Company existed. When reconciling across delta cycles, its absence from the current server state is what indicates deletion.
In other words, Example 2 is descriptive rather than declarative, it describes the outcome of reconciliation, not an explicit deletion signal in the payload.
I hope this explanation makes things clearer.
If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.