diff --git a/src/api/views/rooms.py b/src/api/views/rooms.py
index 716e8795e55ec091a9b6322e0da51deab81d6445..82c422a2d1478d65289a8e2f472bf33ad063005e 100644
--- a/src/api/views/rooms.py
+++ b/src/api/views/rooms.py
@@ -14,7 +14,7 @@ class ConferenceRoomList(ConferenceSlugMixin, generics.ListAPIView):
     serializer_class = RoomSerializer
 
     def get_queryset(self, **kwargs):
-        return Room.objects.conference_accessible(conference=self.conference).order_by('name')
+        return Room.objects.conference_accessible(conference=self.conference).order_by('official_room_order', 'name')
 
 
 class ConferenceRoomDetail(ConferenceSlugMixin, generics.RetrieveAPIView):
diff --git a/src/core/admin.py b/src/core/admin.py
index 8158cdcd2d8298de242c0e11d39fd529859fa8aa..d9ee6d63023dc4ceef23e7dcd652ed3192127f44 100644
--- a/src/core/admin.py
+++ b/src/core/admin.py
@@ -750,11 +750,11 @@ class RoomShareAdmin(admin.ModelAdmin):
 
 
 class RoomAdmin(admin.ModelAdmin):
-    list_display = ['conference', 'assembly', 'name', 'room_type', 'blocked']
+    list_display = ['conference', 'assembly', 'name', 'room_type', 'blocked', 'official_room_order', 'id']
     list_display_links = ['name']
     list_filter = ['conference', 'room_type', 'backend_status', 'blocked', 'is_official', 'is_public_fahrplan']
     save_as = True
-    search_fields = ['assembly__name', 'name', 'slug']
+    search_fields = ['assembly__name', 'name', 'slug', 'id']
     inlines = [RoomLinkInline, RoomShareInline, TagsInline]
     readonly_fields = ['id', 'occupants', 'reserve_capacity']
     ordering = ('-conference__id', F('assembly__is_official').desc(nulls_last=True), 'assembly__name', F('capacity').desc(nulls_last=True), 'name')