---
title: "Get a report with its steps"
method: GET
path: "/reports/{id}"
tags: ["Reports"]
---

# Get a report with its steps

`GET /reports/{id}`

**Requires permission:** *StaffMember*

Returns a report's details (with completion stats) and its steps, each step carrying its mark-grade fields (and options) plus its entry count.

## Path parameters

- `id` integer, required

## Response `200`

Success - Retrieved report

- GetReportResponse
  - `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
  - `steps` ReportSteps[]
    - `id` integer
    - `openDate` string, date-time, required
    - `closeDate` string, date-time, required
    - `number` integer, required
    - `reportId` integer, required
    - `hidden` boolean
    - `musicReports` boolean
    - `enableAiChecker` boolean
    - `overwriteName` string, nullable
    - `reportOrder` integer, nullable
    - `groupSelectionsJson` string, nullable
    - `markGrades` ReportMarkGrades[], nullable
      - `id` integer
      - `entryId` integer
      - `fieldId` integer
      - `displayName` string, nullable
      - `value` string, nullable
      - `type` string, nullable
      - `assessment` boolean
      - `field` ReportMarkGradesFields
        - `name` string, nullable
        - `hidden` boolean
        - `stepId` integer
        - `options` ReportMarkGradesFieldsOptions[]
          - `id` integer
          - `fieldId` integer
          - `displayName` string, nullable
          - `value` string, nullable
          - `tempId` string, nullable
          - `allowText` boolean
        - `tempId` string, nullable
        - `saving` boolean
      - `open` boolean
    - `markGradesFields` ReportMarkGradesFields[], nullable
      - `name` string, nullable
      - `hidden` boolean
      - `stepId` integer
      - `options` ReportMarkGradesFieldsOptions[]
        - `id` integer
        - `fieldId` integer
        - `displayName` string, nullable
        - `value` string, nullable
        - `tempId` string, nullable
        - `allowText` boolean
      - `tempId` string, nullable
      - `saving` boolean
    - `entriesToAdd` unknown[], nullable
      - unknown
    - `entries` ReportEntry[], nullable
      - `id` integer
      - `reportId` integer
      - `stepId` integer
      - `entryName` string, nullable
      - `reportText` string, nullable
      - `staffId` integer
      - `pupilNameId` integer
      - `pupilId` integer
      - `pupilUpi` string, guid, nullable
      - `staffUpi` string, guid, nullable
      - `complete` boolean
      - `aiNotUsed` boolean
      - `useGrades` boolean
      - `student` Student
        - `studentId` string, guid
        - `academicYearId` string, guid
        - `misId` string, nullable
        - `externalId` string, nullable
        - `externalId2` string, nullable
        - `upi` string, guid, nullable
        - `upn` string, nullable
        - `code` string, nullable
        - `inUse` boolean
        - `email` string, nullable
        - `academicHouseId` string, guid, nullable
        - `boardingHouseId` string, guid, nullable
        - `yearGroup` string, nullable
        - `form` string, nullable
        - `pupilType` string, nullable
        - `startDate` string, date-time, nullable
        - `leaveDate` string, date-time, nullable
        - `dateOfBirth` string, date-time, nullable
        - `initials` string, nullable
        - `forename` string, nullable
        - `preferredName` string, nullable
        - `middleNames` string, nullable
        - `surname` string, nullable
        - `gender` string, nullable
        - `pronouns` string, nullable
        - `addressId` integer, nullable
        - `addressLine1` string, nullable
        - `addressLine2` string, nullable
        - `locality` string, nullable
        - `administrativeArea` string, nullable
        - `country` string, nullable
        - `postcode` string, nullable
        - `mobileNumber` string, nullable
        - `daytimeNumber` string, nullable
        - `eveningNumber` string, nullable
        - `nationality` string, nullable
        - `secondNationality` string, nullable
        - `lastUpdated` string, date-time, nullable
        - `updatedBy` string, nullable
        - `appAccess` boolean
        - `candidateNumber` integer, nullable
        - `nationalityDescription` string, nullable
        - `yearJoined` integer, nullable
        - `previousSchoolId` string, guid, nullable
        - `attendanceEntries` AttendanceEntry[], nullable
          - `attendanceEntryId` string, guid, nullable
          - `studentUpi` string, guid, nullable
          - `studentName` string, nullable
          - `student` Student — recursive
          - `lessonId` string, guid, nullable
          - `lesson` Lesson
            - `lessonId` string, guid
            - `class` Class
              - …
            - `dayDate` DayDate
              - …
            - `period` Period
              - …
            - `room` Room
              - …
            - `staffUpi` string, guid, nullable
            - `staff` StaffMember
              - …
            - `archived` boolean
          - `date` string, date-time
          - `attendanceCode` string, nullable
          - `submitted` string, date-time, nullable
          - `staffName` string, nullable
          - `staffUpi` string, guid, nullable
          - `staff` StaffMember
            - `staffId` string, guid
            - `employeeId` string, nullable
            - `misId` string, nullable
            - `externalId` string, nullable
            - `externalId2` string, nullable
            - `hrId` string, nullable
            - `payrollId` string, nullable
            - `upi` string, guid, nullable
            - `code` string, nullable
            - `inUse` boolean
            - `email` string, nullable
            - `staffType` string, nullable
            - `school` string, nullable
            - `gender` string, nullable
            - `pronouns` string, nullable
            - `startDate` string, date-time, nullable
            - `leaveDate` string, date-time, nullable
            - `dateOfBirth` string, date-time, nullable
            - `initials` string, nullable
            - `title` string, nullable
            - `forename` string, nullable
            - `preferredName` string, nullable
            - `middleNames` string, nullable
            - `surname` string, nullable
            - `jobTitle` string, nullable
            - `mobileNumber` string, nullable
            - `internalNumber` string, nullable
            - `schoolNumber` string, nullable
            - `addressId` integer, nullable
            - `addressLine1` string, nullable
            - `addressLine2` string, nullable
            - `locality` string, nullable
            - `administrativeArea` string, nullable
            - `country` string, nullable
            - `postcode` string, nullable
            - `lastUpdated` string, date-time, nullable
            - `updatedBy` string, nullable
            - `appAccess` boolean
            - `photo` string, nullable
            - `canBeMasqueraded` boolean
            - `classes` Class[], nullable
              - …
            - `userFields` UserField[], nullable
              - …
          - `archived` boolean
          - `periodId` string, guid, nullable
          - `periodNumber` integer, nullable
          - `period` Period
            - `periodId` string, guid
            - `description` string
            - `day` Day
              - …
            - `startTime` string, time, nullable
            - `endTime` string, time, nullable
            - `periodNumber` integer, nullable
            - `session` string
            - `archived` boolean
            - `timetableMisId` string, nullable
            - `timetableId` string, guid, nullable
            - `timetable` Timetable
              - …
            - `class` Class
              - …
            - `lesson` Lesson
              - …
            - `house` House
              - …
            - `attendanceRegistrationPermissions` AttendancePeriodRegistrationPermission[]
              - …
          - `classId` string, guid, nullable
          - `classCode` string, nullable
          - `class` Class
            - `classId` string, guid
            - `academicYearId` string, guid
            - `inUse` boolean
            - `misId` string, nullable
            - `code` string, nullable
            - `name` string, nullable
            - `subjectId` string, guid, nullable
            - `subject` string, nullable
            - `room` string, nullable
            - `yearGroup` string, nullable
            - `lastUpdated` string, date-time, nullable
            - `updatedBy` string, nullable
            - `classStaff` ClassStaff[], nullable
              - …
            - `students` ClassStudent[], nullable
              - …
          - `subjectId` string, guid, nullable
          - `subjectCode` string, nullable
          - `subject` Subject
            - `subjectId` string, guid
            - `misId` string, nullable
            - `code` string, nullable
            - `inUse` boolean, nullable
            - `department` string, nullable
            - `name` string, nullable
            - `lastUpdated` string, date-time, nullable
            - `updatedBy` string, nullable
            - `subjectHeads` SubjectHead[], nullable
              - …
            - `classes` Class[], nullable
              - …
          - `houseId` string, guid, nullable
          - `house` House
            - `houseId` string, guid
            - `misId` string, nullable
            - `inUse` boolean
            - `code` string, nullable
            - `name` string, nullable
            - `type` string, nullable
            - `day` boolean, nullable
            - `addressLine1` string, nullable
            - `addressLine2` string, nullable
            - `locality` string, nullable
            - `administrativeArea` string, nullable
            - `country` string, nullable
            - `postcode` string, nullable
            - `longLat` string, nullable
            - `whatThreeWords` string, nullable
            - `daytimeNumber` string, nullable
            - `lastUpdated` string, date-time, nullable
            - `updatedBy` string, nullable
            - `staff` HouseStaff[], nullable
              - …
          - `houseCode` string, nullable
          - `notes` string, nullable
          - `futureAbsenceId` string, guid, nullable
          - `absentAlertCounted` boolean
          - `attendanceCodeObject` AttendanceCode
            - `attendanceCodeId` string, guid, nullable
            - `code` string
            - `description` string
            - `category` string
            - `eventType` string, nullable
            - `session` string, nullable
            - `order` integer, nullable
            - `display` boolean, nullable
            - `archived` boolean
            - `showInAbsenceOffex` boolean
            - `isAbsent` boolean
            - `isPresent` boolean
            - `isLate` boolean
            - `isUnauthorised` boolean
          - `isAm` boolean
          - `isPm` boolean
          - `isRegistrationPeriod` boolean
        - `photo` string, nullable
        - `canBeMasqueraded` boolean
        - `sendRecord` Sql02SendRecord
          - `id` integer
          - `sendId` integer
          - `pupil_Name_Id` integer
          - `deleted` boolean, nullable
          - `priority` integer, nullable
          - `laptopUser` boolean, nullable
          - `access` string, nullable
          - `need` string, nullable
          - `youNeedTo` string, nullable
          - `mentor` boolean, nullable
          - `regular` boolean, nullable
          - `leadTeacher` string, nullable
          - `targets` string, nullable
        - `ealRecord` Sql02EalRecord
          - `id` integer
          - `ealId` integer
          - `pupil_Name_Id` integer
          - `deleted` boolean, nullable
          - `priority` integer, nullable
          - `access` string, nullable
          - `need` string, nullable
          - `youNeedTo` string, nullable
          - `leadTeacher` string, nullable
          - `listening` string, nullable
          - `reading` string, nullable
          - `writing` string, nullable
          - `speaking` string, nullable
          - `otherLanguages` string, nullable
          - `furtherComments` string, nullable
          - `pupil_Name_Id_String` string, nullable
        - `medicalRecord` MedicalSummary
          - `id` integer
          - `pupilMedicalId` integer
          - `nameId` integer, nullable
          - `medicalCondition` string, nullable
          - `medicalInformation` string, nullable
          - `allergy` string, nullable
          - `allergyInformation` string, nullable
          - `epiPen` string, nullable
          - `epiPenNotes` string, nullable
          - `inhaler` string, nullable
          - `inhalerNotes` string, nullable
        - `academicHouseObject` House
          - `houseId` string, guid
          - `misId` string, nullable
          - `inUse` boolean
          - `code` string, nullable
          - `name` string, nullable
          - `type` string, nullable
          - `day` boolean, nullable
          - `addressLine1` string, nullable
          - `addressLine2` string, nullable
          - `locality` string, nullable
          - `administrativeArea` string, nullable
          - `country` string, nullable
          - `postcode` string, nullable
          - `longLat` string, nullable
          - `whatThreeWords` string, nullable
          - `daytimeNumber` string, nullable
          - `lastUpdated` string, date-time, nullable
          - `updatedBy` string, nullable
          - `staff` HouseStaff[], nullable
            - `houseStaffId` string, guid
            - `houseId` string, guid
            - `houseCode` string, nullable
            - `staffUPI` string, guid, nullable
            - `role` string, nullable
            - `phoneNumber` string, nullable
            - `bookableInHouseTours` boolean
            - `updateInSync` boolean
            - `staff` StaffMember
              - …
        - `boardingHouseObject` House
          - `houseId` string, guid
          - `misId` string, nullable
          - `inUse` boolean
          - `code` string, nullable
          - `name` string, nullable
          - `type` string, nullable
          - `day` boolean, nullable
          - `addressLine1` string, nullable
          - `addressLine2` string, nullable
          - `locality` string, nullable
          - `administrativeArea` string, nullable
          - `country` string, nullable
          - `postcode` string, nullable
          - `longLat` string, nullable
          - `whatThreeWords` string, nullable
          - `daytimeNumber` string, nullable
          - `lastUpdated` string, date-time, nullable
          - `updatedBy` string, nullable
          - `staff` HouseStaff[], nullable
            - `houseStaffId` string, guid
            - `houseId` string, guid
            - `houseCode` string, nullable
            - `staffUPI` string, guid, nullable
            - `role` string, nullable
            - `phoneNumber` string, nullable
            - `bookableInHouseTours` boolean
            - `updateInSync` boolean
            - `staff` StaffMember
              - …
        - `formObject` Form
          - `formId` string, guid
          - `academicYearId` string, guid
          - `inUse` boolean
          - `misId` string, nullable
          - `code` string, nullable
          - `name` string, nullable
          - `year` string, nullable
          - `room` string, nullable
          - `lastUpdated` string, date-time, nullable
          - `updatedBy` string, nullable
          - `staff` StaffMember[], nullable
            - `staffId` string, guid
            - `employeeId` string, nullable
            - `misId` string, nullable
            - `externalId` string, nullable
            - `externalId2` string, nullable
            - `hrId` string, nullable
            - `payrollId` string, nullable
            - `upi` string, guid, nullable
            - `code` string, nullable
            - `inUse` boolean
            - `email` string, nullable
            - `staffType` string, nullable
            - `school` string, nullable
            - `gender` string, nullable
            - `pronouns` string, nullable
            - `startDate` string, date-time, nullable
            - `leaveDate` string, date-time, nullable
            - `dateOfBirth` string, date-time, nullable
            - `initials` string, nullable
            - `title` string, nullable
            - `forename` string, nullable
            - `preferredName` string, nullable
            - `middleNames` string, nullable
            - `surname` string, nullable
            - `jobTitle` string, nullable
            - `mobileNumber` string, nullable
            - `internalNumber` string, nullable
            - `schoolNumber` string, nullable
            - `addressId` integer, nullable
            - `addressLine1` string, nullable
            - `addressLine2` string, nullable
            - `locality` string, nullable
            - `administrativeArea` string, nullable
            - `country` string, nullable
            - `postcode` string, nullable
            - `lastUpdated` string, date-time, nullable
            - `updatedBy` string, nullable
            - `appAccess` boolean
            - `photo` string, nullable
            - `canBeMasqueraded` boolean
            - `classes` Class[], nullable
              - …
            - `userFields` UserField[], nullable
              - …
          - `students` Student[], nullable
        - `yearObject` Year
          - `yearId` string, guid
          - `academicYearId` string, guid
          - `misId` string, nullable
          - `code` string, nullable
          - `name` string, nullable
          - `finalYear` boolean
          - `dfEYear` integer, nullable
          - `position` integer, nullable
          - `inUse` boolean
          - `lastUpdated` string, date-time, nullable
          - `students` Student[]
          - `updatedBy` string, nullable
        - `relations` Relationship[], nullable
          - `relationshipId` string, guid
          - `fromUPI` string, guid, nullable
          - `toUPI` string, guid, nullable
          - `relationshipName` string, nullable
          - `rank` integer, nullable
          - `billing` boolean
          - `emergency` boolean
          - `medical` boolean
          - `courtOrder` boolean
          - `restricted` boolean
          - `relationshipType` string, nullable
          - `lastUpdated` string, date-time, nullable
          - `updatedBy` string, nullable
          - `createdByApp` boolean
          - `fromPerson` unknown
          - `toPerson` unknown
        - `inverseRelations` Relationship[], nullable
          - `relationshipId` string, guid
          - `fromUPI` string, guid, nullable
          - `toUPI` string, guid, nullable
          - `relationshipName` string, nullable
          - `rank` integer, nullable
          - `billing` boolean
          - `emergency` boolean
          - `medical` boolean
          - `courtOrder` boolean
          - `restricted` boolean
          - `relationshipType` string, nullable
          - `lastUpdated` string, date-time, nullable
          - `updatedBy` string, nullable
          - `createdByApp` boolean
          - `fromPerson` unknown
          - `toPerson` unknown
        - `classes` Class[], nullable
          - `classId` string, guid
          - `academicYearId` string, guid
          - `inUse` boolean
          - `misId` string, nullable
          - `code` string, nullable
          - `name` string, nullable
          - `subjectId` string, guid, nullable
          - `subject` string, nullable
          - `room` string, nullable
          - `yearGroup` string, nullable
          - `lastUpdated` string, date-time, nullable
          - `updatedBy` string, nullable
          - `classStaff` ClassStaff[], nullable
            - `classStaffId` string, guid
            - `classId` string, guid
            - `staffUPI` string, guid, nullable
            - `reportWriter` boolean
            - `parentsEvening` boolean
            - `staff` StaffMember
              - …
            - `class` Class — recursive
          - `students` ClassStudent[], nullable
            - `classStudentId` string, guid
            - `classId` string, guid
            - `studentUPI` string, guid, nullable
            - `student` Student — recursive
        - `musicLessons` MusicLesson[], nullable
          - `id` integer
          - `studentNameId` integer
          - `studentUpi` string, guid, nullable
          - `teacherEmail` string, nullable
          - `instrumentId` integer
          - `lessons` integer
          - `created` string, date-time, nullable
          - `edited` string, date-time, nullable
          - `free` boolean, nullable
          - `notes` string, nullable
          - `archived` boolean
          - `instrument` MusicInstrument
            - `id` integer
            - `description` string, nullable
            - `archived` boolean
            - `orchestralOrder` integer
          - `teacher` StaffMember
            - `staffId` string, guid
            - `employeeId` string, nullable
            - `misId` string, nullable
            - `externalId` string, nullable
            - `externalId2` string, nullable
            - `hrId` string, nullable
            - `payrollId` string, nullable
            - `upi` string, guid, nullable
            - `code` string, nullable
            - `inUse` boolean
            - `email` string, nullable
            - `staffType` string, nullable
            - `school` string, nullable
            - `gender` string, nullable
            - `pronouns` string, nullable
            - `startDate` string, date-time, nullable
            - `leaveDate` string, date-time, nullable
            - `dateOfBirth` string, date-time, nullable
            - `initials` string, nullable
            - `title` string, nullable
            - `forename` string, nullable
            - `preferredName` string, nullable
            - `middleNames` string, nullable
            - `surname` string, nullable
            - `jobTitle` string, nullable
            - `mobileNumber` string, nullable
            - `internalNumber` string, nullable
            - `schoolNumber` string, nullable
            - `addressId` integer, nullable
            - `addressLine1` string, nullable
            - `addressLine2` string, nullable
            - `locality` string, nullable
            - `administrativeArea` string, nullable
            - `country` string, nullable
            - `postcode` string, nullable
            - `lastUpdated` string, date-time, nullable
            - `updatedBy` string, nullable
            - `appAccess` boolean
            - `photo` string, nullable
            - `canBeMasqueraded` boolean
            - `classes` Class[], nullable
              - …
            - `userFields` UserField[], nullable
              - …
          - `student` Student — recursive
          - `scholar` boolean
        - `previousSchool` OtherSchool
          - `otherSchoolId` string, guid
          - `name` string, nullable
          - `addressLine1` string, nullable
          - `addressLine2` string, nullable
          - `locality` string, nullable
          - `administrativeArea` string, nullable
          - `country` string, nullable
          - `postcode` string, nullable
          - `primaryContactName` string, nullable
          - `email` string, nullable
          - `telephone` string, nullable
          - `website` string, nullable
          - `lastUpdated` string, date-time, nullable
          - `updatedBy` string, nullable
          - `code` string, nullable
        - `userFields` UserField[], nullable
          - `userFieldId` string, guid
          - `upi` string, guid, required
          - `displayName` string, nullable
          - `value` string, nullable
          - `lastUpdated` string, date-time, nullable
          - `updatedBy` string, nullable
          - `fromMis` boolean, required
      - `grades` ReportMarkGrades[], nullable
        - `id` integer
        - `entryId` integer
        - `fieldId` integer
        - `displayName` string, nullable
        - `value` string, nullable
        - `type` string, nullable
        - `assessment` boolean
        - `field` ReportMarkGradesFields
          - `name` string, nullable
          - `hidden` boolean
          - `stepId` integer
          - `options` ReportMarkGradesFieldsOptions[]
            - `id` integer
            - `fieldId` integer
            - `displayName` string, nullable
            - `value` string, nullable
            - `tempId` string, nullable
            - `allowText` boolean
          - `tempId` string, nullable
          - `saving` boolean
        - `open` boolean
      - `staffName` string, nullable
      - `published` string, date-time, nullable
      - `subject` string, nullable
      - `hidden` boolean
      - `reportPlainText` string, nullable
      - `reportName` string, nullable
      - `reportHidden` boolean
      - `term` 0 | 1 | 2 | 3
      - `order` integer
      - `stepNumber` integer
      - `stepReportOrder` integer, nullable
      - `academicYear` integer, nullable
    - `reportDetail` ReportDetail
      - `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
    - `total` integer
    - `complete` integer
    - `entryCount` integer
    - `saving` boolean
    - `stepType` 0 | 1 | 2 | 3

## Other responses

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

---

[API](https://skmtc.net/tonbridge/apis/tonbridge-app-api.md) · [All operations](https://skmtc.net/tonbridge/apis/tonbridge-app-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tonbridge/tonbridge-app-api/versions/fab57bf5558a/schema)
