diff --git a/main/main.go b/main/main.go
index 7057e32cd89af4a225857c5f248fcfc9679fdee1..11db3bbf04ece07fc559c37582cb91ed74e8b674 100644
--- a/main/main.go
+++ b/main/main.go
@@ -31,6 +31,7 @@ func main() {
 	router.HandleFunc("/health", handler.Health).Methods("GET")
 	router.HandleFunc("/campaign", handler.CreateCampaign).Methods("POST")
 	router.HandleFunc("/campaigns", handler.GetCampaigns).Methods("GET")
+	router.HandleFunc("/campaign/{id}", handler.GetCampaign2).Methods("GET")
 	if err := http.ListenAndServe(":8000", router); err != nil {
 		log.Fatal(err)
 	}
diff --git a/src/myaktion/handler/campaign.go b/src/myaktion/handler/campaign.go
index 9eb9f9ea4fffa75f32d77234419619dc1c3c9194..3315e491ce72cfeac923aec1674edf1f2cf5660c 100644
--- a/src/myaktion/handler/campaign.go
+++ b/src/myaktion/handler/campaign.go
@@ -44,3 +44,21 @@ func GetCampaign(r *http.Request) (*model.Campaign, error) {
 	}
 	return &campaign, nil
 }
+
+func GetCampaign2(w http.ResponseWriter, r *http.Request) {
+	id, idErr := getId(r)
+	if idErr != nil {
+		log.Errorf("Error calling service getId: %v", idErr)
+		http.Error(w, idErr.Error(), http.StatusInternalServerError)
+		return
+	}
+
+	resCampaign, err := service.GetCampaign2(id)
+	if err != nil {
+		log.Errorf("Error calling service GetCampaign: %v", err)
+		http.Error(w, err.Error(), http.StatusInternalServerError)
+		return
+	}
+	log.Infof("Campaign with the ID %v was printed", resCampaign.ID)
+	sendJson(w, resCampaign)
+}
diff --git a/src/myaktion/service/campaign.go b/src/myaktion/service/campaign.go
index 7963eb6097f2d4ef8071643468888d75722dc2e9..61eb1f6090e4b7b38b0bccd16f9c8ac67ef374a4 100644
--- a/src/myaktion/service/campaign.go
+++ b/src/myaktion/service/campaign.go
@@ -1,6 +1,8 @@
 package service
 
 import (
+	"errors"
+
 	log "github.com/sirupsen/logrus"
 
 	"gitlab.reutlingen-university.de/albrecht/myaktion-go/src/myaktion/model"
@@ -32,3 +34,16 @@ func GetCampaigns() ([]model.Campaign, error) {
 	log.Tracef("Retrieved: %v", campaigns)
 	return campaigns, nil
 }
+
+func GetCampaign2(requestedID uint) (model.Campaign, error) {
+	var resCampaign model.Campaign
+	for _, campaign := range campaignStore {
+		if campaign.ID == requestedID {
+			resCampaign = *campaign
+			log.Tracef("Retrieved: %v", resCampaign)
+
+			return resCampaign, nil
+		}
+	}
+	return resCampaign, errors.New("keine Campaign mit der ID wurde gefunden")
+}