diff --git a/client/adaptor/kie_client_test.go b/client/adaptor/kie_client_test.go
index 20443e9..2702cdc 100644
--- a/client/adaptor/kie_client_test.go
+++ b/client/adaptor/kie_client_test.go
@@ -123,7 +123,7 @@
 //TestKieClient_DeleteConfigs for test DeleteConfigs.
 func TestKieClient_DeleteConfigs(t *testing.T) {
 	//v1/calculator/kie/kv?q=env:+servicename:calculator+version:0.0.1+app:
-	helper := startHttpServer(":49800", "/v1/calculator/kie/kv/?kvID=s")
+	helper := startHttpServer(":49800", "/v1/calculator/kie/kv/?kv_id=s")
 	gopath := os.Getenv("GOPATH")
 	os.Setenv("CHASSIS_HOME", gopath+"src/github.com/go-chassis/go-chassis/examples/discovery/server/")
 	kieClient, err := NewClient(remote.Options{Labels: map[string]string{
diff --git a/client/client.go b/client/client.go
index 5d63d1e..b5a52a7 100644
--- a/client/client.go
+++ b/client/client.go
@@ -223,7 +223,8 @@
 	if options.Project == "" {
 		options.Project = defaultProject
 	}
-	url := fmt.Sprintf("%s/%s/%s/%s/?kvID=%s", c.opts.Endpoint, version, options.Project, APIPathKV, kvID)
+	url := fmt.Sprintf("%s/%s/%s/%s/?%s=%s", c.opts.Endpoint, version, options.Project, APIPathKV,
+		common.QueryParamKeyID, kvID)
 	if labelID != "" {
 		url = fmt.Sprintf("%s?labelID=%s", url, labelID)
 	}
diff --git a/pkg/common/common.go b/pkg/common/common.go
index fad017d..ba59d91 100644
--- a/pkg/common/common.go
+++ b/pkg/common/common.go
@@ -23,7 +23,7 @@
 	QueryByLabelsCon = "&"
 	QueryParamWait   = "wait"
 	QueryParamMatch  = "match"
-	QueryParamKeyID  = "kvID"
+	QueryParamKeyID  = "kv_id"
 )
 
 //http headers
diff --git a/server/resource/v1/doc_struct.go b/server/resource/v1/doc_struct.go
index 00e2135..6af548e 100644
--- a/server/resource/v1/doc_struct.go
+++ b/server/resource/v1/doc_struct.go
@@ -68,23 +68,12 @@
 		ParamType: goRestful.QueryParameterKind,
 		Required:  true,
 	}
-	DocQueryKeyParameters = &restful.Parameters{
-		DataType:  "string",
-		Name:      "key",
-		ParamType: goRestful.QueryParameterKind,
-		Desc:      "only return history about a specific key",
-	}
 	DocQueryLabelParameters = &restful.Parameters{
 		DataType:  "string",
 		Name:      "label",
 		ParamType: goRestful.QueryParameterKind,
 		Desc:      "label pairs,for example &label=service:order&label=version:1.0.0",
 	}
-	DocQueryLabelIDParameters = &restful.Parameters{
-		DataType:  "string",
-		Name:      "labelID",
-		ParamType: goRestful.QueryParameterKind,
-	}
 )
 
 //swagger doc path params
@@ -112,7 +101,7 @@
 //KVBody is open api doc
 type KVBody struct {
 	Labels    map[string]string `json:"labels"`
-	ValueType string            `json:"valueType"`
+	ValueType string            `json:"value_type"`
 	Value     string            `json:"value"`
 }
 
diff --git a/server/resource/v1/kv_resource.go b/server/resource/v1/kv_resource.go
index f38c9eb..785d10b 100644
--- a/server/resource/v1/kv_resource.go
+++ b/server/resource/v1/kv_resource.go
@@ -233,6 +233,7 @@
 	domain := ReadDomain(context)
 	if domain == nil {
 		WriteErrResponse(context, http.StatusInternalServerError, MsgDomainMustNotBeEmpty, common.ContentTypeText)
+		return
 	}
 	kvID := context.ReadQueryParameter(common.QueryParamKeyID)
 	if kvID == "" {
@@ -329,7 +330,7 @@
 			Method:       http.MethodDelete,
 			Path:         "/v1/{project}/kie/kv",
 			ResourceFunc: r.Delete,
-			FuncDesc:     "delete key by kvID and labelID. Want better performance, give labelID",
+			FuncDesc:     "delete key by kv ID.",
 			Parameters: []*restful.Parameters{
 				DocPathProject,
 				DocQueryKeyIDParameters,
diff --git a/server/resource/v1/kv_resource_test.go b/server/resource/v1/kv_resource_test.go
index 382e2de..85ed987 100644
--- a/server/resource/v1/kv_resource_test.go
+++ b/server/resource/v1/kv_resource_test.go
@@ -59,11 +59,10 @@
 	if err != nil {
 		panic(err)
 	}
-}
-func TestKVResource_List(t *testing.T) {
-
 	pubsub.Init()
 	pubsub.Start()
+}
+func TestKVResource_Put(t *testing.T) {
 	t.Run("put kv, label is service", func(t *testing.T) {
 		kv := &model.KVDoc{
 			Value:  "1s",
@@ -111,6 +110,8 @@
 		assert.NoError(t, err)
 		assert.NotEmpty(t, data.ID)
 	})
+}
+func TestKVResource_List(t *testing.T) {
 	t.Run("list kv by service label, should return 2 kvs", func(t *testing.T) {
 		r, _ := http.NewRequest("GET", "/v1/test/kie/kv?label=service:utService", nil)
 		noopH := &handler2.NoopAuthHandler{}
@@ -145,6 +146,9 @@
 		assert.NoError(t, err)
 		assert.Equal(t, 1, len(result.Data))
 	})
+
+}
+func TestKVResource_GetByKey(t *testing.T) {
 	t.Run("get one key by label, exact match,should return 1 kv", func(t *testing.T) {
 		r, _ := http.NewRequest("GET", "/v1/test/kie/kv/timeout?label=service:utService&match=exact", nil)
 		noopH := &handler2.NoopAuthHandler{}
@@ -162,7 +166,7 @@
 		assert.NoError(t, err)
 		assert.Equal(t, 1, len(result.Data))
 	})
-	t.Run("get one key by service label should return 2 kv", func(t *testing.T) {
+	t.Run("get one key by service label should return 2 kv,delete one", func(t *testing.T) {
 		r, _ := http.NewRequest("GET", "/v1/test/kie/kv/timeout?label=service:utService", nil)
 		noopH := &handler2.NoopAuthHandler{}
 		chain, _ := handler.CreateChain(common.Provider, "testchain1", noopH.Name())
@@ -178,5 +182,13 @@
 		err = json.Unmarshal(body, result)
 		assert.NoError(t, err)
 		assert.Equal(t, 2, len(result.Data))
+
+		r2, _ := http.NewRequest("DELETE", "/v1/test/kie/kv?kv_id="+result.Data[0].ID, nil)
+		c2, err := restfultest.New(kvr, chain)
+		assert.NoError(t, err)
+		resp2 := httptest.NewRecorder()
+		c2.ServeHTTP(resp2, r2)
+		assert.Equal(t, http.StatusNoContent, resp2.Code)
+
 	})
 }
