---
title: "Attach Student To Pending Student"
method: POST
path: "/teacher/classes/{class_id}/pending-students/{pending_student_id}/attach"
tags: ["Teacher"]
---

# Attach Student To Pending Student

`POST /teacher/classes/{class_id}/pending-students/{pending_student_id}/attach`

## 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/teacher/classes/{class_id}/pending-students/{pending_student_id}/attach`
- Auth: OAuth 2 (password, token URL `api/login`)

The teacher confirms that a pupil who joined with the class code is
this name of the class's list: the pupil takes over the row and the
copies graded on it (EXC-1069). A class code alone no longer does.

## Path parameters

- `class_id` string, required
- `pending_student_id` string, required

## Request body

- RosterRowAttach
  - `student_id` string, required: An account already in the class, to take over the row

## Response `200`

Successful Response

- RosterRowAttachedResponse
  - `pending_student_id` string, required
  - `student_id` string, required

## Other responses

- `404`: Resource not found
- `409`: Business rule violated
- `422`: Validation Error

## Changes

> 55 revisions in range; 1 not diffed.

- **2026-10-14** `1160feeb2038`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/excellence-ai/apis/excellence-learning/changes/teacher/classes/:class_id/pending-students/:pending_student_id/attach/post.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)
