diff --git a/apid.go b/apid.go
index a7429b5..ea4eb8d 100644
--- a/apid.go
+++ b/apid.go
@@ -57,11 +57,12 @@
 	pluginInitFuncs = append(pluginInitFuncs, plugin)
 }
 
-func InitializePlugins() {
+func InitializePlugins(versionNumber string) {
 	log := Log()
 	log.Debugf("Initializing %d plugins...", len(pluginInitFuncs))
 	pie := PluginsInitializedEvent{
 		Description: "plugins initialized",
+		ApidVersion: versionNumber,
 	}
 	for _, pif := range pluginInitFuncs {
 		pluginData, err := pif(services)
diff --git a/events/events_test.go b/events/events_test.go
index 8c338b6..1bdcd54 100644
--- a/events/events_test.go
+++ b/events/events_test.go
@@ -293,7 +293,7 @@
 		}
 		apid.Events().ListenFunc(apid.SystemEventsSelector, h)
 
-		apid.InitializePlugins()
+		apid.InitializePlugins("")
 	})
 
 	It("shutdown event should be emitted and listened successfully", func(done Done) {
@@ -333,7 +333,7 @@
 		}
 
 
-		apid.InitializePlugins()
+		apid.InitializePlugins("")
 
 		apid.ShutdownPluginsAndWait()
 
@@ -345,6 +345,36 @@
 
 		close(done)
 	})
+
+	It("should be able to read apid version from PluginsInitialized event", func(done Done) {
+		xData := make(map[string]interface{})
+		xData["schemaVersion"] = "1.2.3"
+		p := func(s apid.Services) (pd apid.PluginData, err error) {
+			pd = apid.PluginData{
+				Name:      "test plugin",
+				Version:   "1.0.0",
+				ExtraData: xData,
+			}
+			return
+		}
+		apid.RegisterPlugin(p)
+
+		apidVersion := "dummy_version"
+
+		h := func(event apid.Event) {
+			defer GinkgoRecover()
+
+			if pie, ok := event.(apid.PluginsInitializedEvent); ok {
+
+				apid.Events().Close()
+				Expect(pie.ApidVersion).To(Equal(apidVersion))
+				close(done)
+			}
+		}
+		apid.Events().ListenFunc(apid.SystemEventsSelector, h)
+
+		apid.InitializePlugins(apidVersion)
+	})
 })
 
 func createDummyPlugin(id int) apid.PluginInitFunc{
diff --git a/events_service.go b/events_service.go
index c11b358..f7156a5 100644
--- a/events_service.go
+++ b/events_service.go
@@ -48,7 +48,8 @@
 type PluginsInitializedEvent struct {
 	Description string
 	// using slice member will make the type "PluginsInitializedEvent" uncomparable
-	Plugins []PluginData
+	Plugins     []PluginData
+	ApidVersion string
 }
 
 type PluginData struct {
