---
title: "Redact a customer across all stored PII"
method: POST
path: "/compliance/customer-redact"
tags: ["Compliance"]
---

# Redact a customer across all stored PII

`POST /compliance/customer-redact`

## Request

- Base URL: `https://api.savanto.ai`
- URL: `https://api.savanto.ai/compliance/customer-redact`
- Auth: HTTP bearer

Hard-deletes every thread document and memory document within the caller tenant that matches the supplied customer identifiers. Runs as async OpenSearch tasks; the response contains task IDs for reconciliation. Idempotent when `caller.externalId` is supplied.

## Request body

- CustomerRedactRequest
  - `customer` ComplianceCustomerId, required
    - `email` string, email: Customer email (case-insensitive match).
    - `phone` string: Customer phone in E.164 format.
    - `customerId` string: Platform-specific customer identifier (e.g. Shopify customer.id).
  - `caller` ComplianceCaller, required
    - `source` 'shopify' | 'wordpress' | 'dashboard' | 'sdk', required: Which integration fired the request.
    - `shopDomain` string: Merchant shop domain (Shopify webhooks only).
    - `externalId` string: Upstream request id used to make this call idempotent on retry.
  - `workspaceId` string: If provided, limit redaction to a single workspace. Defaults to tenant scope.

## Response `200`

Redaction queued (async task submitted)

- object
  - `object` 'compliance_request', required
  - `requestId` string, required
  - `data` ComplianceAuditResponse, required
    - `requestId` string, required
    - `status` 'queued' | 'completed' | 'failed', required
    - `requestType` 'customer_redact' | 'customer_data_request', required
    - `requestedAt` string, date-time, required
    - `threadTaskId` string: OpenSearch _tasks id for thread-doc deletion (reconciler polls this).
    - `memoryTaskId` string
    - `summary` string

## Other responses

- `400`: Validation error
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `409`: Conflict
- `413`: Payload too large
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/savanto/apis/savanto-api.md) · [All operations](https://skmtc.dev/savanto/apis/savanto-api/llms.txt) · [OpenAPI document](https://skmtc.dev/savanto/apis/savanto-api/revisions/82437327a878?raw)
