---
title: "Create Course From Urls"
method: POST
path: "/my-courses/from-urls"
tags: ["My Courses"]
---

# Create Course From Urls

`POST /my-courses/from-urls`

Create a new course from a list of image URLs (already uploaded) and/or a
pasted source text. Used when images have been uploaded via other means
(e.g. PDF conversion, photos sent in the chat).

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

## Request body

- RoutersMyCoursesCreateCourseFromUrlsRequest
  - `title` string, required
  - `image_urls` string[], required
  - `source_text` string, nullable
  - `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

## Changes

- **2026-09-09** `e75413b9576a` — 1 warning
  - removed the request property `depth`

[Change history](https://skmtc.dev/excellence-ai/apis/excellence-learning/changes/my-courses/from-urls/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/2a0c1636fd3b?raw)
