---
title: "Copy written text and entered grades from one report step to another"
method: POST
path: "/reports/copy"
tags: ["Reports"]
---

# Copy written text and entered grades from one report step to another

`POST /reports/copy`

## Request

- Base URL: `https://api.tonbridge.school`
- URL: `https://api.tonbridge.school/reports/copy`
- Auth: HTTP bearer

**Requires permission:** *ReportAdmins*

For each entry in the source step, finds the entry in the target step for the same pupil and the same entry name, and fills in its report text and/or its mark-grade values. Only ever fills a blank: anything a teacher has already written in the target is left alone and counted as skipped. Written for the School's interim reports, whose text and grades carry into the end-of-term report for the same subject.

## Request body

- CopyReportEntriesRequest
  - `sourceStepId` integer
  - `targetStepId` integer
  - `subjects` string[]
  - `copyText` boolean
  - `copyGrades` boolean

## Response `200`

Success - Copy run finished

- CopyReportEntriesResponse
  - `sourceEntries` integer
  - `matched` integer
  - `unmatched` integer
  - `textCopied` integer
  - `textSkipped` integer
  - `gradesCopied` integer
  - `gradesSkipped` integer

## Other responses

- `400`: An Error Occurred - Source or target step is not valid
- `401`: Unauthorized
- `403`: Forbidden

## Changes

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

[Operation history](https://skmtc.dev/tonbridge/apis/tonbridge-app-api/changes/reports/copy/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.dev/tonbridge/apis/tonbridge-app-api/revisions/d7f60d54b9de?raw)
