# Story 1.1: Course Catalog Read API key: 1-1-course-catalog-read-api status: drafted phase: backend-planning note: Non-implementasi — hanya dokumentasi & kontrak API. ## Ringkasan Endpoint read-only untuk daftar kursus dengan paging dan filter dasar. ## Scope Backend - Read list: fields minimum (id, title, category, level, updatedAt) - Query params: `page`, `pageSize`, `q`, `category`, `level` - Sorting: `sortBy=updatedAt|title`, `order=asc|desc` ## Acceptance Gate - Kontrak API disetujui PM/SM/Architect - Data privacy & rate-limiting disepakati - Tidak ada coding hingga gate “solutioning” terpenuhi ## Kontrak (Outline) - Route: GET /api/courses - Response: 200 ``` { "page": 1, "pageSize": 20, "total": 120, "items": [{"id":"c1","title":"Basic Knife Skills","category":"kitchen","level":"beginner","updatedAt":"2025-10-01T12:00:00Z"}] } ```