---
title: "Import Candidate Numbers"
method: POST
path: "/Students/CandidateNumbers/Import"
tags: ["Students"]
---

# Import Candidate Numbers

`POST /Students/CandidateNumbers/Import`

**Requires permission:** *IT*

Bulk-set exam candidate numbers from an Excel import, matched by MisId (iSAMS SchoolId). Updates both the per-year Students rows and the canonical Pupil rows. Used by the App Admin 'Candidate Numbers' importer because iSAMS does not expose candidate numbers over its API.

## Query parameters

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

## Request body

- ImportCandidateNumbersRequest
  - `items` ImportCandidateNumbersRequestRow[]
    - `misId` string, nullable
    - `candidateNumber` integer, nullable

## Response `200`

Success - candidate numbers imported

- ImportCandidateNumbersResponse
  - `studentsUpdated` integer
  - `pupilsUpdated` integer
  - `unmatchedMisIds` string[]
  - `meta` Meta
    - `page` integer
    - `pageSize` integer
    - `total` integer

## Other responses

- `400` — An Error Occurred - Could not import candidate numbers
- `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)
