---
title: "Delete a report and everything under it"
method: DELETE
path: "/reports/{id}"
tags: ["Reports"]
---

# Delete a report and everything under it

`DELETE /reports/{id}`

## Request

- Base URL: `https://api.tonbridge.school`
- URL: `https://api.tonbridge.school/reports/{id}`
- Auth: HTTP bearer

**Requires permission:** *ReportAdmins*

Removes the report together with its steps, every pupil entry, those entries' mark grades and pre-AI snapshots, the steps' mark-grade fields and options, and the report's header/footer info. Setup notes are keyed by report NAME and shared with the next year's report of the same name, so they are deliberately left in place. Irreversible: the caller must send the report's own name as ConfirmName.

## Path parameters

- `id` integer, required

## Query parameters

- `confirmName` string, nullable

## Response `200`

Success - Report deleted

- DeleteReportResponse
  - `reportId` integer
  - `name` string, nullable
  - `deleted` ReportDeletionCounts
    - `steps` integer
    - `entries` integer
    - `markGrades` integer
    - `fields` integer
    - `fieldOptions` integer
    - `aiSnapshots` integer
    - `info` integer

## Other responses

- `400`: An Error Occurred - The confirmation name did not match
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found - Report does not exist

## Changes

- **2026-09-15** `c3198d2b5197`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/tonbridge/apis/tonbridge-app-api/changes/reports/:id/delete.md)

---

[API](https://skmtc.dev/tonbridge/apis/tonbridge-app-api.md) - [All operations](https://skmtc.dev/tonbridge/apis/tonbridge-app-api/llms.txt) - [OpenAPI document](https://skmtc.dev/tonbridge/apis/tonbridge-app-api/revisions/d7f60d54b9de?raw)
