Delete a project
delete_projectDelete a project for good, with everything its runs stored. Use it only when the person asks for the project to go, e.g. to free a slot after create_project is refused with plan_limit. To stop a run use cancel_job; to stop scheduled runs set schedule to 'manual' with update_project. Inputs: project_id from list_projects. confirm_name must repeat the project's name exactly as get_project shows it, or nothing is deleted. Effect: its runs, pages, change records and webhook history are removed for good, and a run in progress stops. Credits already spent stay spent. A second call answers 404. Needs an admin API key. A connected app (OAuth) never has one: it is refused with code admin_only and told where to delete instead.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | The project's 32-character hex id, from list_projects. | |
| confirm_name | Yes | The project's name, exactly as get_project shows it. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The deleted project's id. | |
| code | No | Only on a failure: e.g. admin_only (the key is not an admin's), validation (confirm_name did not match) or not_found. | |
| name | No | Its name, as confirmed. | |
| note | No | What was removed with it. | |
| error | No | Only when the call failed: what went wrong, in words an assistant can act on. | |
| detail | No | Only on a failure: the API's own wording, when the error was rephrased. | |
| status | No | Only on a failure: the HTTP status code. | |
| deleted | No | true once the project and its history are gone. |