diff --git a/api.go b/api.go
index 1020414..b234e04 100644
--- a/api.go
+++ b/api.go
@@ -9,6 +9,7 @@
 )
 
 type sucResponseDetail struct {
+	Org             string `json:"org"`
 	Key             string `json:"key"`
 	ExpiresAt       int64  `json:"expiresAt"`
 	IssuedAt        int64  `json:"issuedAt"`
@@ -17,6 +18,9 @@
 	RedirectionURIs string `json:"redirectionURIs"`
 	AppId           string `json:"appId"`
 	AppName         string `json:"appName"`
+	Quota           string `json:quota`
+	QuotaTimeUnit   string `json:quotaTimeUnit`
+	QuotaInterval   int    `json:quotaInterval`
 }
 
 type errResultDetail struct {
@@ -92,8 +96,8 @@
 	db := getDB()
 
 	// DANGER: This relies on an external TABLE - DATA_SCOPE is maintained by apidApigeeSync
-	var env, tenantId string
-	error := db.QueryRow("SELECT env, scope FROM DATA_SCOPE WHERE id = ?;", scopeuuid).Scan(&env, &tenantId)
+	var org, env, tenantId string
+	error := db.QueryRow("SELECT org, env, scope FROM DATA_SCOPE WHERE id = ?;", scopeuuid).Scan(&org, &env, &tenantId)
 
 	switch {
 	case error == sql.ErrNoRows:
@@ -110,29 +114,32 @@
 
 	sSql := `
 		SELECT
-			ap.api_resources, 
-			ap.environments, 
+			ap.api_resources,
+			ap.environments,
 			c.issued_at,
 			c.status,
 			a.callback_url,
 			ad.email,
 			ad.id,
-			"developer" as ctype
+			"developer" as ctype,
+			COALESCE(ap.quota, '') as quota,
+			COALESCE(ap.quota_time_unit, '') as quotatimeunit,
+			COALESCE(ap.quota_interval, 0) as  quotainterval
 		FROM
-			APP_CREDENTIAL AS c 
+			APP_CREDENTIAL AS c
 			INNER JOIN APP AS a ON c.app_id = a.id
-			INNER JOIN DEVELOPER AS ad 
+			INNER JOIN DEVELOPER AS ad
 				ON ad.id = a.developer_id
-			INNER JOIN APP_CREDENTIAL_APIPRODUCT_MAPPER as mp 
-				ON mp.appcred_id = c.id 
+			INNER JOIN APP_CREDENTIAL_APIPRODUCT_MAPPER as mp
+				ON mp.appcred_id = c.id
 			INNER JOIN API_PRODUCT as ap ON ap.id = mp.apiprdt_id
-		WHERE (UPPER(ad.status) = 'ACTIVE' 
-			AND mp.apiprdt_id = ap.id 
+		WHERE (UPPER(ad.status) = 'ACTIVE'
+			AND mp.apiprdt_id = ap.id
 			AND mp.app_id = a.id
-			AND mp.appcred_id = c.id 
-			AND UPPER(mp.status) = 'APPROVED' 
+			AND mp.appcred_id = c.id
+			AND UPPER(mp.status) = 'APPROVED'
 			AND UPPER(a.status) = 'APPROVED'
-			AND c.id = $1 
+			AND c.id = $1
 			AND c.tenant_id = $2)
 		UNION ALL
 		SELECT
@@ -143,7 +150,10 @@
 			a.callback_url,
 			ad.name,
 			ad.id,
-			"company" as ctype
+			"company" as ctype,
+			COALESCE(ap.quota, '') as quota,
+			COALESCE(ap.quota_time_unit, '') as quotatimeunit,
+			COALESCE(ap.quota_interval, 0) as  quotainterval
 		FROM
 			APP_CREDENTIAL AS c
 			INNER JOIN APP AS a ON c.app_id = a.id
@@ -162,10 +172,12 @@
 			AND c.tenant_id = $2)
 	;`
 
-	var status, redirectionURIs, appName, appId, resName, resEnv, cType string
+	var status, redirectionURIs, appName, appId, resName, resEnv, cType, quota, quotaTimeUnit string
 	var issuedAt int64
+	var quotaInterval int
+
 	err := db.QueryRow(sSql, key, tenantId).Scan(&resName, &resEnv, &issuedAt, &status,
-		&redirectionURIs, &appName, &appId, &cType)
+		&redirectionURIs, &appName, &appId, &cType, &quota, &quotaTimeUnit, &quotaInterval)
 	switch {
 	case err == sql.ErrNoRows:
 		reason := "API Key verify failed for (" + key + ", " + scopeuuid + ", " + path + ")"
@@ -202,6 +214,7 @@
 	resp := kmsResponseSuccess{
 		Type: "APIKeyContext",
 		RspInfo: sucResponseDetail{
+			Org:             org,
 			Key:             key,
 			ExpiresAt:       expiresAt,
 			IssuedAt:        issuedAt,
@@ -209,7 +222,10 @@
 			RedirectionURIs: redirectionURIs,
 			Type:            cType,
 			AppId:           appId,
-			AppName:         appName},
+			AppName:         appName,
+			Quota:           quota,
+			QuotaTimeUnit:   quotaTimeUnit,
+			QuotaInterval:   quotaInterval},
 	}
 	return json.Marshal(resp)
 }
diff --git a/apidVerifyAPIKey-api.yaml b/apidVerifyAPIKey-api.yaml
index b351771..7e635dd 100644
--- a/apidVerifyAPIKey-api.yaml
+++ b/apidVerifyAPIKey-api.yaml
@@ -57,6 +57,7 @@
               responseType: APIKeyContext
               resultCode: "SUCCESS"
               result:
+                org: "abc123"
                 key: abc123
                 expiresAt: 1234567890
                 issuedAt: 1234567890
@@ -65,6 +66,9 @@
                 appName: abc123
                 appId: abc123
                 cType: "developer"
+                quota: abc123
+                quotaTimeUnit: "minute"
+                quotaInterval: 1
         default:
           description: 4xx or 5xx errors
           schema:
@@ -123,6 +127,8 @@
           result:
             type: object
             properties:
+              org:
+                type: string
               key:
                 type: string
               expiresAt:
@@ -139,9 +145,16 @@
                 type: string
               cType:
                 type: string
+              quota:
+                type: string
+              quotaTimeUnit:
+                type: string
+              quotaInterval:
+                type: int
     example:
       type: "APIKeyContext"
       result:
+        org: "abc123"
         key: "abc123"
         expiresAt: 1234567890
         issuedAt: 1234567890
@@ -150,6 +163,9 @@
         appName: "abc123"
         appId: "abc123"
         cType: "company OR developer"
+        quota: "quotaName"
+        quotaTimeUnit: "timeUnit"
+        quotaInterval: 1
 
   VerifyAPIKeyResponseFailed:
     allOf:
diff --git a/listener.go b/listener.go
index 3fae5c0..bac48b5 100644
--- a/listener.go
+++ b/listener.go
@@ -363,9 +363,9 @@
  */
 func insertAPIproducts(rows []common.Row, txn *sql.Tx) bool {
 
-	var scope, apiProduct, res, env, tenantId string
-
-	prep, err := txn.Prepare("INSERT INTO API_PRODUCT (id, api_resources, environments, tenant_id,_change_selector) VALUES($1,$2,$3,$4,$5)")
+	var scope, apiProduct, res, env, tenantId, quota, quotaTimeUnit string
+	var quotaInterval int
+	prep, err := txn.Prepare("INSERT INTO API_PRODUCT (id, api_resources, environments, tenant_id,_change_selector, quota, quota_time_unit, quota_interval) VALUES($1,$2,$3,$4,$5,$6,$7,$8)")
 	if err != nil {
 		log.Error("INSERT API_PRODUCT Failed: ", err)
 		return false
@@ -379,6 +379,9 @@
 		ele.Get("api_resources", &res)
 		ele.Get("environments", &env)
 		ele.Get("tenant_id", &tenantId)
+		ele.Get("quota", &quota)
+		ele.Get("quota_time_unit", &quotaTimeUnit)
+		ele.Get("quota_interval", &quotaInterval)
 
 		/* Mandatory params check */
 		if apiProduct == "" || scope == "" || tenantId == "" {
@@ -390,7 +393,10 @@
 			res,
 			env,
 			tenantId,
-			scope)
+			scope,
+			quota,
+			quotaTimeUnit,
+			quotaInterval)
 
 		if err != nil {
 			log.Error("INSERT API_PRODUCT Failed: (", apiProduct, ", ", tenantId, ")", err)
