diff --git a/apigee_sync.go b/apigee_sync.go
index 97cbe70..3fed06a 100644
--- a/apigee_sync.go
+++ b/apigee_sync.go
@@ -18,6 +18,12 @@
 var lastSequence string
 var gsnapshotInfo string
 
+func add_headers(req *http.Request) {
+	req.Header.Add("Authorization", "Bearer "+token)
+	req.Header.Set("apid_instance_id", guuid)
+	req.Header.Set("apid_cluster_Id", gapidConfigId)
+}
+
 func donehandler(e apid.Event) {
 	if rsp, ok := e.(apid.EventDeliveryEvent); ok {
 		if rsp.Description == "event complete" {
@@ -132,7 +138,7 @@
 		/* If error, break the loop, and retry after interval */
 		client := &http.Client{}
 		req, err := http.NewRequest("GET", uri, nil)
-		req.Header.Add("Authorization", "Bearer "+token)
+		add_headers(req)
 		r, err := client.Do(req)
 		if err != nil {
 			log.Errorf("change agent comm error: %s", err)
@@ -368,7 +374,7 @@
 		CheckRedirect: Redirect,
 	}
 	req, err := http.NewRequest("GET", uri, nil)
-	req.Header.Add("Authorization", "Bearer "+token)
+	add_headers(req)
 
 	/* Set the transport protocol type based on conf file input */
 	if config.GetString(configSnapshotProtocol) == "json" {
diff --git a/apigee_sync_test.go b/apigee_sync_test.go
index 25e7782..4f2374d 100644
--- a/apigee_sync_test.go
+++ b/apigee_sync_test.go
@@ -71,6 +71,7 @@
 				if phase == 0 {
 					phase = 1
 					Expect(q.Get("scope")).To(Equal(scope))
+					Expect(req.Header.Get("apid_cluster_Id")).To(Equal("bootstrap"))
 
 					apidcfgItem := common.Row{}
 					apidcfgItems := []common.Row{}
@@ -156,6 +157,7 @@
 			// next requests are for changes
 			if req.URL.Path == "/changes" {
 				Expect(req.Method).To(Equal("GET"))
+				Expect(req.Header.Get("apid_cluster_Id")).To(Equal("bootstrap"))
 				q := req.URL.Query()
 				Expect(q.Get("snapshot")).To(Equal("snapinfo1"))
 				scparams := q["scope"]
