diff --git a/.gitignore b/.gitignore
index 440d8107..4048074a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,4 @@
 .phpunit.result.cache
 
 /build
+.idea
\ No newline at end of file
diff --git a/apps/backoffice/backend/config/routes/courses.yaml b/apps/backoffice/backend/config/routes/courses.yaml
index 06ae46ee..e3f615fb 100644
--- a/apps/backoffice/backend/config/routes/courses.yaml
+++ b/apps/backoffice/backend/config/routes/courses.yaml
@@ -3,3 +3,9 @@ courses_get:
   controller: CodelyTv\Apps\Backoffice\Backend\Controller\Courses\CoursesGetController
   defaults: { auth: false }
   methods:  [GET]
+
+courses_all:
+  path: /courses/all
+  controller: CodelyTv\Apps\Backoffice\Backend\Controller\Courses\AllCoursesController
+  defaults: { auth: false }
+  methods:  [GET]
diff --git a/apps/backoffice/backend/src/Controller/Courses/AllCoursesController.php b/apps/backoffice/backend/src/Controller/Courses/AllCoursesController.php
new file mode 100644
index 00000000..14c17435
--- /dev/null
+++ b/apps/backoffice/backend/src/Controller/Courses/AllCoursesController.php
@@ -0,0 +1,37 @@
+<?php
+
+namespace CodelyTv\Apps\Backoffice\Backend\Controller\Courses;
+
+use CodelyTv\Backoffice\Courses\Application\BackofficeCourseResponse;
+use CodelyTv\Backoffice\Courses\Application\BackofficeCoursesResponse;
+use CodelyTv\Backoffice\Courses\Application\SearchAll\SearchAllBackofficeCoursesQuery;
+use CodelyTv\Shared\Domain\Bus\Query\QueryBus;
+use Symfony\Component\HttpFoundation\JsonResponse;
+use Symfony\Component\HttpFoundation\Request;
+use function Lambdish\Phunctional\map;
+
+class AllCoursesController
+{
+    public function __construct(private QueryBus $queryBus)
+    {
+    }
+
+    public function __invoke(Request $request): JsonResponse
+    {
+        /** @var BackofficeCoursesResponse $response */
+        $response = $this->queryBus->ask(new SearchAllBackofficeCoursesQuery());
+
+        return new JsonResponse(
+            map(
+                fn(BackofficeCourseResponse $course) => [
+                    'id'       => $course->id(),
+                    'name'     => $course->name(),
+                    'duration' => $course->duration(),
+                ],
+                $response->courses()
+            ),
+            200,
+            ['Access-Control-Allow-Origin' => '*']
+        );
+    }
+}