diff --git a/src/api/api_v1_types.ts b/src/api/api_v1_types.ts
index 384de8d6778b60f2a3ea73f81010c97cd53961e2..0717feeb42592b94d990eea5c0d00ccce54af278 100644
--- a/src/api/api_v1_types.ts
+++ b/src/api/api_v1_types.ts
@@ -18,12 +18,13 @@ export type status_value = "available" | "readonly" | "unavailable";
 export type changelog_entry_type = "modification" | "deletion_change" | "creation" | "unknown";
 export type object_type =
     | "announcement"
-    | "featured"
+    | "chapter"
     | "course"
+    | "featured"
     | "lecture"
-    | "permission"
-    | "chapter"
-    | "publish_medium";
+    | "media_process_template"
+    | "publish_medium"
+    | "sorter_file";
 
 // Complex Types
 export interface announcement {
@@ -36,13 +37,6 @@ export interface announcement {
     expiration_time?: datetime;
 }
 
-export interface homepage {
-    featured: featured[];
-    upcoming_lectures: lecture[];
-    latest_lectures: lecture[];
-    course_context: { [key: int]: course };
-}
-
 export interface featured {
     display_priority?: int;
     id?: int;
@@ -73,7 +67,6 @@ export interface course {
     organizer: string;
     semester?: semester_string;
     short_name: string;
-    // TODO not used?
     show_chapters_on_course: boolean;
     topic: string;
     visible?: boolean;
@@ -360,16 +353,8 @@ export interface PutFeedbackNewRequest {
 
 /// GET /object_management/{object_type}/{object_id}/configuration
 // Request Interface
-// TODO: fix?
 export interface GetConfigurationRequest {
-    object_type:
-        | "announcement"
-        | "featured"
-        | "course"
-        | "lecture"
-        | "permission"
-        | "chapter"
-        | "publish_medium";
+    object_type: object_type;
     object_id: int;
 }
 // Response Interface
@@ -381,14 +366,7 @@ export interface GetConfigurationResponse {
 /// GET /object_management/{object_type}/new/configuration
 // Request Interface
 export interface GetNewConfigurationRequest {
-    object_type:
-        | "announcement"
-        | "featured"
-        | "course"
-        | "lecture"
-        | "permission"
-        | "chapter"
-        | "publish_medium";
+    object_type: object_type;
 }
 // Response Interface
 export interface GetNewConfigurationResponse {
@@ -471,7 +449,7 @@ export interface SearchRequest {
 export interface SearchResponse {
     courses: int[];
     lectures: lecture[];
-    course_context: { [key: int]: course };
+    course_context: { [key: string]: course };
 }
 
 /// POST /object_management/{object_type}/{object_id}/resurrect
diff --git a/src/components/CourseListing.tsx b/src/components/CourseListing.tsx
index 41b361ba16dc7f17559e4f3456db7e71bb6c0a22..5d20150933bf90a9a4e611376cc23f81fab0a279 100644
--- a/src/components/CourseListing.tsx
+++ b/src/components/CourseListing.tsx
@@ -154,10 +154,12 @@ function ListingHeader({ course }: { course: GetCourseResponse }) {
 export function LectureListItem({
     lecture,
     course_handle,
+    show_chapters,
     ...props
 }: {
     lecture: lecture;
-    course_handle?: string;
+    course_handle: string;
+    show_chapters: boolean;
     [key: string]: any;
 }) {
     const { editMode } = useEditMode();
@@ -184,7 +186,7 @@ export function LectureListItem({
                         }}
                         className="col-sm-2 col-12 thumbnailimg"
                     >
-                        <Link href={`/${course_handle ?? lecture.course_id}/${lecture.id}`}>
+                        <Link href={`/${course_handle}/${lecture.id}`}>
                             <span
                                 aria-hidden="true"
                                 className={"playpreviewbtn bi bi-play-circle"}
@@ -262,7 +264,7 @@ export function LectureListItem({
                             allowMarkdown={true}
                         />
                     </li>
-                    {lecture.chapters?.map((chapter) => (
+                    {show_chapters && lecture.chapters?.map((chapter) => (
                         <li
                             key={chapter.name}
                             className={
@@ -273,7 +275,7 @@ export function LectureListItem({
                             <span className="bi bi-play" />
                             <Link
                                 href={
-                                    `/${course_handle ?? lecture.course_id}/${lecture.id}?t=` +
+                                    `/${course_handle}/${lecture.id}?t=` +
                                     chapter.start_time
                                 }
                             >
@@ -388,6 +390,7 @@ function ListingBody({ course }: { course: GetCourseResponse }) {
                                 key={lecture.id}
                                 lecture={lecture}
                                 course_handle={course.handle}
+                                show_chapters={course.show_chapters_on_course}
                             />
                         ))}
                 </ul>
diff --git a/src/pages/search.tsx b/src/pages/search.tsx
index 8753e28805ed86e8f86187c391c61106e502f13b..9510aa6235c5bb3d8a448a61fabca0dda76db9ab 100644
--- a/src/pages/search.tsx
+++ b/src/pages/search.tsx
@@ -27,9 +27,11 @@ function CourseResults({ courses }: { courses: course[] }) {
 
 function LectureResults({
     lectures,
+    course_context,
     tabIndexBegin,
 }: {
     lectures: lecture[];
+    course_context: { [key: string]: course };
     tabIndexBegin: number;
 }) {
     return (
@@ -40,6 +42,8 @@ function LectureResults({
                     <LectureListItem
                         key={lecture.id}
                         lecture={lecture}
+                        course_handle={course_context[lecture.course_id.toString()].handle}
+                        show_chapters={course_context[lecture.course_id.toString()].show_chapters_on_course}
                         tabIndex={tabIndexBegin + ind}
                     />
                 ))}
@@ -97,6 +101,7 @@ export function SearchResults({ query }: { query: string }) {
                 {searchResults.lectures.length > 0 && (
                     <LectureResults
                         lectures={searchResults.lectures}
+                        course_context={searchResults.course_context}
                         tabIndexBegin={searchResults.courses.length + 1}
                     />
                 )}