---
title: "Import component marks from exam board files"
method: POST
path: "/Exams/ComponentMarks/Import"
tags: ["Exams"]
---

# Import component marks from exam board files

`POST /Exams/ComponentMarks/Import`

**Requires permission:** *ExamAdmin*

Accepts whatever the board sent — JCQ a2c XML, a Cambridge International component marks spreadsheet, or a JCQ EDI results file — one file or several, and saves the marks against the given year. The format is detected from each file's contents, not its name. WorkbookMark chooses the raw, adjusted or weighted column of a spreadsheet; DuplicateHandling decides whether a mark that already exists is added alongside or overwritten; DryRun reports what would happen and writes nothing.

## Query parameters

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

## Response `200`

Success - Component marks imported

- PostImportComponentMarksResponse
  - `componentMarks` PassExamComponentMark[]
    - `id` integer
    - `candidateNumber` integer
    - `componentId` string
    - `componentMark` string
    - `year` integer
    - `type` string
  - `files` PostImportComponentMarksFileSummary[]
    - `fileName` string, nullable
    - `format` string, nullable
    - `marks` integer
  - `format` string, nullable
  - `dryRun` boolean
  - `inserted` integer
  - `updated` integer
  - `existingDuplicates` integer
  - `duplicatesWithinUpload` integer
  - `distinctComponentCodes` integer
  - `matchedComponentCodes` integer
  - `meta` Meta
    - `page` integer
    - `pageSize` integer
    - `total` integer

## Other responses

- `400` — A file could not be read, or held no marks
- `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/revisions/4263dd755e48/schema)
