We need an API capability to delete uploaded files (or mark them for deletion) that were previously uploaded via the Hatz Files API. Today, clients can upload files and reference them by UUID in chat/app runs, but there is no supported way to remove them. This makes it hard for client apps to manage storage, privacy, and compliance expectations. Why this is needed (real-world use case) In a chat session, users frequently upload: PDFs, screenshots, incident reports, logs potentially sensitive customer/client data Users expect: the ability to remove accidentally uploaded content the ability to manage and purge uploads for privacy/compliance basic lifecycle management (“clean up my uploads”) similar to other AI platforms Without a delete API: uploaded content can become “orphaned” (no longer referenced but still retained) client apps can’t provide a trustworthy “remove” experience admins/organizations may be unable to meet retention or data minimization requirements What we need A straightforward API endpoint to delete an uploaded file by ID/UUID, with appropriate authorization and safety controls. Recommended API Design: Hard delete (simple and expected) DELETE /file/{file_uuid} Returns confirmation on success. Behavior: File is removed and no longer retrievable/usable. Subsequent attempts to reference the UUID in chat/app runs should return a clear error (e.g., 404 or 410 Gone). Authentication / Authorization Requirements Only the same API key / tenant that uploaded the file should be able to delete it. Deleting should require standard authorization and should not allow cross-tenant deletions. Usage / Lifecycle Considerations 1) Referenced-by behavior If a deleted file UUID is included in a chat/app request: return a clear error that the file is deleted/unavailable ideally include which UUID caused it 2) Bulk delete (nice-to-have) For client cleanup workflows: POST /file/delete body: { "file_uuids": ["...", "..."] } Or a query filter delete: delete by age: “delete all uploads older than X days” delete by tag/metadata if supported 3) List endpoint (if not already available) Deletion is much more useful if paired with a way to enumerate uploads: GET /file/list (paged) include: uuid, filename, size, created_at, mime_type, status (active/deleted)