> ## Documentation Index
> Fetch the complete documentation index at: https://docs.genlook.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete Customer Data

> Right-to-erasure: wipe every image and anonymize every generation linked to a given customerId.

Use this endpoint to honor GDPR / right-to-erasure requests. For the given `customerId`, the server:

* Deletes every customer-image stored for that customer (both standalone uploads via [`POST /images/upload`](/tryon-api/endpoints/upload-image) and the snapshots attached to past generations).
* Deletes every generated result image for that customer.
* Anonymizes the corresponding `Generation` rows — `customerId` is set to `NULL`, so aggregate analytics survive but nothing ties back to the individual.

The call is idempotent: if nothing matches, the endpoint still returns `204 No Content`.

<Note>
  Tracking only kicks in when you supply a `customerId` on the original upload or try-on call. Calls made without a `customerId` are not linked to anyone and therefore can't be targeted here — they expire on their own via the retention window.
</Note>

## Request

<ParamField path="customerId" type="string" required>
  The opaque customer identifier you originally sent on `POST /images/upload` and/or `POST /try-on`.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X DELETE "https://api.genlook.app/tryon/v1/customers/your-customer-id" \
    -H "x-api-key: gk_your_api_key"
  ```

  ```javascript JavaScript theme={null}
  await fetch(
    `https://api.genlook.app/tryon/v1/customers/${encodeURIComponent(customerId)}`,
    { method: "DELETE", headers: { "x-api-key": API_KEY } },
  );
  ```

  ```python Python theme={null}
  import requests

  requests.delete(
      f"https://api.genlook.app/tryon/v1/customers/{customer_id}",
      headers={"x-api-key": API_KEY},
  ).raise_for_status()
  ```

  ```ts Node SDK theme={null}
  import { Genlook } from "@genlook/api";

  const client = new Genlook({ apiKey: process.env.GENLOOK_API_KEY! });

  // Idempotent — deleting an unknown customerId still resolves.
  await client.customers.delete("your-customer-id");
  ```
</RequestExample>

## Response

`204 No Content` on success. No body.
