---
title: "Get a pupil by UPI"
method: GET
path: "/pupils/{upi}"
tags: ["Pupils"]
---

# Get a pupil by UPI

`GET /pupils/{upi}`

**Requires permissions:** *AcademicStaff* or *AcademicSupport* or *StudentFacing*

A single canonical pupil identified by UPI, with their full enrolment history ordered newest academic year first.

## Path parameters

- `upi` string, guid, required

## Query parameters

- `page` integer, required
- `pageSize` integer, required
- `includes` string[], nullable
- `sort` string, nullable
- `filter` string, nullable

## Response `200`

Success - pupil returned

- GetPupilResponse
  - `meta` Meta
    - `page` integer
    - `pageSize` integer
    - `total` integer
  - `pupil` PupilDetail
    - `upi` string, guid
    - `upn` string, nullable
    - `forename` string, nullable
    - `preferredName` string, nullable
    - `middleNames` string, nullable
    - `surname` string, nullable
    - `dateOfBirth` string, date-time, nullable
    - `gender` string, nullable
    - `lifecycleStatus` string
    - `enrolments` EnrolmentDto[]
      - `academicYearId` string, guid
      - `academicYearCode` integer, nullable
      - `yearGroup` string, nullable
      - `form` string, nullable
      - `code` string, nullable
      - `pupilType` string, nullable
      - `academicHouseId` string, guid, nullable
      - `boardingHouseId` string, guid, nullable
      - `inUse` boolean
      - `startDate` string, date-time, nullable
      - `leaveDate` string, date-time, nullable

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — No pupil exists for the given UPI

---

[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/28344aa564b4/schema)
