dsl struct tags; wip
diff --git a/service_client.go b/service_client.go
index 8546625..7484c67 100644
--- a/service_client.go
+++ b/service_client.go
@@ -45,6 +45,12 @@
 	if JSONResponse != nil {
 		opts.JSONResponse = JSONResponse
 	}
+
+	if opts.MoreHeaders == nil {
+		opts.MoreHeaders = make(map[string]string)
+	}
+	opts.MoreHeaders["X-OpenStack-Nova-API-Version"] = client.Microversion
+
 	return client.Request("GET", url, opts)
 }
 
@@ -64,6 +70,11 @@
 		opts.JSONResponse = JSONResponse
 	}
 
+	if opts.MoreHeaders == nil {
+		opts.MoreHeaders = make(map[string]string)
+	}
+	opts.MoreHeaders["X-OpenStack-Nova-API-Version"] = client.Microversion
+
 	return client.Request("POST", url, opts)
 }
 
@@ -83,6 +94,11 @@
 		opts.JSONResponse = JSONResponse
 	}
 
+	if opts.MoreHeaders == nil {
+		opts.MoreHeaders = make(map[string]string)
+	}
+	opts.MoreHeaders["X-OpenStack-Nova-API-Version"] = client.Microversion
+
 	return client.Request("PUT", url, opts)
 }
 
@@ -102,6 +118,11 @@
 		opts.JSONResponse = JSONResponse
 	}
 
+	if opts.MoreHeaders == nil {
+		opts.MoreHeaders = make(map[string]string)
+	}
+	opts.MoreHeaders["X-OpenStack-Nova-API-Version"] = client.Microversion
+
 	return client.Request("PATCH", url, opts)
 }
 
@@ -111,5 +132,10 @@
 		opts = &RequestOpts{}
 	}
 
+	if opts.MoreHeaders == nil {
+		opts.MoreHeaders = make(map[string]string)
+	}
+	opts.MoreHeaders["X-OpenStack-Nova-API-Version"] = client.Microversion
+
 	return client.Request("DELETE", url, opts)
 }