Archive (soft-delete) or purge an app (v2)
Auth: Tenant Actor
Default behavior is soft archive: the app's status flips to archived, login and listing endpoints hide it, and all child entities (users, chats, messages, files) are retained. The archive is reversible via POST /v2/apps/{appId}/restore.
Pass ?mode=hard for a cascade purge (irreversible). The app is immediately flipped to status: 'deleting' and a backend-jobs worker drains every related collection (users + XMPP accounts, chats + MUC rooms + MAM, files + MinIO objects, sources, AppAcl, RefreshToken, SessionsLog, BotInstance, AppStat, Owner2App, App doc).
The hard-delete response is 202 Accepted with a jobId and statusUrl so the admin panel can poll progress via GET /v2/apps/purge-jobs/{jobId}. Soft archive returns 200 immediately since it has no async work.
Optional ?reason=... is stored alongside the archive metadata for audit purposes (visible to the tenant owner via the list endpoint with ?status=archived).
Supports User JWT and B2B Server JWT.
Request
- Base URL: https://api.chat.ethora.com
- URL: https://api.chat.ethora.com/v2/apps/{appId}
- Auth: one of:
- HTTP bearer
- HTTP bearer
Path parameters
Target App ID. Must be an app the calling actor owns or has been delegated access to.
Query parameters
soft (default): reversible archive, returns 200. hard: cascade purge, returns 202 + jobId.
Optional human-readable explanation stored with the archive.
Response
archived ok (mode=soft)
Changes
No recorded changes to this operation across all 1 revision of this API.