diff --git a/api.go b/api.go
index e31d841..3d47d52 100644
--- a/api.go
+++ b/api.go
@@ -6,7 +6,6 @@
 	"fmt"
 	"net/http"
 	"net/url"
-	"github.com/30x/apid"
 )
 
 type sucResponseDetail struct {
@@ -89,32 +88,23 @@
 		return errorResponse(reason, errorCode)
 	}
 
-	var env, tenantId string
-	{
-		db, err := apid.Data().DB();
-		switch {
-		case err != nil:
-			reason := err.Error()
-			errorCode := "SEARCH_INTERNAL_ERROR"
-			return errorResponse(reason, errorCode)
-		}
-
-		error := db.QueryRow("SELECT env, scope FROM DATA_SCOPE WHERE id = ?;", scopeuuid).Scan(&env, &tenantId)
-
-		switch {
-		case error == sql.ErrNoRows:
-			reason := "ENV Validation Failed"
-			errorCode := "ENV_VALIDATION_FAILED"
-			return errorResponse(reason, errorCode)
-		case error != nil:
-			reason := error.Error()
-			errorCode := "SEARCH_INTERNAL_ERROR"
-			return errorResponse(reason, errorCode)
-		}
-	}
-
 	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)
+
+	switch {
+	case error == sql.ErrNoRows:
+		reason := "ENV Validation Failed"
+		errorCode := "ENV_VALIDATION_FAILED"
+		return errorResponse(reason, errorCode)
+	case error != nil:
+		reason := error.Error()
+		errorCode := "SEARCH_INTERNAL_ERROR"
+		return errorResponse(reason, errorCode)
+	}
+
 	log.Debug("Found tenant_id='", tenantId, "' with env='", env, "' for scopeuuid='", scopeuuid,"'")
 
 	sSql := "SELECT ap.api_resources, ap.environments, c.issued_at, c.status, a.callback_url, d.username, d.id " +
