---
title: "Upload Course Images"
method: POST
path: "/my-courses/upload"
tags: ["My Courses"]
---

# Upload Course Images

`POST /my-courses/upload`

Upload base64-encoded images for a new course. This will:
1. Upload the files to S3
2. Create a new Course document with status "UPLOADING"
3. Start a background task to process the course

If create_as_teacher is True and the user is a teacher/admin, the course
will be created as a teacher course (is_teacher_course=True).

Returns the course_id and initial status.

## Request body

- RoutersMyCoursesBatchFileUploadRequest
  - `files` RoutersMyCoursesFileUploadRequest[], required
    - `file_content` string, required
    - `file_name` string, required
    - `content_type` string, required
  - `depth` integer
  - `include_qcm` boolean
  - `include_flashcards` boolean
  - `include_illustrations` boolean
  - `include_excellence_tips` boolean
  - `custom_instructions` string, nullable
  - `create_as_teacher` boolean
  - `subject` 'maths' | 'physique-chimie', nullable

## Response `200`

Successful Response

- RoutersMyCoursesCourseUploadResponse
  - `course_id` string, required
  - `status` string, required

## 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-service-production.skmtc.workers.dev/v1/apis/excellence-ai/excellence-learning/revisions/8d495ed916c6/schema)
