diff --git a/program/serializers.py b/program/serializers.py
index ceb359c9eea675d279a072308053afe902efe6c7..7e9619817551fd3b3ec6e8ddfe2b800706abc4cb 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -19,7 +19,7 @@
 #
 
 import re
-from typing import TypedDict
+from typing import NotRequired, TypedDict
 
 from drf_jsonschema_serializer import JSONSchemaField
 from rest_framework import serializers
@@ -1085,6 +1085,25 @@ class NoteSerializer(serializers.ModelSerializer):
         return instance
 
 
+class RadioCBASettings(TypedDict):
+    api_key: NotRequired[str]
+    domains: list[str]
+
+
+class RadioProgrammeSettings(TypedDict):
+    fallback_show_id: int | None
+
+
+class RadioPlayoutSettings(TypedDict):
+    line_in_channels: dict[str, str]
+
+
+class RadioStationSettings(TypedDict):
+    name: str
+    logo_id: int | None
+    website: str
+
+
 class RadioSettingsSerializer(serializers.ModelSerializer):
     cba = serializers.SerializerMethodField()
     playout = serializers.SerializerMethodField()
@@ -1096,7 +1115,7 @@ class RadioSettingsSerializer(serializers.ModelSerializer):
         fields = read_only_fields
         model = RadioSettings
 
-    def get_cba(self, obj) -> dict[str, str] | dict[str, list[str]]:
+    def get_cba(self, obj) -> RadioCBASettings:
         if self.context.get("request").user.is_authenticated:
             return {
                 "api_key": obj.cba_api_key,
@@ -1106,15 +1125,15 @@ class RadioSettingsSerializer(serializers.ModelSerializer):
             return {"domains": obj.cba_domains}
 
     @staticmethod
-    def get_programme(obj) -> dict[str, int]:
+    def get_programme(obj) -> RadioProgrammeSettings:
         return {"fallback_show_id": obj.fallback_show.id if obj.fallback_show else None}
 
     @staticmethod
-    def get_playout(obj) -> dict[str, dict[str, str]]:
+    def get_playout(obj) -> RadioPlayoutSettings:
         return {"line_in_channels": obj.line_in_channels}
 
     @staticmethod
-    def get_station(obj) -> dict[str, int | str]:
+    def get_station(obj) -> RadioStationSettings:
         return {
             "name": obj.station_name,
             "logo_id": obj.station_logo.id if obj.station_logo else None,