---
title: "Publish Results"
method: PUT
path: "/copy-correction/{session_id}/publish-results"
tags: ["Copy Correction"]
---

# Publish Results

`PUT /copy-correction/{session_id}/publish-results`

## Request

- Base URL: `https://api.excellence-ai.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.excellence-ai.com/copy-correction/{session_id}/publish-results`
- Auth: OAuth 2 (password, token URL `api/login`)

Publish results to students. Never changes a copy's grading status:
a copy nobody validated is published as `ai_graded`, once the teacher
confirmed it, and a copy without a grade is refused unless excluded.

## Path parameters

- `session_id` string, required

## Request body

- PublishResultsRequest
  - `hide_grades` boolean
  - `confirm_unreviewed` boolean, nullable
  - `exclude_copy_ids` string[]

## Response `200`

Successful Response

- unknown

## Other responses

- `404`: Resource not found
- `409`: COPIES_NOT_GRADED (pending or failed copies not excluded) or UNREVIEWED_COPIES_NOT_CONFIRMED (copies nobody validated, publishing them not confirmed); lists the `copies`
- `422`: Validation Error

## Changes

> 55 revisions in range; 1 not diffed.

- **2026-10-14** `1160feeb2038`: 4 info
  - added the new optional request property `anyOf[subschema #1: PublishResultsRequest]/confirm_unreviewed`
  - added the new optional request property `anyOf[subschema #1: PublishResultsRequest]/exclude_copy_ids`
  - added the non-success response with the status `404`
  - added the non-success response with the status `409`
- **2026-09-02** `8d495ed916c6`: 1 info
  - added optional request body

[Operation history](https://skmtc.dev/excellence-ai/apis/excellence-learning/changes/copy-correction/:session_id/publish-results/put.md)

---

[API](https://skmtc.dev/excellence-ai/apis/excellence-learning.md) - [All operations](https://skmtc.dev/excellence-ai/apis/excellence-learning/llms.txt) - [OpenAPI document](https://skmtc.dev/excellence-ai/apis/excellence-learning/revisions/379e4a57dee8?raw)
