---
title: "Upload Student Photo"
method: POST
path: "/copy-correction/student/acquisition/{session_id}/upload-photo"
tags: ["Copy Correction"]
---

# Upload Student Photo

`POST /copy-correction/student/acquisition/{session_id}/upload-photo`

## 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/student/acquisition/{session_id}/upload-photo`
- Auth: OAuth 2 (password, token URL `api/login`)

Student uploads a photo (already uploaded to S3 via /image/upload).

Uses atomic ``$push`` + ``find_one_and_update`` so concurrent uploads
from different students can't clobber each other's writes (the previous
read-modify-write pattern lost ~30% of photos under load).

## Path parameters

- `session_id` string, required

## Request body

- UploadPhotoBody
  - `image_url` string, required

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[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)
