---
title: "Request App User Erasure"
method: POST
path: "/v2/applications/{application_id}/user_erasures"
tags: ["App User Erasures V2"]
---

# Request App User Erasure

`POST /v2/applications/{application_id}/user_erasures`

## Request

- Base URL: `https://api.superwall.com`
- URL: `https://api.superwall.com/v2/applications/{application_id}/user_erasures`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `accounts_superwall_token`
  - HTTP bearer

Schedules the erasure of one app user from every application in the application's project, since a user's subscriptions and web purchases span them. It runs 25 days later and can be cancelled until then. If the user already has a scheduled or running request, that request is returned. Requires app_users:erase scope.

## Path parameters

- `application_id` string, required

## Request body

- object
  - `app_user_id` string, required: The app user id to erase, exactly as your app identifies it
  - `external_reference` string: Your own reference for the request, e.g. a support ticket id
  - `acknowledge_active_subscriptions` boolean: Erase even though the user has an active subscription billed through your own payment account (e.g. Stripe). Erasure does not cancel it, so the user keeps being charged until you cancel it.

## Response `200`

Success

- object
  - `id` string, required
  - `object` 'app_user_erasure', required: Object type, always `app_user_erasure`
  - `application_id` string, required
  - `app_user_id` string, nullable, required: The app user id to erase. Null once the erasure has completed.
  - `status` 'scheduled' | 'cancelled' | 'running' | 'completed', required: `scheduled` until `eligible_at` (cancellable), then `running`, then `completed`
  - `source` 'api' | 'dashboard' | 'admin', required: Where the request was made
  - `external_reference` string, nullable, required: Your own reference for the request, e.g. a support ticket id
  - `created_at` string, required: ISO 8601 timestamp of the request
  - `eligible_at` string, required: ISO 8601 timestamp after which the erasure runs; cancellable until then
  - `cancelled_at` string, nullable, required
  - `started_at` string, nullable, required
  - `completed_at` string, nullable, required
  - `steps` object[], required: Per-store progress, empty until the erasure starts
    - `store` 'clickhouse' | 'subscriptions_db' | 'subscriptions_scylla' | 'mmp' | 'notifications', required: Store the step erases
    - `completed_at` string, nullable, required: ISO 8601 timestamp the store finished erasing, null until then

## Other responses

- `400`: The request did not match the expected schema | The request was invalid or malformed
- `401`: No API key was provided in the request | The API key does not have a valid format | The API key is invalid or has been revoked | An error occurred while validating the API key | The session cookie is invalid or expired
- `403`: The API key does not have permission to perform this action
- `404`: The requested resource was not found
- `409`: Cancel the subscriptions first, or retry with `acknowledge_active_subscriptions: true`.
- `429`: Too many requests have been made in a short period
- `500`: An unexpected error occurred on the server | A query against the Superwall database failed
- `502`: The upstream subscriptions service request failed

## Changes

- **2026-10-29** `778a11cd2c15`: 7 warning, 4 info
  - added the new `credentials_missing` enum value to the `anyOf[subschema #2]/code` response property for the response status `400`
  - added the new `credentials_missing` enum value to the `code/anyOf[subschema #1]/` response property for the response status `403`
  - added the new `credentials_missing` enum value to the `code/anyOf[subschema #1]/` response property for the response status `404`
  - added the new `credentials_missing` enum value to the `code/anyOf[subschema #1]/` response property for the response status `409`
  - …7 more
- **2026-10-29** `7e65bcbd2cce`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/superwall/apis/superwall-api-v2/changes/v2/applications/:application_id/user_erasures/post.md)

---

[API](https://skmtc.dev/superwall/apis/superwall-api-v2.md) - [All operations](https://skmtc.dev/superwall/apis/superwall-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/superwall/apis/superwall-api-v2/revisions/523b4734dfab?raw)
