diff --git a/program/serializers.py b/program/serializers.py
index fb41a215b2079049c82e281a6871c8133a42c2c8..04db8b51ab1c021135ddb7bfa44de129dbe1ed96 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -265,6 +265,7 @@ class ImageSerializer(serializers.ModelSerializer):
     )
     ppoi = PPOIField(required=False)
     thumbnails = serializers.SerializerMethodField()
+    url = serializers.SerializerMethodField()
 
     @staticmethod
     def get_thumbnails(instance) -> List[Thumbnail]:
@@ -284,12 +285,22 @@ class ImageSerializer(serializers.ModelSerializer):
 
         return thumbnails
 
+    @staticmethod
+    def get_url(instance: Image) -> str:
+        """Returns the image URL, using settings.SITE_URL to include the protocol and avoid mixed
+        media warnings."""
+
+        return f"{settings.SITE_URL}{instance.image.url}"
+
     class Meta:
+        # TODO: make `image` a write-only field once dashboard is updated to read from `url`
+        # extra_kwargs = {"image": {"write_only": True}}
         model = Image
         read_only_fields = (
             "height",
             "id",
             "thumbnails",
+            "url",
             "width",
         )
         fields = (