Read the exact erasure snapshot and progress state for one contract without deleting it.
Access
Requires app_topolo_contracts.workspace:read and the intended authenticated organization and workspace. Select the permitted workspace through the supported resource-binding flow; do not add a workspace id to strict action input.
Steps
- Discover the intended contract in this workspace’s privacy inventory.
- Read its snapshot and state. For a retained record, confirm the exact document/review before planning deletion.
- If the separate erase operation is genuinely intended, retain this snapshot unchanged and obtain the required admin authority and confirmation.
Identifiers
- Use contractId from privacy.get. A preview snapshot is a hash tied to organization, workspace, contract versions and allowed source keys, not an approval token.
Request
GET /api/privacy/contracts/{contractId}
Action: app_topolo_contracts.privacy.preview.
contractId: required, UUID.
Response and effects
- Reads an existing erasure receipt or computes a SHA-256 snapshot over scoped intake/review versions and allowed source object keys. No deletion occurs.
- retained, pending and completed represent different states. A pending record may already have removed database content while object cleanup remains.
- The snapshot can change when source versions change. A preview does not hold a lock or grant deletion authority.
Examples
Example request and response
Request input:
{
"contractId": "11111111-1111-4111-8111-111111111111"
}
Illustrated response:
{
"erasure": {
"contractId": "11111111-1111-4111-8111-111111111111",
"snapshot": "1aaf7e0397388bb78de027c996b61f7775457944030a4582e51e24c188202d00",
"state": "retained",
"requestedAt": null,
"completedAt": null
}
}
HTTP 200 illustration. Hypothetical authorized operation only; inspect the action-specific fields and boundaries below.
Refusal or dependency failure
If: Neither a retained intake nor a review exists for this contractId in the selected scope; for preview there is also no existing erasure receipt to return.
Request input:
{
"contractId": "11111111-1111-4111-8111-111111111111"
}
Source error-code excerpt (HTTP 404):
{
"error": "contract_not_found"
}
Discover the exact retained contract in the same workspace.
Refusal or dependency failure
If: Reading the existing erasure receipt or the scoped source snapshot fails with a non-domain storage error. No deletion is requested by this preview.
Request input:
{
"contractId": "11111111-1111-4111-8111-111111111111"
}
Source error-code excerpt (HTTP 503):
{
"error": "contract_privacy_unavailable"
}
Treat progress as unknown until the read succeeds.
Existing cleanup is pending
Request input:
{
"contractId": "11111111-1111-4111-8111-111111111111"
}
Illustrated response:
{
"erasure": {
"contractId": "11111111-1111-4111-8111-111111111111",
"snapshot": "1aaf7e0397388bb78de027c996b61f7775457944030a4582e51e24c188202d00",
"state": "pending",
"requestedAt": "2026-10-21T00:00:00.000Z",
"completedAt": null
}
}
HTTP 200 illustration. Pending is not completed, even if the review/intake records are already gone.
Verify the result
- Check contractId and state, retain exact snapshot, and read again after any erasure outcome or uncertain response.
Recovery
- 404
contract_not_found: Discover the exact retained contract in the same workspace. - 409
contract_document_scope_invalid: Stop and involve the source/privacy owner; do not broaden the allowed object paths. - 503
contract_privacy_unavailable: Treat progress as unknown until the read succeeds. - 401
authentication_required: Outer authentication/authorization contract: Authenticate again or provide a valid Topolo API key. Reconcile uncertain earlier write effects before any retry. - 403
permission_denied: Outer authentication/authorization contract: Grant the credential permission workspace:read and the required resource binding. Reconcile uncertain earlier write effects before any retry. - 429
rate_limited: Outer authentication/authorization contract: Wait for Retry-After when present, then retry without parallel duplicate calls. Reconcile uncertain earlier write effects before any retry.
Read-only. Refresh the snapshot after a conflict; preserve any pending receipt and reconcile it rather than starting a new unrelated erasure.
Source and example limits — 21 October 2026: based on reviewed Contracts source 4bfd49a; current serving association is unverified. All requests, responses, approvals and document specimens shown are fictional and unrun. Offline schema/ZIP/XML checks do not prove application acceptance, legal completeness, provider outcomes or human approval.