Delete project
delete_projectPermanently delete a project and all its subprojects, work packages, comments, attachments, time entries, versions, wiki pages, and memberships. Requires explicit confirmation; irreversible and runs asynchronously.
Instructions
Schedule the permanent deletion of a project and everything inside it.
Use only on an explicit, specific instruction. Deletion CASCADES: every subproject,
work package, comment, attachment, time entry, version, wiki page and membership of
this project goes with it, and OpenProject offers no API-side undo. If the goal is
only to get the project out of the way, update_project(active=false) archives it
instead — reversible, and it preserves the data.
Deletion is ASYNCHRONOUS upstream: OpenProject accepts the request and runs it as a
background job. This tool therefore returns {scheduled: true, job_id, message},
never a claim that the project is already gone — for a large project the data
disappears over minutes and get_project may still answer during that window.
Pitfalls: deleting normally requires admin rights (403 otherwise). A 404 means the
id or identifier is wrong, or the project was already deleted. Because the work runs
in the background, a later failure inside the job is not visible here; confirm with
get_project (it should eventually 404) rather than assuming success.
Cross-references: get_project to check what you are about to destroy;
list_projects(parent_id=...) to see the subprojects that would go with it;
update_project(active=false) for the reversible alternative.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true. Ask the user to confirm first: this is irreversible and cascades. Calling with confirm=false returns a confirmation_required error and deletes nothing. | |
| id_or_identifier | Yes | Numeric project id or URL identifier of the project to destroy. Read it back with get_project first and show the user the name — an identifier typo can point at a different project. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The project id or identifier the deletion was asked for. | |
| job_id | No | Background job id, when the instance reported one; null otherwise. OpenProject exposes it at /api/v3/job_statuses/{id}. | |
| message | Yes | What was scheduled, in plain language. | |
| scheduled | Yes | True once OpenProject accepted the request. Deletion runs as a background job, so the project can still be readable for a while afterwards. |