diff --git a/api/pom.xml b/api/pom.xml
new file mode 100644
index 000000000..6184d6cd7
--- /dev/null
+++ b/api/pom.xml
@@ -0,0 +1,40 @@
+
+
+ 4.0.0
+
+ com.introproventures
+ graphql-jpa-query-dependencies
+ 1.2.13-SNAPSHOT
+ ../dependencies
+
+
+ jar
+
+ graphql-jpa-query-api
+
+
+
+ com.introproventures
+ graphql-jpa-query-annotations
+
+
+ org.atteo
+ evo-inflector
+
+
+ com.graphql-java
+ graphql-java
+
+
+ com.introproventures
+ graphql-jpa-query-introspection
+
+
+ jakarta.persistence
+ jakarta.persistence-api
+
+
+
+
diff --git a/schema/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutionInputFactory.java b/api/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutionInputFactory.java
similarity index 100%
rename from schema/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutionInputFactory.java
rename to api/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutionInputFactory.java
diff --git a/schema/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutor.java b/api/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutor.java
similarity index 100%
rename from schema/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutor.java
rename to api/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutor.java
diff --git a/schema/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutorContext.java b/api/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutorContext.java
similarity index 100%
rename from schema/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutorContext.java
rename to api/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutorContext.java
diff --git a/schema/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutorContextFactory.java b/api/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutorContextFactory.java
similarity index 100%
rename from schema/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutorContextFactory.java
rename to api/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLExecutorContextFactory.java
diff --git a/schema/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLSchemaBuilder.java b/api/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLSchemaBuilder.java
similarity index 91%
rename from schema/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLSchemaBuilder.java
rename to api/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLSchemaBuilder.java
index fe90ec627..e8053e3f0 100644
--- a/schema/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLSchemaBuilder.java
+++ b/api/src/main/java/com/introproventures/graphql/jpa/query/schema/GraphQLSchemaBuilder.java
@@ -75,6 +75,14 @@ public interface GraphQLSchemaBuilder {
*/
GraphQLSchemaBuilder graphQLIDType(boolean useGraphQLIDType);
+ /**
+ * Register restricted keys provider
+ *
+ * @param restrictedKeysProvider instance
+ * @return this builder instance
+ */
+ GraphQLSchemaBuilder restrictedKeysProvider(RestrictedKeysProvider restrictedKeysProvider);
+
/**
* Builds {code #GraphQLSchema} instance
*
diff --git a/schema/src/main/java/com/introproventures/graphql/jpa/query/schema/NamingStrategy.java b/api/src/main/java/com/introproventures/graphql/jpa/query/schema/NamingStrategy.java
similarity index 100%
rename from schema/src/main/java/com/introproventures/graphql/jpa/query/schema/NamingStrategy.java
rename to api/src/main/java/com/introproventures/graphql/jpa/query/schema/NamingStrategy.java
diff --git a/schema/src/main/java/com/introproventures/graphql/jpa/query/schema/RestrictedKeysProvider.java b/api/src/main/java/com/introproventures/graphql/jpa/query/schema/RestrictedKeysProvider.java
similarity index 100%
rename from schema/src/main/java/com/introproventures/graphql/jpa/query/schema/RestrictedKeysProvider.java
rename to api/src/main/java/com/introproventures/graphql/jpa/query/schema/RestrictedKeysProvider.java
diff --git a/schema/src/main/java/com/introproventures/graphql/jpa/query/schema/impl/EntityIntrospector.java b/api/src/main/java/com/introproventures/graphql/jpa/query/schema/impl/EntityIntrospector.java
similarity index 100%
rename from schema/src/main/java/com/introproventures/graphql/jpa/query/schema/impl/EntityIntrospector.java
rename to api/src/main/java/com/introproventures/graphql/jpa/query/schema/impl/EntityIntrospector.java
diff --git a/dependencies/pom.xml b/dependencies/pom.xml
index 665f1b0e9..914d55a2e 100644
--- a/dependencies/pom.xml
+++ b/dependencies/pom.xml
@@ -60,6 +60,11 @@
graphql-jpa-query-scalars
${project.version}
+
+ com.introproventures
+ graphql-jpa-query-api
+ ${project.version}
+
com.introproventures
graphql-jpa-query-schema
diff --git a/pom.xml b/pom.xml
index 06dd0df58..98572b547 100644
--- a/pom.xml
+++ b/pom.xml
@@ -347,6 +347,7 @@
annotations
scalars
+ api
schema
boot-starter
dependencies
@@ -363,6 +364,7 @@
annotations
scalars
+ api
schema
boot-starter
dependencies
diff --git a/schema/pom.xml b/schema/pom.xml
index db295d230..490abf82b 100644
--- a/schema/pom.xml
+++ b/schema/pom.xml
@@ -22,6 +22,11 @@
graphql-jpa-query-annotations
+
+ com.introproventures
+ graphql-jpa-query-api
+
+
com.introproventures
graphql-jpa-query-scalars