---
title: "Create a report draft"
method: POST
path: "/reports/setup"
tags: ["Reports"]
---

# Create a report draft

`POST /reports/setup`

**Requires permission:** *ReportAdmins*

Persists a report detail row (created in draft from the setup screen). Port of the legacy v2 PostCreateReportDetails (Update upsert on ReportDetail).

## Request body

- CreateReportDetailsRequest
  - `name` string, required
  - `academicYear` integer
  - `yearGroup` string, required
  - `publishToParents` string, date-time, required
  - `publishToStudents` string, date-time, required
  - `sportAllocation` boolean
  - `draft` boolean
  - `hidden` boolean
  - `total` integer
  - `complete` integer

## Response `200`

Success - Report created as draft (returns the new report id)

## Other responses

- `400` — An Error Occurred - Could not create report
- `401` — Unauthorized
- `403` — Forbidden

## Changes

- **2026-07-26** `87818d31ea72` — 1 breaking, 1 info
  - removed the success response with the status `204`
  - added the success response with the status `200`

[Change history](https://skmtc.dev/tonbridge/apis/tonbridge-app-api/changes/reports/setup/post.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-service-production.skmtc.workers.dev/v1/apis/tonbridge/tonbridge-app-api/revisions/223cb0feedeb/schema)
