---
title: "List Courses"
method: GET
path: "/api/v1/courses"
tags: ["api", "api", "courses"]
---

# List Courses

`GET /api/v1/courses`

## Request

- Base URL: `https://www.faroz.uz` (the document declares no server; this is the origin it was published from)
- URL: `https://www.faroz.uz/api/v1/courses`
- Auth: HTTP bearer

## Query parameters

- `search` string, nullable: Sarlavha/tavsif bo'yicha qidiruv
- `categories` string[], nullable: Kategoriyalar (AND)
- `genres` string[], nullable: Janrlar (AND)
- `tags` string[], nullable: Teglar (AND)
- `page` integer: Sahifa (hajmi 12)
- `scope` string, nullable: mine — faqat men boshqaradigan kurslar (muallif / kurs-admin); bo'sh — hammasi (katalog)

## Response `200`

Successful Response

- CoursePage: §1.1 standart paginatsiya javobi (items = Course[]).
  - `items` Course[], required
    - `id` string, required
    - `title` string, required
    - `description` string, nullable
    - `categories` string[]
    - `genres` string[]
    - `tags` string[]
    - `is_active` boolean
    - `student_count` integer
    - `banner_url` string, nullable
    - `lessons` Lesson[]
      - `id` string, required
      - `title` string, required
      - `description` string, nullable
      - `exercise_ids` string[]
      - `is_public` boolean
      - `progress_percentage` integer
      - `is_open` boolean
      - `homework_enabled` boolean
      - `homework_description` string, nullable
      - `homework_status` string, nullable
      - `homework_score` integer, nullable
    - `calendar_events` CalendarEvent[]
      - `date` string, required
      - `status` string, required
    - `author_id` integer, nullable
    - `author` CourseAuthor
      - `id` integer, required
      - `name` string
      - `avatar` string
      - `title` string
    - `subject` string, nullable
    - `level` string, nullable
    - `age_min` integer
    - `age_max` integer
    - `rating` number
    - `price_type` string
    - `price` integer
    - `created_at` string, required
    - `enrollment_status` 'request' | 'student' | 'teacher' | 'supportTeacher' | 'parent' | 'staff' | 'spam': Kurs o'quvchisining roli/holati (COURSES_API.md §3).
    - `can_manage` boolean
    - `is_course_admin` boolean
    - `pricing` CoursePricingOutput: Kurs obuna sozlamalari (muallif belgilaydi). Muallif bir nechta obuna turini qo'shadi (`plans`) — har birining o'z davri (haftalik, 1 / 3 / 6 oylik yoki butun kurs), narxi va chegirmasi bor; bir davr bir marta. Pulli kursda obunasiz faqat ochiq (`is_public`) darslar ko'rinadi.
      - `is_paid` boolean
      - `plans` CoursePlan[]
        - `period` 'week' | 'month' | 'month3' | 'month6' | 'full', required
        - `price` integer
        - `discount_percent` integer
      - `note` string
      - `billing` string, required
      - `price` integer, required
      - `full` integer, required
      - `discount_percent` integer, required
      - `trial_lessons` integer, required
    - `my_subscription` CourseSubscriptionInfo: Joriy foydalanuvchining shu kursdagi obunasi.
      - `period` 'week' | 'month' | 'month3' | 'month6' | 'full', required
      - `price` integer, required
      - `status` string, required
      - `auto_renew` boolean, required
      - `started_at` string, required
      - `expires_at` string, nullable
    - `has_access` boolean
    - `children` CourseChild[]
      - `student_id` string, required
      - `full_name` string, required
      - `relation` 'ota' | 'ona' | 'aka' | 'opa' | 'uka' | 'singil' | 'toga' | 'amaki' | 'amma' | 'xola' | 'bobo' | 'buvi' | 'vasiy' | 'boshqa', required
      - `avatar_url` string, nullable
      - `mastery_percent` integer
      - `rank` integer, nullable
  - `page` integer, required
  - `pages_count` integer, required
  - `total` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/faroz/apis/edu-app-api.md) · [All operations](https://skmtc.dev/faroz/apis/edu-app-api/llms.txt) · [OpenAPI document](https://skmtc.dev/faroz/apis/edu-app-api/revisions/414a551ba773?raw)
