diff --git a/source/AirGQL/Lib.hs b/source/AirGQL/Lib.hs
index eaddf09..5ee9f98 100644
--- a/source/AirGQL/Lib.hs
+++ b/source/AirGQL/Lib.hs
@@ -10,6 +10,7 @@ module AirGQL.Lib (
   mkAccessMode,
   readOnly,
   writeOnly,
+  insertOnly,
   readAndWrite,
   ColumnEntry (..),
   GqlTypeName (..),
@@ -144,6 +145,10 @@ writeOnly :: AccessMode
 writeOnly = mkAccessMode False True True
 
 
+insertOnly :: AccessMode
+insertOnly = mkAccessMode False True False
+
+
 readAndWrite :: AccessMode
 readAndWrite = mkAccessMode True True True
 
diff --git a/source/AirGQL/Servant/GraphQL.hs b/source/AirGQL/Servant/GraphQL.hs
index 96af954..d679539 100644
--- a/source/AirGQL/Servant/GraphQL.hs
+++ b/source/AirGQL/Servant/GraphQL.hs
@@ -2,8 +2,6 @@ module AirGQL.Servant.GraphQL (
   gqlQueryGetHandler,
   gqlQueryPostHandler,
   playgroundDefaultQueryHandler,
-  readOnlyGqlPostHandler,
-  writeOnlyGqlPostHandler,
 ) where
 
 import Protolude (
@@ -29,16 +27,13 @@ import AirGQL.Lib (
   column_name,
   getColumns,
   getTableNames,
-  readOnly,
-  writeOnly,
  )
 import AirGQL.ServerUtils (executeQuery)
-import AirGQL.Types.SchemaConf (SchemaConf (accessMode), defaultSchemaConf)
+import AirGQL.Types.SchemaConf (SchemaConf)
 import AirGQL.Types.Types (GQLPost (operationName, query, variables))
 import AirGQL.Utils (
   getDbDir,
   getMainDbPath,
-  getReadOnlyFilePath,
   throwErr400WithMsg,
   throwErr404WithMsg,
   withRetryConn,
@@ -93,34 +88,6 @@ gqlQueryPostHandler schemaConf dbIdOrPath gqlPost = do
     handleNoDbError
 
 
-readOnlyGqlPostHandler :: Text -> GQLPost -> Servant.Handler Object
-readOnlyGqlPostHandler dbIdOrPath gqlPost =
-  liftIO $ do
-    reqDir <- makeAbsolute $ getReadOnlyFilePath dbIdOrPath
-
-    executeQuery
-      defaultSchemaConf{accessMode = readOnly}
-      dbIdOrPath
-      reqDir
-      gqlPost.query
-      (gqlPost.variables & P.fromMaybe mempty)
-      gqlPost.operationName
-
-
-writeOnlyGqlPostHandler :: Text -> GQLPost -> Servant.Handler Object
-writeOnlyGqlPostHandler dbPath gqlPost =
-  liftIO $ do
-    reqDir <- makeAbsolute $ getReadOnlyFilePath dbPath
-
-    executeQuery
-      defaultSchemaConf{accessMode = writeOnly}
-      dbPath
-      reqDir
-      gqlPost.query
-      (gqlPost.variables & P.fromMaybe mempty)
-      gqlPost.operationName
-
-
 playgroundDefaultQueryHandler
   :: Text
   -> Servant.Handler Text
diff --git a/source/Server/Server.hs b/source/Server/Server.hs
index d53927b..9c9d172 100644
--- a/source/Server/Server.hs
+++ b/source/Server/Server.hs
@@ -56,7 +56,7 @@ import Text.Blaze.Internal (MarkupM)
 
 import AirGQL.Config (Config (maxDbSize), defaultConfig)
 import AirGQL.ExternalAppContext (ExternalAppContext)
-import AirGQL.Lib (SQLPost)
+import AirGQL.Lib (SQLPost, insertOnly, readOnly, writeOnly)
 import AirGQL.Servant.Database (
   apiDatabaseSchemaGetHandler,
   apiDatabaseVacuumPostHandler,
@@ -65,11 +65,9 @@ import AirGQL.Servant.GraphQL (
   gqlQueryGetHandler,
   gqlQueryPostHandler,
   playgroundDefaultQueryHandler,
-  readOnlyGqlPostHandler,
-  writeOnlyGqlPostHandler,
  )
 import AirGQL.Servant.SqlQuery (sqlQueryPostHandler)
-import AirGQL.Types.SchemaConf (SchemaConf (pragmaConf), defaultSchemaConf)
+import AirGQL.Types.SchemaConf (SchemaConf (accessMode, pragmaConf), defaultSchemaConf)
 import AirGQL.Types.SqlQueryPostResult (SqlQueryPostResult)
 import AirGQL.Types.Types (GQLPost)
 
@@ -86,15 +84,17 @@ type PlatformAPI =
       :> ReqBody '[JSON] GQLPost
       :> Post '[JSON] Object
 
-  -- writeOnlyGqlPostHandler
   :<|> "readonly" :> "graphql"
           :> ReqBody '[JSON] GQLPost
           :> Post '[JSON] Object
 
-  -- writeOnlyGqlPostHandler
   :<|> "writeonly" :> "graphql"
           :> ReqBody '[JSON] GQLPost
           :> Post '[JSON] Object
+  
+  :<|> "insertonly" :> "graphql"
+          :> ReqBody '[JSON] GQLPost
+          :> Post '[JSON] Object
 
   -- playgroundDefaultQueryHandler
   :<|> "playground" :> "default-query"
@@ -164,8 +164,9 @@ platformServer ctx filePath = do
   let dbPath = T.pack filePath
   gqlQueryGetHandler dbPath
     :<|> gqlQueryPostHandler defaultSchemaConf dbPath
-    :<|> readOnlyGqlPostHandler dbPath
-    :<|> writeOnlyGqlPostHandler dbPath
+    :<|> gqlQueryPostHandler defaultSchemaConf{accessMode = readOnly} dbPath
+    :<|> gqlQueryPostHandler defaultSchemaConf{accessMode = writeOnly} dbPath
+    :<|> gqlQueryPostHandler defaultSchemaConf{accessMode = insertOnly} dbPath
     :<|> playgroundDefaultQueryHandler dbPath
     :<|> apiDatabaseSchemaGetHandler ctx dbPath
     :<|> apiDatabaseVacuumPostHandler dbPath